bianbu-linux-6.6/scripts/gdb/linux
Kuan-Ying Lee 79939c4a79 scripts/gdb/slab: add slab support
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.com
Signed-off-by: Kuan-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: Andrew Morton <akpm@linux-foundation.org>
2023-08-21 13:46:23 -07:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
__init__.py scripts/gdb: add empty package initialization script 2015-02-28 09:57:51 -08:00
clk.py scripts/gdb: bail early if there are no clocks 2023-04-08 13:45:38 -07:00
config.py scripts/gdb: change kernel config dumping method 2022-06-11 18:31:53 +09:00
constants.py.in scripts/gdb/slab: add slab support 2023-08-21 13:46:23 -07:00
cpus.py scripts/gdb: support getting current task struct in UML 2023-04-08 13:45:37 -07:00
device.py scripts/gdb: add helpers to find and list devices 2019-07-16 19:23:24 -07:00
dmesg.py scripts/gdb: fix 'lx-dmesg' on 32 bits arch 2022-07-21 15:32:52 +02:00
genpd.py scripts/gdb: bail early if there are no generic PD 2023-04-08 13:45:38 -07:00
interrupts.py scripts/gdb: print interrupts 2023-04-18 16:39:33 -07:00
lists.py scripts/gdb: fix list_for_each 2021-02-26 09:41:05 -08:00
Makefile kbuild: use always-y instead of extra-y 2021-02-16 12:01:45 +09:00
mm.py scripts/gdb/aarch64: add aarch64 page operation helper commands and configs 2023-08-21 13:46:22 -07:00
modules.py scripts/gdb/modules: add get module text support 2023-08-21 13:46:22 -07:00
page_owner.py scripts/gdb/page_owner: add page owner support 2023-08-21 13:46:23 -07:00
pgtable.py scripts/gdb/aarch64: add aarch64 page operation helper commands and configs 2023-08-21 13:46:22 -07:00
proc.py scripts/gdb: create linux/vfs.py for VFS related GDB helpers 2023-04-18 16:39:34 -07:00
radixtree.py scripts/gdb: add a Radix Tree Parser 2023-04-18 16:39:33 -07:00
rbtree.py scripts/gdb: fix python 3.8 SyntaxWarning 2020-08-12 10:58:02 -07:00
slab.py scripts/gdb/slab: add slab support 2023-08-21 13:46:23 -07:00
stackdepot.py scripts/gdb/stackdepot: add stackdepot support 2023-08-21 13:46:22 -07:00
symbols.py scripts/gdb/symbols: add specific ko module load command 2023-08-21 13:46:21 -07:00
tasks.py scripts/gdb/tasks: add headers and improve spacing format 2020-10-16 11:11:22 -07:00
timerlist.py scripts/gdb: timerlist: convert int chunks to str 2023-04-18 16:39:34 -07:00
utils.py scripts/gdb/utils: add common type usage 2023-08-21 13:46:22 -07:00
vfs.py scripts/gdb: add GDB convenience functions $lx_dentry_name() and $lx_i_dentry() 2023-04-18 16:39:35 -07:00