[Yakkety SRU] Enable KEXEC support in ARM64 kernel

Bug #1662554 reported by Manoj Iyer
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
Manoj Iyer
Yakkety
Fix Released
Undecided
Tim Gardner

Bug Description

[Impact]
 * If the kernel is not built with CONFIG_KEXEC support, kexec-tools will not be able to live boot a new kernel over the running one.
 * Our partners/customers have requested this feature.

[Test Case]
 * Install a version of kexec-tools that supports ARM64
 * Run the command: sudo kexec -l /boot/<kernel> --initrd=/boot/<initrd> --append="<append string>
 * You should see the message: kexec_load failed: Function not implemented

[Regression Potential]
 * The proposed config changes are limited to ARM64 architecture, overall risk of regression is low.

[Other Info]
 * Please note that kexec-tools currently is not built for ARM64
 * I have an SRU to enable that https://bugs.launchpad.net/bugs/1659618
 * I am working with dannf to get kexec-tools to support ARM64 in yakkety.

Revision history for this message
Manoj Iyer (manjo) wrote :

[Testing]

== Build & Install kernel and kexec-tools ==
Built kexec-tools with patches needed for ARM64 support, and built a 4.8.0-38 Yakkety kernel with CONFIG_KEXEC and CONFIG_KEXEC_CORE set to Y.

ubuntu@test:~$ cat /etc/issue
Ubuntu 16.10 \n \l
ubuntu@test:~$

ubuntu@test:~$ dpkg -l | grep kexec-tools
ii kexec-tools 1:2.0.10-2ubuntu1.1 arm64 tools to support fast kexec reboots
ubuntu@test:~$

ubuntu@test:~$ sudo file /boot/vmlinuz-4.8.0-38-generic
/boot/vmlinuz-4.8.0-38-generic: gzip compressed data, max compression, from Unix
ubuntu@test:~$

== Load kexec kernel ==
ubuntu@test:~$ sudo kexec -l /boot/vmlinuz-4.8.0-38-generic --initrd=/boot/initrd.img-4.8.0-38-generic --append="root=LABEL=cloudimg-rootfs vt.handoff=7"
ubuntu@test:~$

== Initiate kexec ==
ubuntu@test:~$ sudo kexec -e
ubuntu@test:~$

== Successful boot ==
test login: [ 66.553187] kexec_core: Starting new kernel
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.8.0-38-generic (manjo@tangerine) (gcc version 6.2.0 20161005 (Ubuntu 6.2.0-5ubuntu12) ) #40ubuntu1 SMP Mon Feb 6 21:55:35 UTC 2017 (Ubuntu 4.8.0-38.40ubuntu1-generic 4.8.17)
[ 0.000000] Boot CPU: AArch64 Processor [510f8000]
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: EFI v2.50 by EDK II
[ 0.000000] efi: SMBIOS=0x5bdb0000 SMBIOS 3.0=0x58660000 PROP=0x5f714518 ACPI=0x58690000 ACPI 2.0=0x58690014

summary: - [Yakkety] Enable KEXEC support in ARM64
+ [Yakkety] Enable KEXEC support in ARM64 kernel
Manoj Iyer (manjo)
summary: - [Yakkety] Enable KEXEC support in ARM64 kernel
+ [Yakkety SRU] Enable KEXEC support in ARM64 kernel
Manoj Iyer (manjo)
description: updated
Revision history for this message
Tim Gardner (timg-tpi) wrote :
Changed in linux (Ubuntu Yakkety):
assignee: nobody → Tim Gardner (timg-tpi)
status: New → In Progress
Changed in linux (Ubuntu):
status: In Progress → Fix Released
Changed in linux (Ubuntu Yakkety):
status: In Progress → Fix Committed
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-yakkety' to 'verification-done-yakkety'. If the problem still exists, change the tag 'verification-needed-yakkety' to 'verification-failed-yakkety'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-yakkety
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (6.0 KiB)

This bug was fixed in the package linux - 4.8.0-40.43

---------------
linux (4.8.0-40.43) yakkety; urgency=low

  * linux: 4.8.0-40.43 -proposed tracker (LP: #1667066)

  [ Andy Whitcroft ]
  * NFS client : permission denied when trying to access subshare, since kernel
    4.4.0-31 (LP: #1649292)
    - fs: Better permission checking for submounts

  * shaking screen (LP: #1651981)
    - drm/radeon: drop verde dpm quirks

  * [0bda:0328] Card reader failed after S3 (LP: #1664809)
    - usb: hub: Wait for connection to be reestablished after port reset

  * linux-lts-xenial 4.4.0-63.84~14.04.2 ADT test failure with linux-lts-xenial
    4.4.0-63.84~14.04.2 (LP: #1664912)
    - SAUCE: apparmor: fix link auditing failure due to, uninitialized var

  * In Ubuntu 17.04 : after reboot getting message in console like Unable to
    open file: /etc/keys/x509_ima.der (-2) (LP: #1656908)
    - SAUCE: ima: Downgrade error to warning

  * 16.04.2: Extra patches for POWER9 (LP: #1664564)
    - powerpc/mm: Fix no execute fault handling on pre-POWER5
    - powerpc/mm: Fix spurrious segfaults on radix with autonuma

  * ibmvscsis: Add SGL LIMIT (LP: #1662551)
    - ibmvscsis: Add SGL limit

  * [Hyper-V] Bug fixes for storvsc (tagged queuing, error conditions)
    (LP: #1663687)
    - scsi: storvsc: Enable tracking of queue depth
    - scsi: storvsc: Remove the restriction on max segment size
    - scsi: storvsc: Enable multi-queue support
    - scsi: storvsc: use tagged SRB requests if supported by the device
    - scsi: storvsc: properly handle SRB_ERROR when sense message is present
    - scsi: storvsc: properly set residual data length on errors

  * Ubuntu16.10-KVM:Big configuration with multiple guests running SRIOV VFs
    caused KVM host hung and all KVM guests down. (LP: #1651248)
    - KVM: PPC: Book 3S: XICS cleanup: remove XICS_RM_REJECT
    - KVM: PPC: Book 3S: XICS: correct the real mode ICP rejecting counter
    - KVM: PPC: Book 3S: XICS: Fix potential issue with duplicate IRQ resends
    - KVM: PPC: Book 3S: XICS: Implement ICS P/Q states
    - KVM: PPC: Book 3S: XICS: Don't lock twice when checking for resend

  * ISST-LTE:pNV: ppc64_cpu command is hung w HDs, SSDs and NVMe (LP: #1662666)
    - blk-mq: Avoid memory reclaim when remapping queues
    - blk-mq: Fix failed allocation path when mapping queues
    - blk-mq: Always schedule hctx->next_cpu

  * systemd-udevd hung in blk_mq_freeze_queue_wait testing unpartitioned NVMe
    drive (LP: #1662673)
    - percpu-refcount: fix reference leak during percpu-atomic transition

  * [Yakkety SRU] Enable KEXEC support in ARM64 kernel (LP: #1662554)
    - [Config] Enable KEXEC support in ARM64.

  * [Hyper-V] Fix ring buffer handling to avoid host throttling (LP: #1661430)
    - Drivers: hv: vmbus: On write cleanup the logic to interrupt the host
    - Drivers: hv: vmbus: On the read path cleanup the logic to interrupt the host
    - Drivers: hv: vmbus: finally fix hv_need_to_signal_on_read()

  * brd module compiled as built-in (LP: #1593293)
    - CONFIG_BLK_DEV_RAM=m

  * regession tests failing after stackprofile test is run (LP: #1661030)
    - SAUCE: fix regression with domain change in compla...

Read more...

Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Revision history for this message
Manoj Iyer (manjo) wrote :
Download full text (8.1 KiB)

$ cat /etc/issue
Ubuntu 16.10 \n \l

$ sudo file /boot/vmlinuz-4.10.0-22-generic
/boot/vmlinuz-4.10.0-22-generic: gzip compressed data, max compression, from Unix

$ sudo kexec -d -l /boot/vmlinuz-4.10.0-22-generic --initrd=/boot/initrd.img-4.10.0-22-generic --reuse-cmdline
arch_process_options:141: command_line: root=LABEL=cloudimg-rootfs ro quiet splash vt.handoff=7
arch_process_options:143: initrd: /boot/initrd.img-4.10.0-22-generic
arch_process_options:144: dtb: (null)
Try gzip decompression.
kernel: 0xffffaeb49010 kernel_size: 0x12bc200
get_memory_ranges_iomem_cb: 0000000040000000 - 000000005855ffff : System RAM
get_memory_ranges_iomem_cb: 00000000585c0000 - 00000000585ebfff : System RAM
get_memory_ranges_iomem_cb: 0000000058750000 - 000000005bc1ffff : System RAM
get_memory_ranges_iomem_cb: 000000005c000000 - 000000005fffffff : System RAM
elf_arm64_probe: Not an ELF executable.
image_arm64_load: kernel_segment: 0000000040000000
image_arm64_load: text_offset: 0000000000080000
image_arm64_load: image_size: 00000000013cf000
image_arm64_load: phys_offset: 0000000040000000
image_arm64_load: vp_offset: ffffffffffffffff
image_arm64_load: PE format: yes
read_1st_dtb: found /sys/firmware/fdt
initrd: base 4144f000, size 1af840fh (28279823)
dtb_set_initrd: start 1095036928, end 1123316751, size 28279823 (27617 KiB)
dtb: base 42f48000, size 1c49h (7241)
sym: sha256_starts info: 12 other: 00 shndx: 1 value: e80 size: 58
sym: sha256_starts value: 42f4ae80 addr: 42f4a014
machine_apply_elf_rel: CALL26 5800065394000000->580006539400039b
sym: sha256_update info: 12 other: 00 shndx: 1 value: 2df0 size: c
sym: sha256_update value: 42f4cdf0 addr: 42f4a030
machine_apply_elf_rel: CALL26 eb16027f94000000->eb16027f94000b70
sym: sha256_finish info: 12 other: 00 shndx: 1 value: 2e00 size: 1bc
sym: sha256_finish value: 42f4ce00 addr: 42f4a048
machine_apply_elf_rel: CALL26 aa1603e194000000->aa1603e194000b6e
sym: memcmp info: 12 other: 00 shndx: 1 value: 604 size: 34
sym: memcmp value: 42f4a604 addr: 42f4a058
machine_apply_elf_rel: CALL26 340003a094000000->340003a09400016b
sym: printf info: 12 other: 00 shndx: 1 value: 524 size: 80
sym: printf value: 42f4a524 addr: 42f4a068
machine_apply_elf_rel: CALL26 5800042094000000->580004209400012f
sym: printf info: 12 other: 00 shndx: 1 value: 524 size: 80
sym: printf value: 42f4a524 addr: 42f4a070
machine_apply_elf_rel: CALL26 5800043694000000->580004369400012d
sym: printf info: 12 other: 00 shndx: 1 value: 524 size: 80
sym: printf value: 42f4a524 addr: 42f4a084
machine_apply_elf_rel: CALL26 f100827f94000000->f100827f94000128
sym: printf info: 12 other: 00 shndx: 1 value: 524 size: 80
sym: printf value: 42f4a524 addr: 42f4a0a0
machine_apply_elf_rel: CALL26 5800032094000000->5800032094000121
sym: printf info: 12 other: 00 shndx: 1 value: 524 size: 80
sym: printf value: 42f4a524 addr: 42f4a0a8
machine_apply_elf_rel: CALL26 38736a8194000000->38736a819400011f
sym: printf info: 12 other: 00 shndx: 1 value: 524 size: 80
sym: printf value: 42f4a524 addr: 42f4a0b8
machine_apply_elf_rel: CALL26 f100827f94000000->f100827f9400011b
sym: printf info: 12 other: 00 shndx: 1 value: 524 s...

Read more...

Revision history for this message
Manoj Iyer (manjo) wrote :

$ dpkg -l | grep kexec-toolsii kexec-tools 1:2.0.10-2ubuntu1.2 arm64 tools to support fast kexec reboots

tags: added: verification-done-yakkety
removed: verification-needed-yakkety
Revision history for this message
Manoj Iyer (manjo) wrote :

$ uname -a
Linux myvm 4.8.0-54-generic #57-Ubuntu SMP Wed May 24 10:21:41 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.