Messages in this thread | | | Subject | Re: [PATCH] reduce fragmentation due to kmem_cache_alloc_node | From | Badari Pulavarty <> | Date | 15 Oct 2004 11:08:48 -0700 |
| |
Manfred & Andrew,
I am happy with the patch.This seems to have fixed slab fragmentation problem with scsi_debug tests.
But I still have issue with my scsi-debug tests. I don't think they are related to this patch. When I do,
while : do simulate 1000 scsi-debug disks freeup 1000 scsi-debug disks done
I see size-64 "inuse" objects increasing. Eventually, it fills up entire low-mem. I guess while freeing up scsi-debug disks, is not cleaning up all the allocations :(
But one question I have is - Is it possible to hold size-64 slab, because it has a management allocation (slabp - 40 byte allocations) from alloc_slabmgmt() ? I remember seeing this earlier. Is it worth moving all managment allocations to its own slab ? should I try it ?
Thanks, Badari
On Sat, 2004-10-09 at 13:37, Manfred Spraul wrote: > Hi Andrew, > > attached is a patch that fixes the fragmentation that Badri noticed with > kmem_cache_alloc_node. Could you add it to the mm tree? The patch is > against 2.6.9-rc3-mm3. > > Description: > kmem_cache_alloc_node tries to allocate memory from a given node. The > current implementation contains two bugs: > - the node aware code was used even for !CONFIG_NUMA systems. Fix: > inline function that redefines kmem_cache_alloc_node as kmem_cache_alloc > for !CONFIG_NUMA. > - the code always allocated a new slab for each new allocation. This > caused severe fragmentation. Fix: walk the slabp lists and search for a > matching page instead of allocating a new page. > - the patch also adds a new statistics field for node-local allocs. They > should be rare - the codepath is quite slow, especially compared to the > normal kmem_cache_alloc. > > Badri: Could you test it? > Andrew, could you add the patch to the next -mm kernel? I'm running it > right now, no obvious problems. > > Signed-Off-By: Manfred Spraul <manfred@colorfullife.com>
- 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/
| |