linux/init
Kirill A. Shutemov b35f1819ac mm: create a separate slab for page->ptl allocation
If DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC are enabled spinlock_t on x86_64
is 72 bytes.  For page->ptl they will be allocated from kmalloc-96 slab,
so we loose 24 on each.  An average system can easily allocate few tens
thousands of page->ptl and overhead is significant.

Let's create a separate slab for page->ptl allocation to solve this.

To make sure that it really works this time, some numbers from my test
machine (just booted, no load):

Before:
  # grep '^\(kmalloc-96\|page->ptl\)' /proc/slabinfo
  kmalloc-96         31987  32190    128   30    1 : tunables  120   60    8 : slabdata   1073   1073     92
After:
  # grep '^\(kmalloc-96\|page->ptl\)' /proc/slabinfo
  page->ptl          27516  28143     72   53    1 : tunables  120   60    8 : slabdata    531    531      9
  kmalloc-96          3853   5280    128   30    1 : tunables  120   60    8 : slabdata    176    176      0

Note that the patch is useful not only for debug case, but also for
PREEMPT_RT, where spinlock_t is always bloated.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2014-01-21 16:19:44 -08:00
..
calibrate.c kernel: delete __cpuinit usage from all core kernel files 2013-07-14 19:36:59 -04:00
do_mounts.c init/do_mounts.c: add maj:min syntax comment 2013-11-13 12:09:12 +09:00
do_mounts.h
do_mounts_initrd.c
do_mounts_md.c
do_mounts_rd.c ./Makefile: export initial ramdisk compression config option 2013-11-13 12:09:36 +09:00
init_task.c
initramfs.c
Kconfig Merge branch 'linus' into timers/core 2014-01-12 14:12:44 +01:00
main.c mm: create a separate slab for page->ptl allocation 2014-01-21 16:19:44 -08:00
Makefile
noinitramfs.c
version.c