Subject: Re: [PATCH 00/31] powerpc/mm: Update page table format for book3s 64

From: Scott Wood <[email-masked]>
Date: Mon, 28 Sep 2015 11:41:20 -0500

On Mon, 2015-09-28 at 10:26 +0530, Aneesh Kumar K.V wrote:
> Scott Wood <[email-masked]> writes:
> 
> > On Tue, 2015-09-22 at 12:18 +0530, Aneesh Kumar K.V wrote:
> > > Scott Wood <[email-masked]> writes:
> > > 
> > > > On Mon, 2015-09-21 at 12:10 +0530, Aneesh Kumar K.V wrote:
> > > > > Hi All,
> > > > > 
> > > > > This patch series attempt to update book3s 64 linux page table 
> > > > > format to
> > > > > make it more flexible. Our current pte format is very restrictive 
> > > > > and we
> > > > > overload multiple pte bits. This is due to the non-availability of 
> > > > > free 
> > > > > bits
> > > > > in pte_t. We use pte_t to track the validity of 4K subpages. This 
> > > > > patch
> > > > > series free up pte_t of 11 bits by moving 4K subpage tracking to the
> > > > > lower half of PTE page. The pte format is updated such that we have 
> > > > > a
> > > > > better method for identifying a pte entry at pmd level. This will 
> > > > > also 
> > > > > enable
> > > > > us to implement hugetlb migration(not yet done in this series). 
> > > > > 
> > > > > Before making the changes to the pte format, I am splitting the
> > > > > pte header definition such that we now have the below layout for 
> > > > > headers
> > > > > 
> > > > > book3s
> > > > >    32
> > > > >      hash.h pgtable.h 
> > > > >    64
> > > > >      hash.h  pgtable.h hash-4k.h hash-64k.h
> > > > > booke
> > > > >   32
> > > > >      pgtable.h pte-40x.h pte-44x.h pte-8xx.h pte-fsl-booke.h
> > > > >   64
> > > > >     pgtable-4k.h  pgtable-64k.h  pgtable.h
> > > > 
> > > > 40x and 8xx are not booke.  Is there a better name that can be used 
> > > > for 
> > > > this 
> > > > directory?  Maybe "nohash", similar to arch/powerpc/mm/tlb_nohash.c?
> > > > 
> > > 
> > > I looked at Documentation/powerpc/cpu_families.txt to name the headers.
> > > It lists then below booke.
> > 
> > It lists 40x as booke (there was some question about that when 
> > cpu_families.txt was added...  I guess you could call it "proto-booke", 
> > though it doesn't use CONFIG_BOOKE in Linux), but 8xx is in its own 
> > category.
> > 
> > In any case, "nohash" is the term used elsewhere.
> 
> How about using swtlb ? (nohash always confused me, It would be nice to
> be explict and us software tlb ?)

I'd prefer nohash.  Besides being existing practice (what's confusing about 
it?), e6500 is nohash but has a partial hw tlb, and 603 is considered hash 
despite having a software-loaded tlb.

-Scott