Slab page exclusion issue on Linux 6.2-rc1
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
makedumpfile (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Jammy |
Fix Committed
|
Medium
|
Chengen Du | ||
Lunar |
Fix Committed
|
Medium
|
Chengen Du |
Bug Description
[Impact]
The kernel crashdumps generated by makedumpfile on kernel 6.2
(affects Lunar, and Jammy with the HWE kernel) might not open
on crash, due to kernel changes not reflected in makedumpfile.
The Kernel commit 130d4df57390 ("mm/sl[au]b: rearrange struct slab fields to allow larger rcu_head"), included in Linux 6.2-rc1 and later versions, introduced a change that aligns the offset of slab.slabs with that of page.mapping.
However, this modification unintentionally causes the makedumpfile command with the -d 8 option, meant to exclude user data, to incorrectly exclude certain slab pages.
Consequently, when utilizing dumpfiles generated in this manner, the "crash" utility may encounter an error when attempting to initiate a session:
crash: page excluded: kernel virtual address: ffff0000e269d428 type: "xa_node shift"
[Fix]
An upstream fix is available.
==========
commit 5f17bdd2128998a
Author: Kazuhito Hagio <email address hidden>
Date: Wed Dec 21 11:06:39 2022 +0900
[PATCH] Fix wrong exclusion of slab pages on Linux 6.2-rc1
==========
[Test Plan]
1. Install the required packages and then proceed to reboot the machine.
# sudo apt install crash linux-crashdump -y
# reboot
2. To check the status of kdump, use the `kdump-config show` command.
# kdump-config show
DUMP_MODE: kdump
USE_KDUMP: 1
KDUMP_COREDIR: /var/crash
crashkernel addr: 0x64000000
/var/
kdump initrd:
/var/
current state: ready to kdump
kexec command:
/sbin/kexec -p --command-
3. To trigger a crash dump forcefully, execute the `echo c | sudo tee /proc/sysrq-
4. Download the kernel .ddeb file, which will be used for analyzing the dump file.
# sudo -i
# cd /var/crash
# pull-lp-ddebs linux-image-
# dpkg-deb -x linux-image-
5. Utilize the "crash" utility to parse and analyze the dump file.
# crash dbgsym-$(uname -r)/usr/
...
please wait... (gathering task table data)
crash: page excluded: kernel virtual address: ffff0000e269d428 type: "xa_node shift"
[Where problems could occur]
The patch has altered the method for excluding slab pages, aligning with the structural changes introduced in Linux 6.2-rc1.
This modification is essential for Linux kernel 6.2.
However, it's crucial to note that this change may impact the content of the dump file, potentially leading to a situation where the "crash" utility is unable to parse it in the worst-case scenario.
Changed in makedumpfile (Ubuntu Lunar): | |
assignee: | nobody → Chengen Du (chengendu) |
status: | New → In Progress |
debdiff for Lunar