[Yakkety SRU] Enable KEXEC support in ARM64 kernel

Bug #1662554 reported by Manoj Iyer on 2017-02-07
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
Manoj Iyer
Yakkety
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.

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) on 2017-02-07
summary: - [Yakkety] Enable KEXEC support in ARM64 kernel
+ [Yakkety SRU] Enable KEXEC support in ARM64 kernel
Manoj Iyer (manjo) on 2017-02-07
description: updated
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
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
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
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...

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
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  Edit
Everyone can see this information.

Other bug subscribers