Hi Peter,
On Fri, Feb 29, 2008 at 1:51 PM, Peter Zijlstra [off-list ref] wrote:
I made page->reserve into PG_emergency and made that bit stick for the
lifetime of that page allocation. I then made kmem_is_emergency() look
up the head page backing that allocation's slab and return
PageEmergency().
[snip]
On Fri, Feb 29, 2008 at 1:51 PM, Peter Zijlstra [off-list ref] wrote:
This is a stricter model than I had before, and has one ramification I'm
not entirely sure I like.
It means the page remains a reserve page throughout its lifetime, which
means the slab remains a reserve slab throughout its lifetime. Therefore
it may never be used for !reserve allocations. Which in turn generates
complexities for the partial list.
Hmm, so why don't we then clear the PG_emergency flag then and
allocate a new fresh page to the reserves?
On Fri, Feb 29, 2008 at 1:51 PM, Peter Zijlstra [off-list ref] wrote:
Does this sound like something I should pursuit? I feel it might
complicate the slab allocators too much..
I can't answer that question until I see the code ;-). But overall, I
think it's better to put that code in SLUB rather than trying to work
around it elsewhere. The fact is, as soon as you have some sort of
reservation for _objects_, you need help from the SLUB allocator.
Pekka