On Mon, 2007-08-20 at 12:12 +0300, Pekka J Enberg wrote: > Hi Peter, > > On Mon, 20 Aug 2007, Peter Zijlstra wrote: > > -static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node) > > +static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node, > > int *reserve) > > { > > [snip] > > > + *reserve = page->reserve; > > Any reason why the callers that are actually interested in this don't do > page->reserve on their own?
because new_slab() destroys the content? struct page { ... union { pgoff_t index; /* Our offset within mapping. */ void *freelist; /* SLUB: freelist req. slab lock */ int reserve; /* page_alloc: page is a reserve page */ atomic_t frag_count; /* skb fragment use count */ }; ... }; static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node, int *reserve) { ... *reserve = page->reserve; ... page->freelist = start; ... }
signature.asc
Description: This is a digitally signed message part