[Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10, 15.04, and 15.10

Bug #1400319 reported by Chris Valean
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
High
Joseph Salisbury
Xenial
Fix Released
High
Joseph Salisbury
Yakkety
Fix Released
High
Joseph Salisbury

Bug Description

While testing the final build of 14.10 32bit we found that kernel panic cannot be activated for an installation on a Hyper-V VM.

Repro rate: 100%
Repro details:
Hyper-V: Server 2012 R2
VM: Ubuntu 14.10 32bit

Kdump is enabled in the config file at /etc/default/kdump-tools

Different crashkernel values used in grub.cfg – 128M-:64M | 256M-:128m | 384M-:256M

VM settings: 2 cores, various RAM sizes attempted: 1, 2 or 4 GB – this in combination with the values for crashkernel.

Trying to start the kdump service:
root@ubuntu1410i386:~# /etc/init.d/kdump-tools start
Starting kdump-tools: Could not find a free area of memory of 0x9f000 bytes...
locate_hole failed
* failed to load kdump kernel
---

root@ubuntu1410i386:~# cat /sys/kernel/kexec_crash_loaded
0

If the conversion from hex to dec is right, the mentioned memory mapping of 0x9f000 bytes is equal to 651264 (bytes), so under 1MB. This is not then related to the RAM allocation nor the crashkernel value used.
---
AlsaDevices: Error: command ['ls', '-l', '/dev/snd/'] failed with exit code 2: ls: cannot access /dev/snd/: No such file or directory
AplayDevices: Error: [Errno 2] No such file or directory
ApportVersion: 2.14.7-0ubuntu8
Architecture: i386
ArecordDevices: Error: [Errno 2] No such file or directory
CRDA: Error: [Errno 2] No such file or directory
DistroRelease: Ubuntu 14.10
HibernationDevice: RESUME=UUID=5a5d0aa4-b8ee-4bf7-b1b9-761b7d1550b6
InstallationDate: Installed on 2014-10-31 (37 days ago)
InstallationMedia: Ubuntu-Server 14.10 "Utopic Unicorn" - Release i386 (20141022.2)
IwConfig:
 lo no wireless extensions.

 eth0 no wireless extensions.
Lsusb: Error: command ['lsusb'] failed with exit code 1: unable to initialize libusb: -99
MachineType: Microsoft Corporation Virtual Machine
Package: linux (not installed)
PciMultimedia:

ProcEnviron:
 TERM=xterm
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcFB: 0 hyperv_fb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.16.0-24-generic root=UUID=83fb481a-8898-4adc-bf31-4e160f5f0ce8 ro crashkernel=128M-:64M
ProcVersionSignature: Ubuntu 3.16.0-24.32-generic 3.16.4
RelatedPackageVersions:
 linux-restricted-modules-3.16.0-24-generic N/A
 linux-backports-modules-3.16.0-24-generic N/A
 linux-firmware 1.138
RfKill: Error: [Errno 2] No such file or directory
Tags: utopic
Uname: Linux 3.16.0-24-generic i686
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

WifiSyslog:
 Dec 8 08:16:46 ubuntu1410i386 dhclient: DHCPREQUEST of 10.226.59.102 on eth0 to 10.184.232.100 port 67 (xid=0x4b67ffa3)
 Dec 8 08:16:46 ubuntu1410i386 dhclient: DHCPACK of 10.226.59.102 from 10.184.232.100
 Dec 8 08:16:47 ubuntu1410i386 dhclient: bound to 10.226.59.102 -- renewal in 13914 seconds.
 Dec 8 10:10:47 ubuntu1410i386 kernel: [1840786.031060] init: tty1 main process ended, respawning
_MarkForUpload: True
dmi.bios.date: 05/23/2012
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 090006
dmi.board.name: Virtual Machine
dmi.board.vendor: Microsoft Corporation
dmi.board.version: 7.0
dmi.chassis.asset.tag: 7176-0455-3377-8479-3268-6677-66
dmi.chassis.type: 3
dmi.chassis.vendor: Microsoft Corporation
dmi.chassis.version: 7.0
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr090006:bd05/23/2012:svnMicrosoftCorporation:pnVirtualMachine:pvr7.0:rvnMicrosoftCorporation:rnVirtualMachine:rvr7.0:cvnMicrosoftCorporation:ct3:cvr7.0:
dmi.product.name: Virtual Machine
dmi.product.version: 7.0
dmi.sys.vendor: Microsoft Corporation

CVE References

Revision history for this message
Brad Figg (brad-figg) wrote : Missing required logs.

This bug is missing log files that will aid in diagnosing the problem. From a terminal window please run:

apport-collect 1400319

and then change the status of the bug to 'Confirmed'.

If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu):
status: New → Incomplete
Revision history for this message
Chris Valean (cvalean) wrote : AudioDevicesInUse.txt

apport information

tags: added: apport-collected utopic
description: updated
Revision history for this message
Chris Valean (cvalean) wrote : BootDmesg.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : CurrentDmesg.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : Lspci.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : ProcCpuinfo.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : ProcInterrupts.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : ProcModules.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : UdevDb.txt

apport information

Revision history for this message
Chris Valean (cvalean) wrote : UdevLog.txt

apport information

Changed in linux (Ubuntu):
status: Incomplete → New
Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
Changed in linux (Ubuntu):
importance: Undecided → High
tags: added: kernel-da-key
Revision history for this message
Gergo Debreczeni (gdebreczeni) wrote : Re: [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10

Checked on 14.04.1 LTS 32bit version and this problem doesn't seem to be present.

Details:
Hyper-V: Server 2012 R2
VM settings: 2 cores, 2GB RAM

ubuntu@ubuntu:~$ uname -a
Linux ubuntu 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:31:42 UTC 2014 i686 athlon i686 GNU/Linux
ubuntu@ubuntu:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

Kdump is enabled in the config file at /etc/default/kdump-tools

ubuntu@ubuntu:~$ grep 'USE_KDUMP' /etc/default/kdump-tools
# USE_KDUMP - controls kdump will be configured
USE_KDUMP=1

crashkernel value in grub.cfg
 crashkernel=384M-:128M

ubuntu@ubuntu:~$ sudo /etc/init.d/kdump-tools start
Starting kdump-tools: * loaded kdump kernel

ubuntu@ubuntu:~$ cat /sys/kernel/kexec_crash_loaded
1

tags: added: kernel-hyper-v
Revision history for this message
Mark W Wenning (mwenning) wrote :

Verified this also fails in Vivid.

Revision history for this message
Mark W Wenning (mwenning) wrote :

More verifications:

Works in Trusty 14.04.2 i386 server
FAILS Utopic 14.10 i386 server
FAILS Vivid 15.04 (development)

Joshua R. Poulson (jrp)
summary: - [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10
+ [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10 and 15.04
Revision history for this message
Joseph Salisbury (jsalisbury) wrote : Re: [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10 and 15.04

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v4.1 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

If you are unable to test the mainline kernel, for example it will not boot, please add the tag: 'kernel-unable-to-test-upstream'.
Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1-rc5-unstable/

tags: added: performing-bisect
Changed in linux (Ubuntu Utopic):
status: New → Confirmed
Changed in linux (Ubuntu Vivid):
status: New → Confirmed
Changed in linux (Ubuntu Utopic):
importance: Undecided → High
Changed in linux (Ubuntu Vivid):
importance: Undecided → High
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Another good test would be to see if the bug exists while booting the 3.13.0-24-generic or other Trusty kernel on a Utopic or Vivid install. This will tell us if the bug is in the kernel or kexec-tools package.

You could also test a Vivid or Utopic kernel on a Trusty installation.

tags: added: vivid
removed: performing-bisect
Revision history for this message
Chris Valean (cvalean) wrote :

Thanks for the suggestions Joseph!
I'll give these a try and update the thread in the next few hours.

Revision history for this message
Chris Valean (cvalean) wrote :

None of the 4.x builds are booting with 15.04 32bit.
Tested this with v4.0-vivid, v4.1-rc5-unstable and and rc2, all not able to find/use sda.

Unfortunately I cannot reach any of the v3.13.xxx-trusty branches in the kernel-ppa tree, all return a connection time-out.

tags: added: kernel-unable-to-test-upstream
Changed in kexec-tools (Ubuntu):
status: New → Confirmed
Changed in kexec-tools (Ubuntu Vivid):
status: New → Confirmed
Changed in kexec-tools (Ubuntu Utopic):
status: New → Confirmed
Revision history for this message
Chris Valean (cvalean) wrote :

The unavailable links was temporary, and I was able to do this now:

Base OS VM:
DISTRIB_RELEASE=15.04
DISTRIB_CODENAME=vivid
Arch: i386

Successfully installed kernel v. 3.13.11-031311-generic #201404222035 - trusty kernel on top of vivid.

The error remains:

root@ubuntu:~# sudo kdump-config load
Could not find a free area of memory of 0x9f000 bytes...
locate_hole failed
 * failed to load kdump kernel

tags: added: kernel-key
removed: kernel-da-key
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Thanks for all the testing. It seems the bug may be in the kexec-tools package and not the kernel. Can you test the kexec-tools package that comes with 14.04.1 on your vivid installation? It can be downloaded from:

https://launchpad.net/ubuntu/+archive/primary/+files/kexec-tools_2.0.6-0ubuntu2.1_amd64.deb

You will probably need to remove the current version with 'sudo dpkg --purge kexec-tools'

Revision history for this message
Chris Valean (cvalean) wrote :

We might have some progress here.

After installing kexec-tools_2.0.6-0ubuntu2.1_i386.deb kdump is now loading and the initial reported problem that it was not even able to see the crash memory location is not showing up.

The remaining problem is that the kernel panic is not completing, the VM remaining stuck when the kernel panic is triggered which is a kernel situation. The problem is the same as in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1440103

Going to the initial thread, will you be able to see the changes for kexec that might be causing kdump to not load in the first place?

root@ubuntu:~# sudo kdump-config load
 * loaded kdump kernel

root@ubuntu:~# cat /sys/kernel/kexec_crash_loaded
1

root@ubuntu:~# dpkg -l | grep kexec
ii kexec-tools 1:2.0.6-0ubuntu2.1 i386 tools to support fast kexec reboots

root@ubuntu:~# dpkg -l | grep kdump
ii kdump-tools 1:1.5.7-5 all scripts and tools for automating kdump (Linux crash dumps)

root@ubuntu:~# uname -a
Linux ubuntu 3.19.0-18-generic #18-Ubuntu SMP Tue May 19 18:30:59 UTC 2015 i686 i686 i686 GNU/Linux

Changed in kexec-tools (Ubuntu Utopic):
importance: Undecided → High
Changed in kexec-tools (Ubuntu):
importance: Undecided → High
Changed in kexec-tools (Ubuntu Vivid):
importance: Undecided → High
tags: added: kernel-da-key
removed: kernel-key
tags: added: kernel-key
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

bug 1463584 may contain the fix for this. Are you only seeing an issue with the 32 bit kernel?

Revision history for this message
Chris Valean (cvalean) wrote :

Hi Joseph,
I don't think these 2 are related, the patches from bug 1463584 represent a new feature support, so these 2 reports are not related

tags: removed: kernel-key
tags: added: kernel-key
tags: removed: kernel-key
Revision history for this message
Joshua R. Poulson (jrp) wrote :

This issue is also distinct to the one experience in bug 1440103

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Are you only seeing an issue with the 32bit kernel or does 64bit also exhibit the bug?

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Just to summarized the testing done so far:

- The 3.13{Trusty) kernel on a Vivid install and still exhibits the bug.
- The kexec-tools_2.0.6-0ubuntu2.1_i386(Which ships with Trusty) was installed on an Vivid install and seems to resolve the bug, but we then hit bug 1440103

Can you one run additional test to confirm this bug is in the kexec-tools package? Can you install a Vivid kernel on a Trusty install? If the bug is in the kexec-tools package, then kdump should still work.

Revision history for this message
Chris Valean (cvalean) wrote :

The kernel swap between editions has been already tested in comment #19.

We'll wait for the full list of patches to get in upstream, then we can revise from #19 onward.

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Thanks for the update, Chris.

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Hi Chris,

Do you have a list of the patches you mention in comment #27? I'd like to check the status upstream.

Revision history for this message
Chris Valean (cvalean) wrote :

The full list of patches for the kdump issue has been sent in bug #1440103.
Can you build a 32bit kernel with the 5 patches to see if this resolves the kdump on 32bit problem?

Revision history for this message
Chris Valean (cvalean) wrote :

Hi Joe,
Can you please let us know when the test kernel is ready so that we can give it a try.
Thank you!

Changed in linux (Ubuntu Utopic):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu Vivid):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu Utopic):
status: Confirmed → In Progress
Changed in linux (Ubuntu Vivid):
status: Confirmed → In Progress
Changed in linux (Ubuntu Utopic):
status: In Progress → Invalid
assignee: Joseph Salisbury (jsalisbury) → nobody
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

I built a 32 bit Vivid test kernel with the patches listed in bug 1440103. The test kernel can be downloaded from:

http://kernel.ubuntu.com/~jsalisbury/lp1400319/

Note, you would need to install both the linux-image and linux-image-extra .deb packages.

Thanks!

Revision history for this message
Adrian Suhov (asuhov) wrote :

I tested the kernel from http://kernel.ubuntu.com/~jsalisbury/lp1400319/ on Ubuntu 15.04 32bit and the problem still exists.
After installing the test kernel, kdump is running but doesn't update kexec:

root@ubuntu:~# /etc/init.d/kdump-tools status
● kdump-tools.service - Kernel crash dump capture service
   Loaded: loaded (/lib/systemd/system/kdump-tools.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2015-10-22 18:14:12 EEST; 11s ago
  Process: 673 ExecStart=/etc/init.d/kdump-tools start (code=exited, status=0/SUCCESS)
 Main PID: 673 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/kdump-tools.service

Oct 22 18:14:11 ubuntu systemd[1]: Starting Kernel crash dump capture service...
Oct 22 18:14:12 ubuntu kdump-tools[673]: Starting kdump-tools: Could not find a free area of memory of 0x9f00...es...
Oct 22 18:14:12 ubuntu kdump-tools[673]: locate_hole failed
Oct 22 18:14:12 ubuntu kdump-tools[673]: * failed to load kdump kernel
Oct 22 18:14:12 ubuntu systemd[1]: Started Kernel crash dump capture service.

root@ubuntu:~# cat /sys/kernel/kexec_crash_loaded
0

As suggested in comment #20, I installed kexec-tools from https://launchpad.net/ubuntu/+archive/primary/+files/kexec-tools_2.0.6-0ubuntu2.1_amd64.deb and kexec was updated.

root@ubuntu:~# /etc/init.d/kdump-tools status
● kdump-tools.service - Kernel crash dump capture service
   Loaded: loaded (/lib/systemd/system/kdump-tools.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2015-10-22 18:24:47 EEST; 29s ago
  Process: 678 ExecStart=/etc/init.d/kdump-tools start (code=exited, status=0/SUCCESS)
 Main PID: 678 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/kdump-tools.service

Oct 22 18:24:46 ubuntu systemd[1]: Starting Kernel crash dump capture service...
Oct 22 18:24:47 ubuntu kdump-tools[678]: Starting kdump-tools: * loaded kdump kernel
Oct 22 18:24:47 ubuntu systemd[1]: Started Kernel crash dump capture service.

root@ubuntu:~# cat /sys/kernel/kexec_crash_loaded
1

After that, I triggered a kernel panic (log attached) but kdump didn't work, so it seems to me a kdump-tools problem.

Chris Valean (cvalean)
Changed in linux (Ubuntu Vivid):
status: In Progress → Confirmed
Changed in kexec-tools (Ubuntu Utopic):
status: Confirmed → Invalid
no longer affects: linux (Ubuntu Utopic)
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

There is now a fix for bug 1440103. Can you test the kernel from that bug and see if it also fixes this bug? It can be downloaded from:

http://kernel.ubuntu.com/~jsalisbury/lp1440103/vivid/32bit/

Revision history for this message
Ovidiu Rusu (orusu) wrote :

I've tested the new kernel and the same problems perpetuates no matter of the VM's RAM or crashkernel size.

Trying to start the kdump service:
root@ubuntu:~# /etc/init.d/kdump-tools start
Starting kdump-tools: Could not find a free area of memory of 0x9f000 bytes...
locate_hole failed
* failed to load kdump kernel
---

root@ubuntu:~# cat /sys/kernel/kexec_crash_loaded
0

Revision history for this message
Chris Valean (cvalean) wrote :

To summarize all previous activity on this bug for easier tracking, I've re-done now a check on this bug and here are the details:

Hyper-V: Server 2012 R2
VM: Ubuntu 15.04
Kernel: 3.19.0-15
Default crashkernel value: 384M-:128M
Also verified with crashkernel=384M@384M

Status: kdump-tools is marked as active but displays "Could not find a free area of memory of 0x9f000 bytes..."
/sys/kernel/kexec_crash_loaded is 0
/sys/kernel/kexec_crash_size shows the correct assigned crashkernel value from grub.
Trigerring a kernel panic doesn't do anything given these details.

On 15.04 the latest kexec-tools package version is 2.0.7-5ubuntu2
What I've done was to take the version present in Wily - kexec-tools_2.0.9-1ubuntu1_i386 and installed it on 15.04.

kdump-tools is loading now without the error above, and also kexec_crash_loaded is at 1 now.
Trigerring the panic now, the VM will not reboot nor write the vmcore dump file.

I'm checking now to see that for the problem where the VM doesn't reboot on panic if that is not due to some missing vmbus kdump patches that have been implemented before.
But at least for the error of "Could not find a free area of memory of 0x9f000 bytes...", that seems to be due to the kexec-tools.
Joe can you please have a look at that or assign it to the right contact that is handling that part for some analysis?

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

15.04 was EOL in February[0]. Is this still happening with an up to date Wily release, or 14.04.3 environment?

[0] https://wiki.ubuntu.com/Releases

Revision history for this message
Ovidiu Rusu (orusu) wrote :

Everything is working as expected on Ubuntu 14.04.4.
/sys/kernel/kexec_crash_loaded is 1; memory is assigned; vmcore dump file is written

Hyper-V: Server 2012 R2
VM: Ubuntu 14.04.4
Kernel: 4.2.0-21-generic
crashkernel value: 384M

I've also tested Ubuntu 15.10 but the VM does not reboot after I trigger the panic. I've tried with kdump-tools, kexec-tools Trusty packages too, but no difference.

Hyper-V: Server 2012 R2
VM: Ubuntu 15.10
Kernel: 4.2.0-30-generic
crashkernel value: 384M-:384M
Also verified with crashkernel=384M-:128M

On both VMs kdump-tools starts ok, without the initial error.

Changed in linux (Ubuntu Wily):
status: New → Confirmed
importance: Undecided → High
Changed in kexec-tools (Ubuntu Wily):
status: New → Confirmed
importance: Undecided → High
no longer affects: kexec-tools (Ubuntu Utopic)
no longer affects: kexec-tools (Ubuntu Vivid)
Changed in linux (Ubuntu Wily):
assignee: nobody → Joseph Salisbury (jsalisbury)
no longer affects: linux (Ubuntu Vivid)
Joshua R. Poulson (jrp)
summary: - [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10 and 15.04
+ [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10, 15.04, and
+ 15.10
Revision history for this message
Joshua R. Poulson (jrp) wrote :

Microsoft will attempt recreation on the Xenial kernel and report.

Revision history for this message
Joshua R. Poulson (jrp) wrote :

32-bit is failing on Xenial triggered via NMI or with 2 or more cores.

Revision history for this message
Chris Valean (cvalean) wrote :

kdump crash feature on 32bit Xenial GA (kernel 4.4.0-21) does work most of the times.
The issue here can be related to the CPU handling the crash, for which there is a set of patches.
These would also cover the kdump triggered through NMI scenario.

Revision history for this message
Joshua R. Poulson (jrp) wrote :

Josh to collect the upstream NMI submissions and put them in a comment here.

Revision history for this message
Joshua R. Poulson (jrp) wrote :

A number of kdump patches were included in https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1588965 so this needs retesting.

Revision history for this message
Joshua R. Poulson (jrp) wrote :
Download full text (3.4 KiB)

A consideration:

From: Vitaly Kuznetsov <email address hidden>

When we crash from NMI context (e.g. after NMI injection from host when
'sysctl -w kernel.unknown_nmi_panic=1' is set) we hit

    kernel BUG at mm/vmalloc.c:1530!

as vfree() is denied. While the issue could be solved with in_nmi() check
instead I opted for skipping vfree on all sorts of crashes to reduce the
amount of work which can cause consequent crashes. We don't really need to
free anything on crash.

Signed-off-by: Vitaly Kuznetsov <email address hidden>
Signed-off-by: K. Y. Srinivasan <email address hidden>
---
 drivers/hv/hv.c | 8 +++++---
 drivers/hv/hyperv_vmbus.h | 2 +-
 drivers/hv/vmbus_drv.c | 8 ++++----
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index a1c086b..60dbd6c 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -278,7 +278,7 @@ cleanup:
  *
  * This routine is called normally during driver unloading or exiting.
  */
-void hv_cleanup(void)
+void hv_cleanup(bool crash)
 {
        union hv_x64_msr_hypercall_contents hypercall_msr;

@@ -288,7 +288,8 @@ void hv_cleanup(void)
        if (hv_context.hypercall_page) {
                hypercall_msr.as_uint64 = 0;
                wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
- vfree(hv_context.hypercall_page);
+ if (!crash)
+ vfree(hv_context.hypercall_page);
                hv_context.hypercall_page = NULL;
        }

@@ -308,7 +309,8 @@ void hv_cleanup(void)

                hypercall_msr.as_uint64 = 0;
                wrmsrl(HV_X64_MSR_REFERENCE_TSC, hypercall_msr.as_uint64);
- vfree(hv_context.tsc_page);
+ if (!crash)
+ vfree(hv_context.tsc_page);
                hv_context.tsc_page = NULL;
        }
 #endif
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
index 718b5c7..dfa9fac 100644
--- a/drivers/hv/hyperv_vmbus.h
+++ b/drivers/hv/hyperv_vmbus.h
@@ -495,7 +495,7 @@ struct hv_ring_buffer_debug_info {

 extern int hv_init(void);

-extern void hv_cleanup(void);
+extern void hv_cleanup(bool crash);

 extern int hv_post_message(union hv_connection_id connection_id,
                         enum hv_message_type message_type,
diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
index 952f20f..d11690e 100644
--- a/drivers/hv/vmbus_drv.c
+++ b/drivers/hv/vmbus_drv.c
@@ -871,7 +871,7 @@ err_alloc:
        bus_unregister(&hv_bus);

 err_cleanup:
- hv_cleanup();
+ hv_cleanup(false);

        return ret;
 }
@@ -1323,7 +1323,7 @@ static void hv_kexec_handler(void)
        vmbus_initiate_unload(false);
        for_each_online_cpu(cpu)
                smp_call_function_single(cpu, hv_synic_cleanup, NULL, 1);
- hv_cleanup();
+ hv_cleanup(false);
 };

 static void hv_crash_handler(struct pt_regs *regs)
@@ -1335,7 +1335,7 @@ static void hv_crash_handler(struct pt_regs *regs)
         * for kdump.
         */
        hv_synic_cleanup(NULL);
- hv_cleanup();
+ hv_cleanup(true);
 };

 static int __init hv_acpi_init(void)
@@ -1395,7 +1395,7 @@ static void __exit vmbus_exit(void)
           ...

Read more...

Brad Figg (brad-figg)
no longer affects: linux (Ubuntu Wily)
no longer affects: kexec-tools (Ubuntu Wily)
Changed in linux (Ubuntu):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in kexec-tools (Ubuntu):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu):
status: Confirmed → In Progress
Changed in kexec-tools (Ubuntu):
assignee: Joseph Salisbury (jsalisbury) → nobody
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

I built a test kernel with the following commit, that is now in v4.9-rc1:
a9f61ca Drivers: hv: avoid vfree() on crash

Can you test this kernel and see if it resolves this bug? It can be downloaded from:
http://kernel.ubuntu.com/~jsalisbury/lp1400319/yakkety/

Revision history for this message
Ovidiu Rusu (orusu) wrote :

Hi Josh,

We missed your reply and now the folder is empty. Can you upload again the test kernel so we can test it?

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Sorry, the test kernel was up one directory. The kernel is now available in:
http://kernel.ubuntu.com/~jsalisbury/lp1400319/yakkety/

Revision history for this message
Chris Valean (cvalean) wrote :

Hi Joe,

We did look at http://kernel.ubuntu.com/~jsalisbury/lp1400319/ however that folder has the 32bit kernel and binaries.
As this bug is in regards to the 32bit architecture, we would need the i386 kernel actually.
Thank you!

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Hi Chris,

Sorry about that. There is an i386 kernel there now:

http://kernel.ubuntu.com/~jsalisbury/lp1400319/yakkety/

Revision history for this message
Ovidiu Rusu (orusu) wrote :

I've tested the kernel on Ubuntu 16.04 32 bit and everything works fine, even with kdump through NMI.

Note: Kdump through NMI on Ubuntu 16.04 32 bit with kernel 4.4.0-21-generic is not working. I've also tested Ubuntu 15.04 but this version is End of life.

Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

Thanks for the update, Oviddiu. I'll build a 16.04 test kernel with that commit as well. I'll post it shortly.

Changed in linux (Ubuntu Xenial):
status: New → In Progress
Changed in linux (Ubuntu Yakkety):
status: New → In Progress
Changed in linux (Ubuntu Xenial):
importance: Undecided → High
Changed in linux (Ubuntu Yakkety):
importance: Undecided → High
Changed in linux (Ubuntu Xenial):
assignee: nobody → Joseph Salisbury (jsalisbury)
Changed in linux (Ubuntu Yakkety):
assignee: nobody → Joseph Salisbury (jsalisbury)
Revision history for this message
Joseph Salisbury (jsalisbury) wrote :

I also built a xenial test kernel with the patch. It can be downloaded from:
 http://kernel.ubuntu.com/~jsalisbury/lp1400319/xenial

Can you see if this kernel also resolves the bug on 16.04? If it does, I'll SRU the path to both Xenial and Yakkety.

no longer affects: kexec-tools (Ubuntu)
no longer affects: kexec-tools (Ubuntu Xenial)
no longer affects: kexec-tools (Ubuntu Yakkety)
Luis Henriques (henrix)
Changed in linux (Ubuntu Xenial):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Yakkety):
status: In Progress → Fix Committed
Revision history for this message
Luis Henriques (henrix) 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-xenial' to 'verification-done-xenial'. If the problem still exists, change the tag 'verification-needed-xenial' to 'verification-failed-xenial'.

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-xenial
Revision history for this message
Luis Henriques (henrix) 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
Chris Valean (cvalean) wrote :

We verified the following proposed kernels:
Xenial: 4.4.0.58.61 and 4.4.0.58.79
Yakkety: 4.8.0.34.43

Standard kdump and kdump through NMI work now as expected, single core and SMP configurations.

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

This bug was fixed in the package linux - 4.4.0-59.80

---------------
linux (4.4.0-59.80) xenial; urgency=low

  [ John Donnelly ]

  * Release Tracking Bug
    - LP: #1654282

  * [2.1.1] MAAS has nvme0n1 set as boot disk, curtin fails (LP: #1651602)
    - (fix) nvme: only require 1 interrupt vector, not 2+

linux (4.4.0-58.79) xenial; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1651402

  * Support ACPI probe for IIO sensor drivers from ST Micro (LP: #1650123)
    - SAUCE: iio: st_sensors: match sensors using ACPI handle
    - SAUCE: iio: st_accel: Support sensor i2c probe using acpi
    - SAUCE: iio: st_pressure: Support i2c probe using acpi
    - [Config] CONFIG_HTS221=m, CONFIG_HTS221_I2C=m, CONFIG_HTS221_SPI=m

  * Fix channel data parsing in ST Micro sensor IIO drivers (LP: #1650189)
    - SAUCE: iio: common: st_sensors: fix channel data parsing

  * ST Micro lng2dm 3-axis "femto" accelerometer support (LP: #1650112)
    - SAUCE: iio: st-accel: add support for lis2dh12
    - SAUCE: iio: st_sensors: support active-low interrupts
    - SAUCE: iio: accel: Add support for the h3lis331dl accelerometer
    - SAUCE: iio: st_sensors: verify interrupt event to status
    - SAUCE: iio: st_sensors: support open drain mode
    - SAUCE: iio:st_sensors: fix power regulator usage
    - SAUCE: iio: st_sensors: switch to a threaded interrupt
    - SAUCE: iio: accel: st_accel: Add lis3l02dq support
    - SAUCE: iio: st_sensors: fix scale configuration for h3lis331dl
    - SAUCE: iio: accel: st_accel: add support to lng2dm
    - SAUCE: iio: accel: st_accel: inline per-sensor data
    - SAUCE: Documentation: dt: iio: accel: add lng2dm sensor device binding

  * ST Micro hts221 relative humidity sensor support (LP: #1650116)
    - SAUCE: iio: humidity: add support to hts221 rh/temp combo device
    - SAUCE: Documentation: dt: iio: humidity: add hts221 sensor device binding
    - SAUCE: iio: humidity: remove
    - SAUCE: iio: humidity: Support acpi probe for hts211

  * crypto : tolerate new crypto hardware for z Systems (LP: #1644557)
    - s390/zcrypt: Introduce CEX6 toleration

  * Acer, Inc ID 5986:055a is useless after 14.04.2 installed. (LP: #1433906)
    - uvcvideo: uvc_scan_fallback() for webcams with broken chain

  * vmxnet3 driver could causes kernel panic with v4.4 if LRO enabled.
    (LP: #1650635)
    - vmxnet3: segCnt can be 1 for LRO packets

  * system freeze when swapping to encrypted swap partition (LP: #1647400)
    - mm, oom: rework oom detection
    - mm: throttle on IO only when there are too many dirty and writeback pages

  * Kernel Fixes to get TCMU File Backed Optical to work (LP: #1646204)
    - target/user: Use sense_reason_t in tcmu_queue_cmd_ring
    - target/user: Return an error if cmd data size is too large
    - target/user: Fix comments to not refer to data ring
    - SAUCE: (no-up) target/user: Fix use-after-free of tcmu_cmds if they are
      expired

  * CVE-2016-9756
    - KVM: x86: drop error recovery in em_jmp_far and em_ret_far

  * Dell Precision 5520 & 3520 freezes at login screent (LP: #1650054)
    - ACPI / blacklist: add _REV quirks for Dell Precision 5520 and 3520

  * CVE-2016-979...

Read more...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.2 KiB)

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

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

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1651800

  * Miscellaneous Ubuntu changes
    - SAUCE: Do not build the xr-usb-serial driver for s390

linux (4.8.0-33.35) yakkety; urgency=low

  [ Thadeu Lima de Souza Cascardo ]

  * Release Tracking Bug
    - LP: #1651721

  [ Luis Henriques ]

  * crypto : tolerate new crypto hardware for z Systems (LP: #1644557)
    - s390/zcrypt: Introduce CEX6 toleration

  * Several new Asus laptops are missing touchpad support (LP: #1650895)
    - HID: asus: Add i2c touchpad support

  * Acer, Inc ID 5986:055a is useless after 14.04.2 installed. (LP: #1433906)
    - uvcvideo: uvc_scan_fallback() for webcams with broken chain

  * cdc_ether fills kernel log (LP: #1626371)
    - cdc_ether: Fix handling connection notification

  * Kernel Fixes to get TCMU File Backed Optical to work (LP: #1646204)
    - SAUCE: target/user: Fix use-after-free of tcmu_cmds if they are expired

  * CVE-2016-9756
    - KVM: x86: drop error recovery in em_jmp_far and em_ret_far

  * On boot excessive number of kworker threads are running (LP: #1649905)
    - slub: move synchronize_sched out of slab_mutex on shrink

  * Ethernet not work after upgrade from kernel 3.19 to 4.4 [10ec:8168]
    (LP: #1648279)
    - ACPI / blacklist: Make Dell Latitude 3350 ethernet work

  * Ubuntu 16.10 netboot install fails with "Oops: Exception in kernel mode,
    sig: 5 [#1] " (lpfc) (LP: #1648873)
    - scsi: lpfc: fix oops/BUG in lpfc_sli_ringtxcmpl_put()

  * CVE-2016-9793
    - net: avoid signed overflows for SO_{SND|RCV}BUFFORCE

  * [Hyper-V] Kernel panic not functional on 32bit Ubuntu 14.10, 15.04, and
    15.10 (LP: #1400319)
    - Drivers: hv: avoid vfree() on crash

  * d-i is missing usb support for platforms that use the xhci-platform driver
    (LP: #1625222)
    - d-i initrd needs additional usb modules to support the merlin platform

  * overlayfs no longer supports nested overlayfs mounts, but there is a fix
    upstream (LP: #1647007)
    - ovl: fix d_real() for stacked fs

  * Yakkety: arm64: CONFIG_ARM64_ERRATUM_845719 isn't enabled (LP: #1647793)
    - [Config] CONFIG_ARM64_ERRATUM_845719=y

  * Ubuntu16.10 - EEH on BELL3 adapter fails to recover (serial/tty)
    (LP: #1646857)
    - serial: 8250_pci: Detach low-level driver during PCI error recovery

  * Driver for Exar USB UART (LP: #1645591)
    - SAUCE: xr-usb-serial: Driver for Exar USB serial ports
    - SAUCE: xr-usb-serial: interface for switching modes
    - SAUCE: cdc-acm: Exclude Exar USB serial ports

  * [Bug] (Purley) x86/hpet: Reduce HPET counter read contention (LP: #1645928)
    - x86/hpet: Reduce HPET counter read contention

  * Need Alps upstream their new touchpad driver (LP: #1571530)
    - Input: ALPS - add touchstick support for SS5 hardware
    - Input: ALPS - handle 0-pressure 1F events
    - Input: ALPS - allow touchsticks to report pressure
    - Input: ALPS - set DualPoint flag for 74 03 28 devices

  * CONFIG_NR_CPUS=256 is too low (LP: #1579205)
    - [Config] Increase the NR_CPUS to 512 for amd64 to support systems with a...

Read more...

Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
status: Fix Committed → Fix Released
Chris Valean (cvalean)
Changed in linux (Ubuntu):
status: In Progress → Fix Released
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.