** Description changed:

  Note: Updates are being staged at ppa:dannf/arm64-kdump.
  
  [Impact]
  It is not possible to collect a kernel crash dump from a crashed arm64 server 
for later debugging.
  
  [Test Case]
  sudo apt install kdump-tools
  (reboot, so crashkernel= is added to the kernel commandline)
  echo c | sudo tee /proc/sysrq-trigger
  
  Crash dump should occur, with artifacts collected in /var/crash.
  
  If you want to verify that the dump is usable, install the corresponding
  linux-image-<ver>-dbgsym package and run:
  
  sudo crash /usr/lib/debug/boot/vmlinux-<ver>
  /var/crash/<crash>/dump.<crash>
  
  crash should successfully load, placing you at a "crash>" prompt. At
  that prompt, you can issue the 'bt' command to see a backtrace.
  
  [Regression Risk]
  = Kernel =
  3 patches here touch code outside of arch/arm64/:
  
  memblock: add memblock_clear_nomap()
  This adds a new function with no callers, so regression risk is negligible.
  (A later patch adds a call to it under arch/arm64/).
  
  memblock: add memblock_cap_memory_range()
  This refactors some of the code in memblock_mem_limit_remove_map() into a new 
function. The only existing caller of memblock_mem_limit_remove_map() is under 
arch/arm64/, so the regression risk outside of arm64 is negligible.
  
  efi/libstub/arm*: Set default address and size cells values for an empty dtb
  Because this code is for EFI platforms that support device-tree, it is 
de-facto ARM-specific (as noted in the patch title).
  
  For arm64, we have mitigated the risk by explicit regression testing on 
several platforms:
   - Qualcomm QDF2400
   - Cavium ThunderX CRB1S
   - HP m400 (X-Gene)
   - HiSilicon D05 (Hi07)
  
  = kexec-tools =
- TBD
+ For zesty, 10 patches are required to add kdump support.
+ 
+ 0001-kexec-extend-the-semantics-of-kexec_iomem_for_each_l.patch:
+ This modifies a function used on armhf & x86. The description explains the 
change, and why it does not impact those archs:
+ 
+ -----
+ The current users of kexec_iomem_for_each_line(), arm, sh and x86, will not
+ be affected by this change because
+ * arm
+   The callback function only returns -1 or 0, and the return value of
+   kexec_iomem_for_each_line() will never be used.
+ * sh, x86
+   The callback function may return (-1 for sh,) 0 or 1, but always returns
+   1 once we have reached the maximum number of entries allowed.
+   Even so the current kexec_iomem_for_each_line() counts them up.
+   This change actually fixes this bug.
+ -----
+ 
+ 0002-kexec-generalize-and-rename-get_kernel_stext_sym.patch:
+ This generalizes a function that was duplicated by arm & x86 and makes it 
common so arm64 can use it.
+ 
+ The remaining 8 of these only touch code in kexec/arch/arm64, so
+ regression risk for other architectures is negligible.
+ 
+ Finally, I have tested this update on both i386 and amd64 VMs. i386
+ crashes do not currently work in zesty (filed LP: #1699874), and my test
+ results show no change there. amd64 worked before, and continue to work
+ with these changes.

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

Title:
  arm64 kernel crashdump support

Status in kexec-tools package in Ubuntu:
  Fix Released
Status in linux package in Ubuntu:
  Fix Committed
Status in makedumpfile package in Ubuntu:
  Confirmed
Status in kexec-tools source package in Xenial:
  Confirmed
Status in linux source package in Xenial:
  Won't Fix
Status in makedumpfile source package in Xenial:
  Confirmed
Status in kexec-tools source package in Yakkety:
  Confirmed
Status in linux source package in Yakkety:
  Won't Fix
Status in makedumpfile source package in Yakkety:
  Confirmed
Status in kexec-tools source package in Zesty:
  In Progress
Status in linux source package in Zesty:
  Fix Committed
Status in makedumpfile source package in Zesty:
  Confirmed

Bug description:
  Note: Updates are being staged at ppa:dannf/arm64-kdump.

  [Impact]
  It is not possible to collect a kernel crash dump from a crashed arm64 server 
for later debugging.

  [Test Case]
  sudo apt install kdump-tools
  (reboot, so crashkernel= is added to the kernel commandline)
  echo c | sudo tee /proc/sysrq-trigger

  Crash dump should occur, with artifacts collected in /var/crash.

  If you want to verify that the dump is usable, install the
  corresponding linux-image-<ver>-dbgsym package and run:

  sudo crash /usr/lib/debug/boot/vmlinux-<ver>
  /var/crash/<crash>/dump.<crash>

  crash should successfully load, placing you at a "crash>" prompt. At
  that prompt, you can issue the 'bt' command to see a backtrace.

  [Regression Risk]
  = Kernel =
  3 patches here touch code outside of arch/arm64/:

  memblock: add memblock_clear_nomap()
  This adds a new function with no callers, so regression risk is negligible.
  (A later patch adds a call to it under arch/arm64/).

  memblock: add memblock_cap_memory_range()
  This refactors some of the code in memblock_mem_limit_remove_map() into a new 
function. The only existing caller of memblock_mem_limit_remove_map() is under 
arch/arm64/, so the regression risk outside of arm64 is negligible.

  efi/libstub/arm*: Set default address and size cells values for an empty dtb
  Because this code is for EFI platforms that support device-tree, it is 
de-facto ARM-specific (as noted in the patch title).

  For arm64, we have mitigated the risk by explicit regression testing on 
several platforms:
   - Qualcomm QDF2400
   - Cavium ThunderX CRB1S
   - HP m400 (X-Gene)
   - HiSilicon D05 (Hi07)

  = kexec-tools =
  For zesty, 10 patches are required to add kdump support.

  0001-kexec-extend-the-semantics-of-kexec_iomem_for_each_l.patch:
  This modifies a function used on armhf & x86. The description explains the 
change, and why it does not impact those archs:

  -----
  The current users of kexec_iomem_for_each_line(), arm, sh and x86, will not
  be affected by this change because
  * arm
    The callback function only returns -1 or 0, and the return value of
    kexec_iomem_for_each_line() will never be used.
  * sh, x86
    The callback function may return (-1 for sh,) 0 or 1, but always returns
    1 once we have reached the maximum number of entries allowed.
    Even so the current kexec_iomem_for_each_line() counts them up.
    This change actually fixes this bug.
  -----

  0002-kexec-generalize-and-rename-get_kernel_stext_sym.patch:
  This generalizes a function that was duplicated by arm & x86 and makes it 
common so arm64 can use it.

  The remaining 8 of these only touch code in kexec/arch/arm64, so
  regression risk for other architectures is negligible.

  Finally, I have tested this update on both i386 and amd64 VMs. i386
  crashes do not currently work in zesty (filed LP: #1699874), and my
  test results show no change there. amd64 worked before, and continue
  to work with these changes.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/kexec-tools/+bug/1694859/+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