** Changed in: linux (Ubuntu Jammy) Importance: Undecided => Medium ** Changed in: linux (Ubuntu Jammy) Importance: Medium => High
** Changed in: linux (Ubuntu Noble) Importance: Undecided => High ** Changed in: linux (Ubuntu Jammy) Status: In Progress => Fix Committed -- You received this bug notification because you are a member of Kernel Packages, which is subscribed to linux in Ubuntu. https://bugs.launchpad.net/bugs/2075575 Title: kexec fails in LPAR when some cpus are disabled Status in The Ubuntu-power-systems project: Fix Released Status in linux package in Ubuntu: Fix Released Status in linux source package in Jammy: Fix Committed Status in linux source package in Noble: Fix Released Status in linux source package in Oracular: Fix Released Bug description: [ Impact ] powerpc/pseries: Fix scv instruction crash with kexec kexec on pseries disables AIL (reloc_on_exc), required for scv instruction support, before other CPUs have been shut down. This means they can execute scv instructions after AIL is disabled, which causes an interrupt at an unexpected entry location that crashes the kernel. Change the kexec sequence to disable AIL after other CPUs have been brought down. As a refresher, the real-mode scv interrupt vector is 0x17000, and the fixed-location head code probably couldn't easily deal with implementing such high addresses so it was just decided not to support that interrupt at all. [ Fix ] Backport the following commit: - 21a741eb75f8 powerpc/pseries: Fix scv instruction crash with kexec from upstream. [ Test Plan ] Repro steps: 1. Boot into an L1 lpar 2. Disable some cpus (eg: ppc64_cpu --cores-on=3) 3. Try to kexec. This bug is reproducible only when we load the target kernel/initrd and use "kexec -e" as follows: kexec -l --initrd initramfs-$(uname -r).img vmlinuz-$(uname -r) --append="$(cat /proc/cmdline)" kexec -e kexec works fine if we do a normal kexec without skipping the shutdown path kexec --initrd initramfs-$(uname -r).img vmlinuz-$(uname -r) --append="$(cat /proc/cmdline)" [ Where problems could occur ] The fix affects the PowerPC pSeries kexec sequence. A problem with this fix may manifest as system instability during a kexec transition, unexpected exceptions in early boot of the new kernel, or complete system crashes when attempting to perform a kernel reboot via kexec. --- == Comment: #0 - SEETEENA THOUFEEK <sthou...@in.ibm.com> - 2024-08-02 03:11:31 == +++ This bug was initially created as a clone of Bug #206083 +++ ---Problem Description--- kexec fails in LPAR when some cpus are disabled Contact Information = sthou...@in.ibm.com Machine Type = na ---uname output--- na ---Debugger--- A debugger is not configured ---Steps to Reproduce--- Summary: At L1 level, kexec fails if some of the cpus in the machine are disabled. Distros and kernel versions used: 1. Distro versions used a. L1 LPAR : b. L2 : Repro steps: 1. Boot into an L1 lpar 2. Disable some cpus (eg: ppc64_cpu --cores-on=3) 3. Try to kexec. This bug is reproducible only when we load the target kernel/initrd and use "kexec -e" as follows: kexec -l --initrd initramfs-$(uname -r).img vmlinuz-$(uname -r) --append="$(cat /proc/cmdline)" kexec -e kexec works fine if we do a normal kexec without skipping the shutdown path kexec --initrd initramfs-$(uname -r).img vmlinuz-$(uname -r) --append="$(cat /proc/cmdline)" Fix is upstream now: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id=21a741eb75f80397e5f7d3739e24d7d75e619011 Thanks, Sourabh Jain please include in Ubuntu Oops output: no Stack trace output: no System Dump Info: The system is not configured to capture a system dump. *Additional Instructions for sthou...@in.ibm.com: -Attach sysctl -a output output to the bug. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu-power-systems/+bug/2075575/+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