Thread (4 messages) 4 messages, 3 authors, 2012-10-09

Re: [PATCH 3/8] sparc64: Eliminate PTE table memory wastage.

From: Chris Metcalf <hidden>
Date: 2012-10-09 20:02:36
Also in: linux-mm, lkml, sparclinux

On 10/4/2012 2:23 PM, David Miller wrote:
From: "Aneesh Kumar K.V" <redacted>
Date: Thu, 04 Oct 2012 22:00:48 +0530
quoted
David Miller [off-list ref] writes:
quoted
We've split up the PTE tables so that they take up half a page instead
of a full page.  This is in order to facilitate transparent huge page
support, which works much better if our PMDs cover 4MB instead of 8MB.

What we do is have a one-behind cache for PTE table allocations in the
mm struct.

This logic triggers only on allocations.  For example, we don't try to
keep track of free'd up page table blocks in the style that the s390
port does.
I am also implementing a similar change for powerpc. We have a 64K page
size, and want to make sure PMD cover 16MB, which is the huge page size
supported by the hardware. I was looking at using the s390 logic,
considering we have 16 PMDs mapping to same PTE page. Should we look at
generalizing the case so that other architectures can start using the
same code ?
I think until we have multiple cases we won't know what's common or not.

Each arch has different need.  I need to split the page into two pieces
so my code is simpler, and juse uses page counting to manage alloc/free.

Whereas s390 uses an bitmask to manage page state, and also reclaims
pgtable pages into a per-mm list on free.  I decided not to do that
and to just let the page allocator do the work.

So I don't think it's appropriate to think about commonization at this
time, as even the only two cases existing are very non-common :-)
I'll add arch/tile to the list of architectures that would benefit.
We currently allocate PTEs using the page allocator, but by default
we use 64K pages and 16M huge pages, so with 8-byte PTEs that's
just 2K for the page table, so we could fit 32 of them on a page
if we wished.  Instead, for the time being, we just waste the space.

-- 
Chris Metcalf, Tilera Corp.
http://www.tilera.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help