[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] netback Oops then xenwatch stuck in D state
On Wed, 2013-02-13 at 02:51 +0000, Christopher S. Aker wrote: > On 2/12/13 4:58 AM, Ian Campbell wrote: > > Have you applied the XSA-39 fixes to this kernel? > > Yes! When I rebuilt with Wei's suggested patch for my original > netback/xenwatch problem I also brought us up to date with XSA patches. > > We just hit the same (new) problem on another machine, and looking at > the BUG with more kernel output context gives a giant clue: > > Feb 12 20:30:54: IPv6: ADDRCONF(NETDEV_UP): vif21.0: link is not ready > Feb 12 20:30:54: device vif21.0 entered promiscuous mode > Feb 12 20:30:56: xen-blkback:ring-ref 8, event-channel 31, protocol 2 > (x86_32-abi) > Feb 12 20:30:56: xen-blkback:ring-ref 9, event-channel 32, protocol 2 > (x86_32-abi) > Feb 12 20:30:56: IPv6: ADDRCONF(NETDEV_CHANGE): vif21.0: link becomes ready > Feb 12 20:30:56: br0: port 5(vif21.0) entered forwarding state > Feb 12 20:30:56: br0: port 5(vif21.0) entered forwarding state > Feb 12 20:30:58: br0: port 5(vif21.0) entered forwarding state > Feb 12 20:34:12: vif vif-21-0 vif21.0: Frag is bigger than frame. > Feb 12 20:34:12: vif vif-21-0 vif21.0: fatal error; disabling device > <-------------- > Feb 12 20:34:12: BUG: unable to handle kernel NULL pointer dereference > at 00000000000008b8 > Feb 12 20:34:12: IP: [<ffffffff81011dda>] xen_spin_lock_flags+0x3a/0x80 > Feb 12 20:34:12: PGD 0 > Feb 12 20:34:12: Oops: 0002 [#1] SMP > Feb 12 20:34:12: Modules linked in: ebt_comment ebt_arp ebt_set > ebt_limit ebt_ip6 ebt_ip ip_set_hash_net ip_set ebtable_nat xen_gntdev > bonding ebtable_filter e1000e > Feb 12 20:34:12: CPU 3 > Feb 12 20:34:12: Pid: 1548, comm: netback/3 Not tainted 3.7.6-1-x86_64 > #1 Supermicro X8DT6/X8DT6 > Feb 12 20:34:12: RIP: e030:[<ffffffff81011dda>] [<ffffffff81011dda>] > xen_spin_lock_flags+0x3a/0x80 > Feb 12 20:34:12: RSP: e02b:ffff880083681b58 EFLAGS: 00010006 > Feb 12 20:34:12: RAX: 0000000000000400 RBX: 00000000000008b8 RCX: > 0000000000000663 > Feb 12 20:34:12: RDX: 0000000000000001 RSI: 0000000000000210 RDI: > 00000000000008b8 > Feb 12 20:34:12: RBP: ffff880083681b78 R08: 000000000000000d R09: > 0000000000000000 > Feb 12 20:34:12: R10: 0000000000000001 R11: 0000000000000001 R12: > 0000000000000001 > Feb 12 20:34:12: R13: 0000000000000200 R14: 0000000000000400 R15: > 0000000000000663 > Feb 12 20:34:12: FS: 00007f2bc1fb2700(0000) GS:ffff8801006c0000(0000) > knlGS:0000000000000000 > Feb 12 20:34:12: CS: e033 DS: 0000 ES: 0000 CR0: 000000008005003b > Feb 12 20:34:12: CR2: 00000000000008b8 CR3: 0000000001c0b000 CR4: > 0000000000002660 > Feb 12 20:34:12: DR0: 0000000000000000 DR1: 0000000000000000 DR2: > 0000000000000000 > Feb 12 20:34:12: DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: > 0000000000000400 > Feb 12 20:34:12: Process netback/3 (pid: 1548, threadinfo > ffff880083680000, task ffff8800837ec9c0) > Feb 12 20:34:12: Stack: > Feb 12 20:34:12: 0000000000000210 00000000000008b8 ffff880003baa700 > ffff880003baa7d8 > Feb 12 20:34:12: ffff880083681b98 ffffffff817605da 0000000000000000 > 00000000000008b8 > Feb 12 20:34:12: ffff880083681bd8 ffffffff8154446f ffff880003baa000 > 0000000000000000 Fancy trying this *UNTESTED* patch a bit? I look through the code and there seems to be an error. Jan's advice is worth consideration, but I think we should fix this XSA bug first. Wei. -----8<---- commit 6a06b51edd7124193322fd62244171eb099aff52 Author: Wei Liu <wei.liu2@xxxxxxxxxx> Date: Wed Feb 13 18:17:01 2013 +0000 netback: fix netbk_count_requests Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx> diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index 103294d..61aaeb0 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -927,7 +927,11 @@ static int netbk_count_requests(struct xenvif *vif, if (txp->size > first->size) { netdev_err(vif->dev, "Frag is bigger than frame.\n"); netbk_fatal_tx_err(vif); - return -frags; + /* frag could be zero at this point if it + * fails during first iteration, so we need to + * set it to negative number if there is + * error */ + return frags ? -frags : -1; } first->size -= txp->size; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |