From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: Re: [PATCH v2] kvm tools: Support multiple net devices Date: Mon, 26 Sep 2011 19:37:22 +0300 Message-ID: <1317055042.4465.9.camel@lappy> References: <1316949085-22598-1-git-send-email-levinsasha928@gmail.com> <4E8068C7.7080009@gmail.com> <4E80A681.5030003@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Cc: Pekka Enberg , Asias He , kvm@vger.kernel.org, mingo@elte.hu, gorcunov@gmail.com To: Avi Kivity Return-path: Received: from mail-ey0-f174.google.com ([209.85.215.174]:53469 "EHLO mail-ey0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751857Ab1IZQiM (ORCPT ); Mon, 26 Sep 2011 12:38:12 -0400 Received: by eya28 with SMTP id 28so3758780eya.19 for ; Mon, 26 Sep 2011 09:38:11 -0700 (PDT) In-Reply-To: <4E80A681.5030003@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Mon, 2011-09-26 at 19:21 +0300, Avi Kivity wrote: > On 09/26/2011 05:54 PM, Pekka Enberg wrote: > > On Mon, 26 Sep 2011, Asias He wrote: > >> $ ./kvm run -n mode=tap > >> > >> > >> [ 1.490781] registered taskstats version 1 > >> [ 1.492781] BUG: unable to handle kernel NULL pointer dereference at > >> 0000001c > >> [ 1.493781] IP: [] virtnet_poll+0x16e/0x408 > >> [ 1.493781] *pde = 00000000 > >> [ 1.493781] Oops: 0000 [#1] PREEMPT SMP > >> [ 1.493781] Modules linked in: > >> [ 1.493781] > >> [ 1.493781] Pid: 1, comm: swapper Tainted: G W 3.1.0-rc3+ > >> #77 > >> [ 1.493781] EIP: 0060:[] EFLAGS: 00010286 CPU: 1 > >> [ 1.493781] EIP is at virtnet_poll+0x16e/0x408 > >> [ 1.493781] EAX: 00001000 EBX: db4bb0c0 ECX: db7cd778 EDX: 00001000 > >> [ 1.493781] ESI: 00000000 EDI: db7cd6c0 EBP: db487fa8 ESP: db487f64 > >> [ 1.493781] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 > >> [ 1.493781] Process swapper (pid: 1, ti=db486000 task=db450000 > >> task.ti=db458000) > >> [ 1.493781] Stack: > >> [ 1.493781] db487f98 19dfb000 db5e1400 00000080 c1b0df60 db6ff000 > >> 00000000 00000010 > >> [ 1.493781] 00000080 dbcebfe0 db5e1414 db5e1000 ffffffff fffec005 > >> db5e1414 db906dc0 > >> [ 1.493781] c1a39a0c db487fd4 c15e4869 fffb71f7 db906dc8 00000080 > >> 0000012c 00000000 > >> [ 1.493781] Call Trace: > >> [ 1.493781] [] net_rx_action+0x8e/0x177 > >> [ 1.493781] [] __do_softirq+0xa7/0x158 > >> [ 1.493781] [] ? __tasklet_hi_schedule_first+0x2b/0x2b > >> [ 1.493781] > >> [ 1.493781] [] ? _local_bh_enable_ip.isra.9+0x65/0x86 > >> [ 1.493781] [] ? local_bh_enable_ip+0x8/0xa > >> [ 1.493781] [] ? _raw_spin_unlock_bh+0x18/0x1a > >> [ 1.493781] [] ? dev_set_rx_mode+0x22/0x26 > >> [ 1.493781] [] ? __dev_open+0x96/0xa6 > >> [ 1.493781] [] ? __dev_change_flags+0x97/0x10e > >> [ 1.493781] [] ? dev_change_flags+0x13/0x3f > >> [ 1.493781] [] ? ip_auto_config+0x160/0xcf8 > >> [ 1.493781] [] ? extract_entropy+0x45/0x71 > >> [ 1.493781] [] ? get_parent_ip+0xb/0x31 > >> [ 1.493781] [] ? sub_preempt_count+0x7c/0x89 > >> [ 1.493781] [] ? _raw_spin_unlock+0x1c/0x27 > >> [ 1.493781] [] ? > >> tcp_set_default_congestion_control+0x8c/0x95 > >> [ 1.493781] [] ? do_one_initcall+0x71/0x114 > >> [ 1.493781] [] ? root_nfs_parse_addr+0x91/0x91 > >> [ 1.493781] [] ? kernel_init+0xab/0x11d > >> [ 1.493781] [] ? start_kernel+0x301/0x301 > >> [ 1.493781] [] ? kernel_thread_helper+0x6/0xd > >> [ 1.493781] Code: 89 d8 e8 23 94 0e 00 8b 4d dc 89 c7 f3 a4 8b 55 dc > >> 8b 4d d8 29 55 f0 8b 75 e0 01 d1 eb 13 8d 45 f0 89 f2 50 89 d8 e8 ae f2 > >> ff ff <8b> 76 1c 31 c9 58 83 7d f0 00 75 e7 85 f6 89 75 e0 0f 84 6e 02 > >> [ 1.493781] EIP: [] virtnet_poll+0x16e/0x408 SS:ESP > >> 0068:db487f64 > >> [ 1.493781] CR2: 000000000000001c > >> [ 1.549772] ---[ end trace 4eaa2a86a8e2da27 ]--- > >> [ 1.550772] Kernel panic - not syncing: Fatal exception in interrupt > >> [ 1.551772] Pid: 1, comm: swapper Tainted: G D W 3.1.0-rc3+ > >> #77 > >> [ 1.553771] Call Trace: > >> [ 1.553771] [] panic+0x58/0x156 > >> [ 1.554771] [] oops_end+0x8c/0x9b > >> [ 1.555771] [] no_context+0x116/0x120 > >> [ 1.555771] [] __bad_area_nosemaphore+0xf0/0xf8 > >> [ 1.557771] [] bad_area_nosemaphore+0xd/0x10 > >> [ 1.558771] [] do_page_fault+0x174/0x2fa > >> [ 1.559770] [] ? sched_clock_local+0x10/0x14b > >> [ 1.560770] [] ? __netdev_alloc_skb+0x17/0x34 > >> [ 1.561770] [] ? __kmalloc_track_caller+0xb7/0xc7 > >> [ 1.563770] [] ? __netdev_alloc_skb+0x17/0x34 > >> [ 1.564770] [] ? spurious_fault+0xa8/0xa8 > >> [ 1.565770] [] error_code+0x5a/0x60 > >> [ 1.566769] [] ? spurious_fault+0xa8/0xa8 > >> [ 1.567769] [] ? virtnet_poll+0x16e/0x408 > >> [ 1.567769] [] net_rx_action+0x8e/0x177 > >> [ 1.568769] [] __do_softirq+0xa7/0x158 > >> [ 1.569769] [] ? __tasklet_hi_schedule_first+0x2b/0x2b > >> [ 1.569769] [] ? > >> _local_bh_enable_ip.isra.9+0x65/0x86 > >> [ 1.570769] [] ? local_bh_enable_ip+0x8/0xa > >> [ 1.571769] [] ? _raw_spin_unlock_bh+0x18/0x1a > >> [ 1.571769] [] ? dev_set_rx_mode+0x22/0x26 > >> [ 1.572768] [] ? __dev_open+0x96/0xa6 > >> [ 1.573768] [] ? __dev_change_flags+0x97/0x10e > >> [ 1.573768] [] ? dev_change_flags+0x13/0x3f > >> [ 1.574768] [] ? ip_auto_config+0x160/0xcf8 > >> [ 1.574768] [] ? extract_entropy+0x45/0x71 > >> [ 1.575768] [] ? get_parent_ip+0xb/0x31 > >> [ 1.576768] [] ? sub_preempt_count+0x7c/0x89 > >> [ 1.576768] [] ? _raw_spin_unlock+0x1c/0x27 > >> [ 1.577768] [] ? > >> tcp_set_default_congestion_control+0x8c/0x95 > >> [ 1.578768] [] ? do_one_initcall+0x71/0x114 > >> [ 1.578768] [] ? root_nfs_parse_addr+0x91/0x91 > >> [ 1.579767] [] ? kernel_init+0xab/0x11d > >> [ 1.580767] [] ? start_kernel+0x301/0x301 > >> [ 1.581767] [] ? kernel_thread_helper+0x6/0xd > >> [ 1.582767] Rebooting in 1 seconds.. > >> # KVM session ended normally. > > > > This needs fixing before I can apply the patch, right? > > Looks like a guest kernel bug, no? It's a kernel bug and should be fixed there, but it's caused by us not passing sane values to virtio-net, which we can fix on our side as well. So my plan is to prevent triggering it from within kvm tools while working on a kernel patch. -- Sasha.