On Thu, Jul 27, 2017 at 07:29:32AM +0530, Aneesh Kumar K.V wrote: > > > On 07/26/2017 09:36 PM, Ram Pai wrote: > >On Wed, Jul 26, 2017 at 04:05:48PM +0530, Aneesh Kumar K.V wrote: > >>Ram Pai <linux...@us.ibm.com> writes: > >> > > >>>diff --git a/arch/powerpc/include/asm/book3s/64/hash-64k.h > >>>b/arch/powerpc/include/asm/book3s/64/hash-64k.h > >>>index 9732837..62e580c 100644 > >>>--- a/arch/powerpc/include/asm/book3s/64/hash-64k.h > >>>+++ b/arch/powerpc/include/asm/book3s/64/hash-64k.h > >>>@@ -12,18 +12,14 @@ > >>> */ > >>> #define H_PAGE_COMBO _RPAGE_RPN0 /* this is a combo 4k page */ > >>> #define H_PAGE_4K_PFN _RPAGE_RPN1 /* PFN is for a single 4k page */ > >>>+#define H_PAGE_BUSY _RPAGE_RPN42 /* software: PTE & hash are > >>>busy */ > >> > >> > >>Why are we moving H_PAGE_BUSY. Right now 4k and 64k linux page table > >>format looks similar. > > > >The goal is to clear off all the _RPAGE_RSV* bits so that they can be > >used for protection keys. the aim is to keep the protection-bits in the > >_RPAGE_RSV* bits, so that they will work as-is whenever radix MMU enables > >protection keys. > > > >Yes this makes the PTE format differ from 4k PTE. Hopefully it is a > >small inconvenience. The PTE format for 4K is anyway not exactly the > >same compared to 64K PTE format. For example, higher RPN bits are > >used on 4K but not on 64k. lower RPN bits are used on 64k but not > >on 4k. > I was wondering why in this patch ? You do in the next patch
True. because in this patch, we have not yet freed up bit _RPAGE_RPN44. _RPAGE_RPN44 bit is still used by H_PAGE_F_GIX for 64K backed HPTEs. Hence I have temporarily parked H_PAGE_BUSY at _RPAGE_RPN42. I could leave H_PAGE_BUSY at bit _RPAGE_RSV1 and move it to _RPAGE_RPN44 in the next patch. But by doing so, i would have not truely released bit _RPAGE_RSV1 for 4K backed hptes; as claimed in the title of this patch.... > > --- a/arch/powerpc/include/asm/book3s/64/hash-64k.h > +++ b/arch/powerpc/include/asm/book3s/64/hash-64k.h > @@ -12,7 +12,7 @@ > */ > #define H_PAGE_COMBO _RPAGE_RPN0 /* this is a combo 4k page */ > #define H_PAGE_4K_PFN _RPAGE_RPN1 /* PFN is for a single 4k page */ > -#define H_PAGE_BUSY _RPAGE_RPN42 /* software: PTE & hash are busy */ > +#define H_PAGE_BUSY _RPAGE_RPN44 /* software: PTE & hash are busy */ > ... -- Ram Pai