[PATCH 3/9] powerpc/mm/book3s-64: Use physical addresses in upper page table tree levels

Aneesh Kumar K.V aneesh.kumar at linux.vnet.ibm.com
Mon Feb 22 18:06:03 AEDT 2016


Paul Mackerras <paulus at ozlabs.org> writes:

> From: Paul Mackerras <paulus at samba.org>
>
> This changes the Linux page tables to store physical addresses
> rather than kernel virtual addresses in the upper levels of the
> tree (pgd, pud and pmd) for 64-bit Book 3S machines.
>
> This frees up some high order bits, and will be needed with
> PowerISA v3.0 machines which read the page table tree in hardware
> in radix mode.
>

Radix mark the top two bits at upper level page table tree.

ie,


static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
{
	pud_set(pud, __pgtable_ptr_val(pmd));
}

static inline void rpud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
{
	*pud = __pud(__pa(pmd) | RPUD_VAL_BITS);
}


I guess we will do the same with hash to keep them same ?

-aneesh



More information about the Linuxppc-dev mailing list