• Kuan-Ying Lee's avatar
    scripts/gdb/slab: add slab support · 79939c4a
    Kuan-Ying Lee authored
    Add 'lx-slabinfo' and 'lx-slabtrace' support.
    
    This GDB scripts print slabinfo and slabtrace for user
    to analyze slab memory usage.
    
    Example output like below:
    (gdb) lx-slabinfo
         Pointer       |         name         | active_objs  |   num_objs   | objsize  | objperslab  | pagesperslab
    ------------------ | -------------------- | ------------ | ------------ | -------- | ----------- | -------------
    0xffff0000c59df480 | p9_req_t             | 0            | 0            | 280      | 29          | 2
    0xffff0000c59df280 | isp1760_qh           | 0            | 0            | 160      | 25          | 1
    0xffff0000c59df080 | isp1760_qtd          | 0            | 0            | 184      | 22          | 1
    0xffff0000c59dee80 | isp1760_urb_listite  | 0            | 0            | 136      | 30          | 1
    0xffff0000c59dec80 | asd_sas_event        | 0            | 0            | 256      | 32          | 2
    0xffff0000c59dea80 | sas_task             | 0            | 0            | 448      | 36          | 4
    0xffff0000c59de880 | bio-120              | 18           | 21           | 384      | 21          | 2
    0xffff0000c59de680 | io_kiocb             | 0            | 0            | 448      | 36          | 4
    0xffff0000c59de480 | bfq_io_cq            | 0            | 0            | 1504     | 21          | 8
    0xffff0000c59de280 | bfq_queue            | 0            | 0            | 720      | 22          | 4
    0xffff0000c59de080 | mqueue_inode_cache   | 1            | 28           | 1152     | 28          | 8
    0xffff0000c59dde80 | v9fs_inode_cache     | 0            | 0            | 832      | 39          | 8
    ...
    
    (gdb) lx-slabtrace --cache_name kmalloc-1k
    63 <tty_register_device_attr+508> waste=16632/264 age=46856/46871/46888 pid=1 cpus=6,
       0xffff800008720240 <__kmem_cache_alloc_node+236>:    mov     x22, x0
       0xffff80000862a4fc <kmalloc_trace+64>:       mov     x21, x0
       0xffff8000095d086c <tty_register_device_attr+508>:   mov     x19, x0
       0xffff8000095d0f98 <tty_register_driver+704>:        cmn     x0, #0x1, lsl #12
       0xffff80000c2677e8 <vty_init+620>:   Cannot access memory at address 0xffff80000c2677e8
       0xffff80000c265a10 <tty_init+276>:   Cannot access memory at address 0xffff80000c265a10
       0xffff80000c26d3c4 <chr_dev_init+204>:       Cannot access memory at address 0xffff80000c26d3c4
       0xffff8000080161d4 <do_one_initcall+176>:    mov     w21, w0
       0xffff80000c1c1b58 <kernel_init_freeable+956>:       Cannot access memory at address 0xffff80000c1c1b58
       0xffff80000acf1334 <kernel_init+36>: bl      0xffff8000081ac040 <async_synchronize_full>
       0xffff800008018d00 <ret_from_fork+16>:       mrs     x28, sp_el0
    
    (gdb) lx-slabtrace --cache_name kmalloc-1k --free
    428 <not-available> age=4294958600 pid=0 cpus=0,
    
    Link: https://lkml.kernel.org/r/20230808083020.22254-8-Kuan-Ying.Lee@mediatek.comSigned-off-by: default avatarKuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
    Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
    Cc: Chinwen Chang <chinwen.chang@mediatek.com>
    Cc: Matthias Brugger <matthias.bgg@gmail.com>
    Cc: Qun-Wei Lin <qun-wei.lin@mediatek.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    79939c4a
vmlinux-gdb.py 1.24 KB