On 26 Mar 2024, at 13:04, Jan Schunk wrote: > Before I start doing this on my own build I tried it with unmodified linux-image-6.6.13+bpo-amd64 from Debian 12. > I installed systemtap, linux-headers-6.6.13+bpo-amd64 and linux-image-6.6.13+bpo-amd64-dbg and tried to run stap: > > user@deb:~$ sudo stap -v --all-modules kmem_alloc.stp nfsd_file > WARNING: Kernel function symbol table missing [man warning::symbols] > Pass 1: parsed user script and 484 library scripts using 110120virt/96896res/7168shr/89800data kb, in 1360usr/1080sys/4963real ms. > WARNING: cannot find module kernel debuginfo: No DWARF information found [man warning::debuginfo] > semantic error: resolution failed in DWARF builder > > semantic error: while resolving probe point: identifier 'kernel' at kmem_alloc.stp:5:7 > source: probe kernel.function("kmem_cache_alloc") { > ^ > > semantic error: no match > > Pass 2: analyzed script: 1 probe, 5 functions, 1 embed, 3 globals using 112132virt/100352res/8704shr/91792data kb, in 30usr/30sys/167real ms. > Pass 2: analysis failed. [man error::pass2] > Tip: /usr/share/doc/systemtap/README.Debian should help you get started. > user@deb:~$ > > user@deb:~$ grep -E 'CONFIG_DEBUG_INFO|CONFIG_KPROBES|CONFIG_DEBUG_FS|CONFIG_RELAY' /boot/config-6.6.13+bpo-amd64 > CONFIG_RELAY=y > CONFIG_KPROBES=y > CONFIG_KPROBES_ON_FTRACE=y > CONFIG_DEBUG_INFO=y > # CONFIG_DEBUG_INFO_NONE is not set > CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y > # CONFIG_DEBUG_INFO_DWARF4 is not set > # CONFIG_DEBUG_INFO_DWARF5 is not set > # CONFIG_DEBUG_INFO_REDUCED is not set > CONFIG_DEBUG_INFO_COMPRESSED_NONE=y > # CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set > # CONFIG_DEBUG_INFO_SPLIT is not set > CONFIG_DEBUG_INFO_BTF=y > CONFIG_DEBUG_INFO_BTF_MODULES=y > CONFIG_DEBUG_FS=y > CONFIG_DEBUG_FS_ALLOW_ALL=y > # CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set > # CONFIG_DEBUG_FS_ALLOW_NONE is not set > user@deb:~$ > > Do I need to enable other options? You should just need DEBUG_INFO.. maybe stap can't find it? You can try to add: -r /path/to/the/kernel/build .. but usually I use this option for a cross-compile. Usually I don't have to muck around without the debuginfo packages either. If I don't have them then I'm annotating the kernel directly. Maybe just a view of what's happening in /proc/slabinfo would be enough.. Ben