[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070313211435.GP10394@waste.org>
Date: Tue, 13 Mar 2007 16:14:35 -0500
From: Matt Mackall <mpm@...enic.com>
To: David Miller <davem@...emloft.net>
Cc: jeremy@...p.org, nickpiggin@...oo.com.au,
akpm@...ux-foundation.org, clameter@....com, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [QUICKLIST 0/4] Arch independent quicklists V2
On Tue, Mar 13, 2007 at 02:07:22PM -0700, David Miller wrote:
> From: Matt Mackall <mpm@...enic.com>
> Date: Tue, 13 Mar 2007 15:21:25 -0500
>
> > Because the fan-out is large, the bulk of the work is bringing the last
> > layer of the tree into cache to find all the pages in the address
> > space. And there's really no way around that.
>
> That's right.
>
> And I will note that historically we used to be much worse
> in this area, as we used to walk the page table tree twice
> on address space teardown (once to hit the PTE entries, once
> to free the page tables).
>
> Happily it is a one-pass algorithm now.
>
> But, within active VMA ranges, we do have to walk all
> the bits at least one time.
Well you -could- do this:
- reuse a long in struct page as a used map that divides the page up
into 32 or 64 segments
- every time you set a PTE, set the corresponding bit in the mask
- when we zap, only visit the regions set in the mask
Thus, you avoid visiting most of a PMD page in the sparse case,
assuming PTEs aren't evenly spread across the PMD.
This might not even be too horrible as the appropriate struct page
should be in cache with the appropriate bits of the mm already locked,
etc.
--
Mathematics is the supreme nostalgia of our time.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists