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