[PATCH -next] riscv: mm: remove redundant trampoline PGD for 64bit

Sunnanyong (Nanyong Sun, Intelligent Computing Solution Development Dep) sunnanyong at huawei.com
Thu Jun 17 02:38:27 PDT 2021

On 2021/5/27 22:48, Nanyong Sun wrote:

> Remove redundant trampoline PGD for 64bit and add more comment
> for why 32bit systems need trampoline PGD.
> There was a patch and discussion similar to this,refer to
> the link [1][2].
> The trampoline PGD is redundant for 64bit systems because:
> 1. The early PGD covers the entire kernel mapping. Directly
> loading early PGD can achieve the result in boot stage.
> A more trampoline PGD makes code hard to understand.
> 2. Directly loading early PGD is safe in 64bit systems since
> the kernel virtual address starts as 0xFFFFxxxxxxxxxxxx,
> which has a very big gap with RAM address.It won't fall into
> the corner case that 32bit system worrys.
> 3. Remove redundant trampoline PGD can benefit to code maintaince,
> because 64bit systems have more page table levels.For example:
> If we want to support SV48 which has 4 page table levels, we have
> to add a trampoline_pud and insert it before trampoline_pmd.
> Reference link:
> [1]https://lore.kernel.org/linux-riscv/20190325092234.5451-4-anup.patel@wdc.com/
> [2]https://lkml.org/lkml/2019/3/28/147

Long time no response.

Hi anup,

     do you agree this?

More information about the linux-riscv mailing list