ACK: [SRU][K][PATCH 0/1] Disable sv57 on riscv64

Tim Gardner tim.gardner at canonical.com
Mon Oct 10 12:48:29 UTC 2022


On 10/10/22 05:27, Emil Renner Berthing wrote:
> [ Impact ]
> 
> * Linux 5.18 merged support for 5-level page tables (sv57), and it
>    does it such that 5-level page tables are used whenever the
>    system supports it.
> 
> * So far only Qemu support sv57, but it breaks Go since Go uses
>    too many of the upper bits of pointers to store data, and is not
>    yet ready for sv57. It probably breaks other types of software
>    using too many bits for this "pointer tagging" technique.
>    At the moment, there is no way to indicate to the kernel to
>    downgrade to sv48, so we must patch the kernel:
> 
> diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
> index 2c4a64e97aec..18a0c70ed313 100644
> --- a/arch/riscv/mm/init.c
> +++ b/arch/riscv/mm/init.c
> @@ -775,6 +775,10 @@ static __init void set_satp_mode(void)
>                  disable_pgtable_l4();
>          }
> 
> + /* UBUNTU: Force disable sv57 and fallback to sv48 */
> + if (pgtable_l5_enabled)
> + disable_pgtable_l5();
> +
>          memset(early_pg_dir, 0, PAGE_SIZE);
>          memset(early_p4d, 0, PAGE_SIZE);
>          memset(early_pud, 0, PAGE_SIZE);
> 
> [ Test Plan ]
> 
> * Build an image with the patched kernel and make sure snapd and
>    other Go programs works correctly and that you can compile a
>    simple helloworld written in Go.
> 
> [ Where problems could occur ]
> 
> * The patch could be buggy.
> 
> * Qemu will no longer work with > 256 TB of memory.
> 
> Alexandre Ghiti (1):
>    UBUNTU: SAUCE: riscv: mm: Force disable sv57
> 
>   arch/riscv/mm/init.c | 4 ++++
>   1 file changed, 4 insertions(+)
> 
Acked-by: Tim Gardner <tim.gardner at canonical.com>
-- 
-----------
Tim Gardner
Canonical, Inc




More information about the kernel-team mailing list