<8.0.2> 141e75f3c11c arm64: handle vabits_actual symbol missing case df1f0cba729f x86_64: Fix for move of per-cpu variables into struct pcpu_hot [How-to-verify]: The crash utility starts successfully without issues: ... bt: invalid size request: 0 type: "stack contents" bt: read of stack at 0 failed f182d08bab20 Fix for mm_struct.rss_stat conversion into percpu_counter [How-to-verify] Running "ps" without errors: bt: invalid size request: 0 type: "stack contents" bt: read of stack at 0 failed [Test](amd64/arm64) crash> ps PID PPID CPU TASK ST %MEM VSZ RSS COMM 0 0 0 ffffffffb640fbc0 RU 0.0 0 0 [swapper/0] ... d83df2fb66cd SLUB: Fix for offset change of struct slab members on Linux 6.2-rc1 [How-to-verify] Running "kmem -S" without errors: CACHE OBJSIZE ALLOCATED TOTAL SLABS SSIZE NAME kmem: filp: partial list slab: ffffcc650405ab88 invalid page.inuse: -1 ffff8fa0401eca00 232 1267 1792 56 8k filp ... KMEM_CACHE_NODE NODE SLABS PARTIAL PER-CPU ffff8fa0401cb8c0 0 56 24 8 NODE 0 PARTIAL: SLAB MEMORY NODE TOTAL ALLOCATED FREE kmem: filp: invalid partial list slab pointer: ffffcc650405ab88 41d4b85ea50e Fix for "kmem -i" to display correct SLAB statistics on Linux 5.9 and later [How-to-verify] Ensure "kmem -i" displays correct SLAB statistics; use "slaptop" for comparison 120d6e89fc14 SLAB: Fix for "kmem -s|-S" options on Linux 6.1 and later [How-to-verify] Running "kmem -S" without errors: kmem: invalid structure member offset: slab_list FILE: memory.c LINE: 12156 FUNCTION: verify_slab_v2() ac96e17d1de5 SLAB: Fix for "kmem -s|-S" options on Linux 6.2-rc1 and later [How-to-verify] Running "kmem -S" without errors: CACHE OBJSIZE ALLOCATED TOTAL SLABS SSIZE NAME kmem: rpc_inode_cache: partial list: page/slab: fffff31ac4125190 bad active counter: 99476865 kmem: rpc_inode_cache: partial list: page/slab: fffff31ac4125190 bad s_mem pointer: 100000003 kmem: rpc_inode_cache: full list: page/slab: fffff31ac4125150 bad active counter: 99476225 kmem: rpc_inode_cache: full list: page/slab: fffff31ac4125150 bad active counter: 99476225 kmem: rpc_inode_cache: full list: page/slab: fffff31ac4125150 bad s_mem pointer: 100000005 ffff930202adfb40 704 0 0 0 4k rpc_inode_cache ... [Test](amd64/arm64) crash> kmem -S CACHE OBJSIZE ALLOCATED TOTAL SLABS SSIZE NAME ffff937872555900 680 0 46 2 16k isofs_inode_cache ... 872cad2d63b3 Port the maple tree data structures and functions 222176a0a6c1 Add do_maple_tree() for maple tree operations 9efc1f68a44f Introduce maple tree vma iteration to vm_area_dump() [How-to-verify] Running "vm -p" without errors [Test](amd64/arm64) crash> vm -p PID: 4561 TASK: ffff93787296cc80 CPU: 0 COMMAND: "tee" MM PGD RSS TOTAL_VM ffff93780432ee00 ffff937807100000 1948k 6084k VMA START END FLAGS FILE ffff937810299300 56512cb16000 56512cb18000 8000071 /usr/bin/tee ... 46344aa2f92b Dump maple tree offset variables by "help -o" 489093c2183f Fix "kmem -n" option to display memory blocks on Linux 6.3-rc1 and later [How-to-verify] Running "kmem -n" without errors: kmem: invalid structure member offset: bus_type_p FILE: memory.c LINE: 17852 FUNCTION: init_memory_block() [Test](amd64/arm64) crash> kmem -n NODE SIZE PGLIST_DATA BOOTMEM_DATA NODE_ZONES 0 524155 ffff93787fed6000 ---- ffff93787fed6000 ... <8.0.3> 58c1816521c2 Fix failure of "dev -d|-D" options on Linux 6.4 and later kernels [How-to-verify] Running "dev -d" without errors: dev: invalid structure member offset: class_p FILE: dev.c LINE: 4689 FUNCTION: init_iter() [Test](amd64/arm64) crash> dev -d MAJOR GENDISK NAME REQUEST_QUEUE TOTAL READ WRITE 253 ffff937805017c00 vda ffff93780500fc00 0 0 0 ... 342cf340ed03 Fix "kmem -v" option displaying no regions on Linux 6.3 and later [How-to-verify] The "kmem -v" command shows vmalloc'd regions [Test](amd64/arm64) crash> kmem -v VMAP_AREA VM_STRUCT ADDRESS RANGE SIZE ffff93780184d870 ffff937801955e00 ffffa60300000000 - ffffa60300005000 20480 ffff93780184d0d8 ffff937801955640 ffffa60300005000 - ffffa60300007000 8192 ... 77d8621876c1 x86_64: Fix "bt" command printing stale entries on Linux 6.4 and later [How-to-verify] The "bt" command doesn't display stale entries [Test](amd64/arm64) crash> bt 1 PID: 1 TASK: ffff937801af0000 CPU: 1 COMMAND: "systemd" #0 [ffffa6030001bc18] __schedule at ffffffffb5350bfc #1 [ffffa6030001bcc0] schedule at ffffffffb5351113 #2 [ffffa6030001bce0] schedule_hrtimeout_range_clock at ffffffffb535836a #3 [ffffa6030001bd60] schedule_hrtimeout_range at ffffffffb53583a3 #4 [ffffa6030001bd70] ep_poll at ffffffffb471df42 #5 [ffffa6030001be08] do_epoll_wait at ffffffffb471e07b #6 [ffffa6030001be48] __x64_sys_epoll_wait at ffffffffb471ed0f #7 [ffffa6030001be98] do_syscall_64 at ffffffffb53399ac #8 [ffffa6030001bf50] entry_SYSCALL_64_after_hwframe at ffffffffb54000e6 ... 7750e61fdb2a Support module memory layout change on Linux 6.4 [How-to-verify]: The crash utility starts successfully without issues: crash: invalid structure member offset: module_core_size FILE: kernel.c LINE: 3787 FUNCTION: module_init() 88580068b7dd Fix failure of gathering task table on Linux 6.5-rc1 and later [How-to-verify] The crash utility starts successfully, and "ps -S" collects the task table correctly "WARNING: active task ffff936992ad0000 on cpu 1 not found in PID hash" not exist [Test](amd64/arm64) crash> ps -S RU: 5 IN: 111 ID: 70 WA: 1 4ee56105881d Fix compilation error due to new strlcpy function that glibc added 6d0be1316aa3 Fix "irq -a" option on Linux 6.0 and later [How-to-verify] "irq -a" command shows accurate CPU affinity for IRQs d17d51a92a3a Exclude zero entries from do_maple_tree() return value 38d35bd1423c Fix "irq [-a|-s]" options on Linux 6.5-rc1 and later [How-to-verify] Running "irq -a" without errors crash> irq irq: x86_64_dump_irq: irq_desc[] or irq_desc_tree do not exist? [Test](amd64/arm64) crash> irq -a IRQ NAME AFFINITY 1 i8042 0-3 ... c9a732d0f6ab arm64: Fix "vtop" command to display swap information on Linux 5.19 and later [How-to-verify] Ensure "vtop" shows swap information. Enable zram, create a program that consumes memory, and print memory addresses for crash utility use. [Test](amd64/arm64) crash> vtop -u 0xffff8083f010 VIRTUAL PHYSICAL ffff8083f010 (not mapped) PAGE DIRECTORY: ffff0000c7a51000 PGD: ffff0000c7a51ff8 => 8000001085fd003 PUD: ffff0000c85fdff0 => 800000107f4f003 PMD: ffff0000c7f4f020 => 800000108d6d003 PTE: ffff0000c8d6d1f8 => 3c07a04 PTE SWAP OFFSET 3c07a04 /dev/zram0 245882 VMA START END FLAGS FILE ffff0000c7340000 fffda57f3000 ffff86c40000 100073 SWAP: /dev/zram0 OFFSET: 245882 0172e35083b5 Fix "rd" command to display data on zram on Linux 5.17 and later [How-to-verify] Ensure "rd" displays data from zram [Note] This appears to be a bug in the crash utility related to the kernel commit 7ac07a26dea7 (zram: preparation for multi-zcomp support). The bug causes errors when using the "rd" command to read zspages. rd: WARNING: Some pages are swapped out to zram. Please run mod -s zram. rd: invalid user virtual address: ffff7d23f010 type: "64-bit UVADDR" We can apply this patch initially and address the issue in the crash utility upstream later. 55a43bcefa20 Fix compilation error and warning with gcc-4.8.5