Re: [patch][rfc] acpi: do not use kmem caches

Alexey Starikovskiy
2008-12-01T14:48:09Z

Christoph Lameter wrote:
> On Mon, 1 Dec 2008, Pekka Enberg wrote:
>
>
>> Why do you think Nick's patch is going to _increase_ memory consumption?
>> SLUB _already_ merges the ACPI caches with kmalloc caches so you won't
>> see any difference there. For SLAB, it's a gain because there's not
>> enough activity going on which results in lots of unused space in the
>> slabs (which is, btw, the reason SLUB does slab merging in the first
>> place).
>>
>
> The patch is going to increase memory consumption because the use of
> the kmalloc array means that the allocated object sizes are rounded up to
> the next power of two.
>
> I would recommend to keep the caches. Subsystem specific caches help to
> simplify debugging and track the memory allocated for various purposes in
> addition to saving the rounding up to power of two overhead.
> And with SLUB the creation of such caches usually does not require
> additional memory.
>
> Maybe it would be best to avoid kmalloc as much as possible.
>
>
Christoph,
Thanks for support, these were my thoughts, when I changed ACPICA to use
kmem_cache instead of
it's own on top of kmalloc 4 years ago...
Here are two acpi caches on my thinkpad z61m, IMHO any laptop will show
similar numbers:

aystarik@thinkpad:~$ cat /proc/slabinfo | grep Acpi
Acpi-ParseExt 2856 2856 72 56 1 : tunables 0 0
0 : slabdata 51 51 0
Acpi-Parse 170 170 48 85 1 : tunables 0 0
0 : slabdata 2 2 0

Size of first will become 96 and size of second will be 64 if kmalloc is
used, and we don't count ACPICA internal overhead.
Number of used blocks is not smallest in the list of slabs, actually it
is among the highest.

Regards,
Alex.