From patchwork Thu Apr 7 13:20:44 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tim Gardner X-Patchwork-Id: 90181 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from chlorine.canonical.com (chlorine.canonical.com [91.189.94.204]) by ozlabs.org (Postfix) with ESMTP id 40075B6F44 for ; Thu, 7 Apr 2011 23:21:10 +1000 (EST) Received: from localhost ([127.0.0.1] helo=chlorine.canonical.com) by chlorine.canonical.com with esmtp (Exim 4.71) (envelope-from ) id 1Q7p8v-0005OY-L5; Thu, 07 Apr 2011 13:21:01 +0000 Received: from mail.tpi.com ([70.99.223.143]) by chlorine.canonical.com with esmtp (Exim 4.71) (envelope-from ) id 1Q7p8s-0005M1-Rp for kernel-team@lists.ubuntu.com; Thu, 07 Apr 2011 13:20:59 +0000 Received: from [10.0.2.5] (unknown [10.0.2.5]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mail.tpi.com (Postfix) with ESMTP id D280F2B3135; Thu, 7 Apr 2011 06:20:19 -0700 (PDT) Message-ID: <4D9DBA2C.2010904@canonical.com> Date: Thu, 07 Apr 2011 07:20:44 -0600 From: Tim Gardner User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Thunderbird/3.1.8 MIME-Version: 1.0 To: Mike Sterling , Brad Figg , Steve Conklin Subject: Re: Maverick on Hyper-V - fixes for instability References: In-Reply-To: Cc: "kernel-team@lists.ubuntu.com" , Hank Janssen X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.13 Precedence: list Reply-To: tim.gardner@canonical.com List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kernel-team-bounces@lists.ubuntu.com Errors-To: kernel-team-bounces@lists.ubuntu.com 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:[] 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@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. Acked-by: Brad Figg --- 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(-)