• Christoph Lameter's avatar
    slub: add ability to list alloc / free callers per slab · 88a420e4
    Christoph Lameter authored
    This patch enables listing the callers who allocated or freed objects in a
    cache.
    
    For example to list the allocators for kmalloc-128 do
    
    cat /sys/slab/kmalloc-128/alloc_calls
          7 sn_io_slot_fixup+0x40/0x700
          7 sn_io_slot_fixup+0x80/0x700
          9 sn_bus_fixup+0xe0/0x380
          6 param_sysfs_setup+0xf0/0x280
        276 percpu_populate+0xf0/0x1a0
         19 __register_chrdev_region+0x30/0x360
          8 expand_files+0x2e0/0x6e0
          1 sys_epoll_create+0x60/0x200
          1 __mounts_open+0x140/0x2c0
         65 kmem_alloc+0x110/0x280
          3 alloc_disk_node+0xe0/0x200
         33 as_get_io_context+0x90/0x280
         74 kobject_kset_add_dir+0x40/0x140
         12 pci_create_bus+0x2a0/0x5c0
          1 acpi_ev_create_gpe_block+0x120/0x9e0
         41 con_insert_unipair+0x100/0x1c0
          1 uart_open+0x1c0/0xba0
          1 dma_pool_create+0xe0/0x340
          2 neigh_table_init_no_netlink+0x260/0x4c0
          6 neigh_parms_alloc+0x30/0x200
          1 netlink_kernel_create+0x130/0x320
          5 fz_hash_alloc+0x50/0xe0
          2 sn_common_hubdev_init+0xd0/0x6e0
         28 kernel_param_sysfs_setup+0x30/0x180
         72 process_zones+0x70/0x2e0
    
    cat /sys/slab/kmalloc-128/free_calls
        558 <not-available>
          3 sn_io_slot_fixup+0x600/0x700
         84 free_fdtable_rcu+0x120/0x260
          2 seq_release+0x40/0x60
          6 kmem_free+0x70/0xc0
         24 free_as_io_context+0x20/0x200
          1 acpi_get_object_info+0x3a0/0x3e0
          1 acpi_add_single_object+0xcf0/0x1e40
          2 con_release_unimap+0x80/0x140
          1 free+0x20/0x40
    
    SLAB_STORE_USER must be enabled for a slab cache by either booting with
    "slab_debug" or enabling user tracking specifically for the slab of interest.
    Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    88a420e4
slub.c 79.1 KB