Messages in this thread | | | Date | Mon, 20 Aug 2007 12:26:09 -0700 (PDT) | From | Christoph Lameter <> | Subject | Re: [PATCH 04/10] mm: slub: add knowledge of reserve pages |
| |
On Mon, 20 Aug 2007, Pekka Enberg wrote:
> Hi Peter, > > On Mon, 2007-08-20 at 12:12 +0300, Pekka J Enberg wrote: > > > Any reason why the callers that are actually interested in this don't do > > > page->reserve on their own? > > On 8/20/07, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > > because new_slab() destroys the content? > > Right. So maybe we could move the initialization parts of new_slab() > to __new_slab() so that the callers that are actually interested in > 'reserve' could do allocate_slab(), store page->reserve and do rest of > the initialization with it?
I am still not convinced about this approach and there seems to be agreement that this is not working on large NUMA. So #ifdef it out? !CONFIG_NUMA? Some more general approach that does not rely on a single slab being a reserve?
The object is to check the alloc flags when having allocated a reserve slab right? Adding another flag SlabReserve and keying off on that one may be the easiest solution.
I have pending patches here that add per cpu structures. Those will make that job easier.
> As for the __GFP_WAIT handling, I *think* we can move the interrupt > enable/disable to allocate_slab()... Christoph?
The reason the enable/disable is in new_slab is to minimize interrupt holdoff time. If we move it to allocate slab then the slab preparation is done with interrupts disabled. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |