Maverick on Hyper-V - fixes for instability

Mike Sterling Mike.Sterling at microsoft.com
Wed Apr 6 17:53:07 UTC 2011


If a user wants to run Linux in a Hyper-V virtual machine (Hyper-V is Microsoft's virtualization solution, included in Windows Server 2008 and higher), Microsoft provides a set of drivers that enable the use of the high-performance synthetic devices (the equivalent of Xen's PV drivers). Maverick includes some of our drivers by default - hv_vmbus, hv_netvsc, and hv_utils. However, that version of the kernel has an bug in the hv_netvsc driver (and the underlying hv_vmbus driver) that results in multiple issues - specifically, you'll see a number of errors in /var/log/messages referring to schedule while atomic. After a while, the synthetic networking device will end up losing its connection.



The issue's been fixed upstream as part of the cleanup we've been doing to exit staging, and we have created a patch set against Maverick that fixes it. The patch set consists of four patches:



1.       Ubuntu-10-10-network-atomic-fix: Change the allocation of memory for the hv_netvsc driver from GFP_KERNEL to GFP_ATOMIC.

2.       Ubuntu-10-10-network-stack-print-fix: A wrong check was done when freeing the network device, resulting in a stack trace output which seemed to erroneously indicate that there was a problem.

3.       Ubuntu-10-10-vmbus-atomic-fix: Change the allocation of memory for the hv_vmbus driver from GFP_KERNEL to GFP_ATOMIC.

4.       Ubuntu-10-10-backport-of-mainline-loss-of-network-fix-for-Hyper-V: Locking is required when tweaking bits located in a shared page, usethe sync_version of bitops. Without this change vmbus_on_event() will miss events and as a result, vmbus_isr() will not schedule the receive tasklet.



This does not hit Natty, as we've fixed the issue in later kernels. However, given the large install base of Maverick, we'd like to get this included so customers can use the synthetic devices.



Symptoms:



[  807.276091] BUG: scheduling while atomic: swapper/0/0x10000100

[  807.277476] Modules linked in: parport_pc ppdev binfmt_misc hv_utils(C) hv_netvsc(C) psmouse lp serio_raw hv_vmbus(C) i2c_piix4 parport floppy tulip

[  807.294414] Modules linked in: parport_pc ppdev binfmt_misc hv_utils(C) hv_netvsc(C) psmouse lp serio_raw hv_vmbus(C) i2c_piix4 parport floppy tulip

[  807.337981] Pid: 0, comm: swapper Tainted: G      D  C  2.6.35-22-generic #33-Ubuntu Virtual Machine/Virtual Machine

[  807.339352] EIP: 0060:[<c012c21a>] EFLAGS: 00000246 CPU: 0

[  807.340699] EIP is at native_safe_halt+0xa/0x10


This has also been logged on Launchpad at  https://bugs.launchpad.net/ubuntu/+source/linux-meta/+bug/752064


Please let me know if you have any questions on this.

Thanks,

-M

mike sterling | program manager
open source technology center
http://www.microsoft.com/opensource/

t: +1 425 707 7730
f:  +1 425 708 1799
e: mike.sterling at microsoft.com<mailto:mike.sterling at microsoft.com>
t:  http://twitter.com/mikester01

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20110406/214fa167/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 2-ubuntu-1010-network-stack-print-fix.patch
Type: application/octet-stream
Size: 915 bytes
Desc: 2-ubuntu-1010-network-stack-print-fix.patch
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20110406/214fa167/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3-ubuntu-10-10-vmbus-atomic-fix.patch
Type: application/octet-stream
Size: 802 bytes
Desc: 3-ubuntu-10-10-vmbus-atomic-fix.patch
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20110406/214fa167/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 1-ubuntu-10-10-network-atomic-fix.patch
Type: application/octet-stream
Size: 733 bytes
Desc: 1-ubuntu-10-10-network-atomic-fix.patch
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20110406/214fa167/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 4-ubuntu-10-10-backport-of-mainline-loss-of-network-fix-for-Hyper-V.patch
Type: application/octet-stream
Size: 4709 bytes
Desc: 4-ubuntu-10-10-backport-of-mainline-loss-of-network-fix-for-Hyper-V.patch
URL: <https://lists.ubuntu.com/archives/kernel-team/attachments/20110406/214fa167/attachment-0003.obj>


More information about the kernel-team mailing list