Jammy is also affected for the 6.2 HWE kernel.

The patch for makedumpfile is the same, and applies cleanly.
It fixes the issue with the 6.2 HWE kernel, and causes no regression with the 
5.15 GA kernel (ie, the dump file can still be opened in crash).


Details:
---

Setup:

        $ lxc launch --vm --config limits.memory=2GiB ubuntu:jammy mdf-j
        $ lxc shell mdf-j

        # apt update && apt install -y linux-image-generic-hwe-22.04 
linux-crashdump crash
        # apt remove -y $(dpkg -l | awk '$2 ~ /linux-.*kvm/ { print $2 }')

        # sed 's/crashkernel=[^ "]\+/crashkernel=512M/' -i 
/etc/default/grub.d/kdump-tools.cfg
        # update-grub
        # reboot
        # kdump-config show | grep state:
        current state:    ready to kdump
        # echo c >/proc/sysrq-trigger
        
Debug symbols:

        # wget 
https://launchpad.net/ubuntu/+archive/primary/+files/linux-image-unsigned-6.2.0-34-generic-dbgsym_6.2.0-34.34~22.04.1_amd64.ddeb
        # ar x 
linux-image-unsigned-6.2.0-34-generic-dbgsym_6.2.0-34.34~22.04.1_amd64.ddeb 
data.tar.xz
        # tar xvf data.tar.xz ./usr/lib/debug/boot/vmlinux-6.2.0-34-generic
        ./usr/lib/debug/boot/vmlinux-6.2.0-34-generic

Upstream crash (for now):

        # apt build-dep -y crash
        # git clone https://github.com/crash-utility/crash.git
        # cd crash
        # make

Original package:
---

        # ./crash ./usr/lib/debug/boot/vmlinux-6.2.0-34-generic 
/var/crash/202310101134/dump.202310101134
        ...
        please wait... (gathering task table data)
        crash: page excluded: kernel virtual address: ffff9b13c2b826c8  type: 
"xa_node shift"

Patched package:
---

        $ ./crash ./usr/lib/debug/boot/vmlinux-6.2.0-34-generic 
/var/crash/202310101206/dump.202310101206
        ...
             RELEASE: 6.2.0-34-generic
             VERSION: #34~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Sep  7 
13:12:03 UTC 2
        ...
        crash>

Patched package & GA kernel:
---

        (upstream crash and Ubuntu crash, both work)

        $ ./crash ./usr/lib/debug/boot/vmlinux-5.15.0-86-generic 
/var/crash/202310101225/dump.202310101225
        ...
             RELEASE: 5.15.0-86-generic
             VERSION: #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023
        ...
        crash>

        $ crash ./usr/lib/debug/boot/vmlinux-5.15.0-86-generic 
/var/crash/202310101225/dump.202310101225
        ...
             RELEASE: 5.15.0-86-generic
             VERSION: #96-Ubuntu SMP Wed Sep 20 08:23:49 UTC 2023
        ...
        crash>


** Changed in: makedumpfile (Ubuntu Jammy)
       Status: Incomplete => Confirmed

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to makedumpfile in Ubuntu.
https://bugs.launchpad.net/bugs/2038248

Title:
  Slab page exclusion issue on Linux 6.2-rc1

Status in makedumpfile package in Ubuntu:
  Fix Released
Status in makedumpfile source package in Jammy:
  Confirmed
Status in makedumpfile source package in Lunar:
  In Progress

Bug description:
  [Impact]
  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 5f17bdd2128998a3eeeb4521d136a192222fadb6
  Author: Kazuhito Hagio <k-hagio...@nec.com>
  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/lib/kdump/vmlinuz: symbolic link to /boot/vmlinuz-6.2.0-33-generic
  kdump initrd: 
     /var/lib/kdump/initrd.img: symbolic link to 
/var/lib/kdump/initrd.img-6.2.0-33-generic
  current state:    ready to kdump

  kexec command:
    /sbin/kexec -p --command-line="BOOT_IMAGE=/boot/vmlinuz-6.2.0-33-generic 
root=UUID=3e72f5d5-870b-4b8e-9a0d-8ba920391379 ro console=tty1 console=ttyS0 
reset_devices systemd.unit=kdump-tools-dump.service nr_cpus=1 irqpoll 
usbcore.nousb" --initrd=/var/lib/kdump/initrd.img /var/lib/kdump/vmlinuz
  3. To trigger a crash dump forcefully, execute the `echo c | sudo tee 
/proc/sysrq-trigger` command.
  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-unsigned-$(uname -r)
  # dpkg-deb -x linux-image-unsigned-$(uname -r)-*.ddeb dbgsym-$(uname -r)
  5. Utilize the "crash" utility to parse and analyze the dump file.
  # crash dbgsym-$(uname -r)/usr/lib/debug/boot/vmlinux-$(uname -r) 
XXXX/dump.XXXX
  crash 8.0.3++
  Copyright (C) 2002-2022  Red Hat, Inc.
  Copyright (C) 2004, 2005, 2006, 2010  IBM Corporation
  Copyright (C) 1999-2006  Hewlett-Packard Co
  Copyright (C) 2005, 2006, 2011, 2012  Fujitsu Limited
  Copyright (C) 2006, 2007  VA Linux Systems Japan K.K.
  Copyright (C) 2005, 2011, 2020-2022  NEC Corporation
  Copyright (C) 1999, 2002, 2007  Silicon Graphics, Inc.
  Copyright (C) 1999, 2000, 2001, 2002  Mission Critical Linux, Inc.
  Copyright (C) 2015, 2021  VMware, Inc.
  This program is free software, covered by the GNU General Public License,
  and you are welcome to change it and/or distribute copies of it under
  certain conditions.  Enter "help copying" to see the conditions.
  This program has absolutely no warranty.  Enter "help warranty" for details.
   
  GNU gdb (GDB) 10.2                             
  Copyright (C) 2021 Free Software Foundation, Inc.
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
  This is free software: you are free to change and redistribute it.
  There is NO WARRANTY, to the extent permitted by law.
  Type "show copying" and "show warranty" for details.
  This GDB was configured as "aarch64-unknown-linux-gnu".
  Type "show configuration" for configuration details.
  Find the GDB manual and other documentation resources online at:
      <http://www.gnu.org/software/gdb/documentation/>.

  For help, type "help".
  Type "apropos word" to search for commands related to "word"...

  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/makedumpfile/+bug/2038248/+subscriptions


-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to