Re: [QUICKLIST 1/5] Quicklists for page table pages V4

From: Christoph Lameter
Date: Mon Mar 26 2007 - 12:52:35 EST


On Fri, 23 Mar 2007, Andrew Morton wrote:

> On Fri, 23 Mar 2007 10:54:12 -0700 (PDT) Christoph Lameter <clameter@xxxxxxx> wrote:
>
> > Here are the results of aim9 tests on x86_64. There are some minor performance
> > improvements and some fluctuations.
>
> There are a lot of numbers there - what do they tell us?

That there are performance improvements because of quicklists.

> So what has changed here? From a quick look it appears that x86_64 is
> using get_zeroed_page() for ptes, puds and pmds and is using a custom
> quicklist for pgds.

x86_64 is only using a list in order to track pgds. There is no
quicklist without this patchset.

> After your patches, x86_64 is using a common quicklist allocator for puds,
> pmds and pgds and continues to use get_zeroed_page() for ptes.

x86_64 should be using quicklists for all ptes after this patch. I did not
convert pte_free() since it is only used for freeing ptes during races
(see __pte_alloc). Since pte_free gets passed a page struct it would require
virt_to_page before being put onto the freelist. Not worth doing.

Hmmm... Then how does x86_64 free the ptes? Seems that we do
free_page_and_swap_cache() in tlb_remove_pages. Yup so ptes are not
handled which limits the speed improvements that we see.

> My question is pretty simple: how do we justify the retention of this
> custom allocator?

I would expect this functionality (never thought about it as an allocator)
to extract common code from many arches that use one or the other form of
preserving zeroed pages for page table pages. I saw lots of arches doing
the same with some getting into trouble with the page structs. Having a
common code base that does not have this issue would clean up the kernel
and deal with the slab issue.

> Because simply removing it is the preferable way of fixing the SLUB
> problem.

That would reduce performance. I did not think that a common feature
that is used throughout many arches would need rejustification.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/