Maverick on Hyper-V - fixes for instability
Tim Gardner
tim.gardner at canonical.com
Thu Apr 7 13:20:44 UTC 2011
On 04/06/2011 11:53 AM, Mike Sterling wrote:
> 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
>
>
>
Mike - these patches look fine to me. I've package them as a pull request.
Brad/Steve - please review.
---
The following changes since commit 5ef5b0c54fdaf6c915a6585485fefb2e85462df9:
Manoj Iyer (1):
UBUNTU: SAUCE: (drop after 2.6.38) add support for Lenovo
tablet ID (0xE6)
are available in the git repository at:
git://kernel.ubuntu.com/rtg/ubuntu-maverick.git ms-lp752064
Haiyang Zhang (1):
staging: hv: Fix the WARN_ON condition in free_net_device()
Tim Gardner (2):
UBUNTU: SAUCE: staging: hv: Fixed issue with scheduling while
atomic in hv_vmbus
UBUNTU: SAUCE: Backport of mainline loss of network fix for Hyper-V
Timo Teräs (1):
staging: hv: fix netvsc sleeping while atomic
drivers/staging/hv/channel.c | 8 ++++----
drivers/staging/hv/connection.c | 4 ++--
drivers/staging/hv/netvsc.c | 4 ++--
drivers/staging/hv/osd.c | 2 +-
drivers/staging/hv/vmbus.c | 2 +-
drivers/staging/hv/vmbus_private.h | 2 +-
6 files changed, 11 insertions(+), 11 deletions(-)
--
Tim Gardner tim.gardner at canonical.com
More information about the kernel-team
mailing list