SLOB: Free objects to their own list
authorBob Liu <lliubbo@gmail.com>
Sat, 10 Jul 2010 10:05:33 +0000 (18:05 +0800)
committerPekka Enberg <penberg@cs.helsinki.fi>
Fri, 16 Jul 2010 08:03:20 +0000 (11:03 +0300)
commitd602dabaeba79df90cc67c32d5fe4ee0d5e2b73a
tree7aa3b395f4c2934adde7b07a6678c347c84a7d35
parent1c5474a65bf15a4cb162dfff86d6d0b5a08a740c
SLOB: Free objects to their own list

SLOB has alloced smaller objects from their own list in reduce overall external
fragmentation and increase repeatability, free to their own list also.

This is /proc/meminfo result in my test machine:

  without this patch:
  ===
  MemTotal:        1030720 kB
  MemFree:          750012 kB
  Buffers:           15496 kB
  Cached:           160396 kB
  SwapCached:            0 kB
  Active:           105024 kB
  Inactive:         145604 kB
  Active(anon):      74816 kB
  Inactive(anon):     2180 kB
  Active(file):      30208 kB
  Inactive(file):   143424 kB
  Unevictable:          16 kB
  ....

  with this patch:
  ===
  MemTotal:        1030720 kB
  MemFree:          751908 kB
  Buffers:           15492 kB
  Cached:           160280 kB
  SwapCached:            0 kB
  Active:           102720 kB
  Inactive:         146140 kB
  Active(anon):      73168 kB
  Inactive(anon):     2180 kB
  Active(file):      29552 kB
  Inactive(file):   143960 kB
  Unevictable:          16 kB
  ...

The result shows an improvement of 1 MB!

And when I tested it on a embeded system with 64 MB, I found this path is never
called during kernel bootup.

Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Bob Liu <lliubbo@gmail.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
mm/slob.c