Re: BUG: unable to handle kernel paging request at ffff8801f3febe63 (netvsc_select_queue)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 19, 2014 at 10:57:30AM +0200, Daniel Borkmann wrote:
> On 08/19/2014 10:15 AM, Sitsofe Wheeler wrote:
> >After a variety of issues on Hyper-V (host is running Windows 2012 R2) I
> >updated to the latest kernel (3.17-rc1
> >7d1311b93e58ed55f3a31cc8f94c4b8fe988a2b9), turned on a bunch of kernel
> >validation options and booted which has resulted in a BUG being
> >triggered (IP claims to be at netvsc_select_queue), at least one of the
> >network cards not working and a bunch of oopses.
> >
> >Guest is a customised Fedora 20 cloud image. Partial dmesg output is
> >below:
> >
> >[   16.064298] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input4
> >[   19.292370] BUG: unable to handle kernel paging request at ffff8801f3febe63
> >[   19.293258] IP: [<ffffffff814e69ad>] netvsc_select_queue+0x3d/0x150
> >[   19.293258] PGD 2db1067 PUD 207dc0067 PMD 207c20067 PTE 80000001f3feb060
> >[   19.293258] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
> >[   19.293258] CPU: 8 PID: 568 Comm: arping Not tainted 3.17.0-rc1.x86_64 #121
> >[   19.293258] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  05/23/2012
> >[   19.293258] task: ffff8800f29326a0 ti: ffff8801f940c000 task.ti: ffff8801f940c000
> >[   19.293258] RIP: 0010:[<ffffffff814e69ad>]  [<ffffffff814e69ad>] netvsc_select_queue+0x3d/0x150
> >[   19.293258] RSP: 0018:ffff8801f940fc60  EFLAGS: 00010206
> >[   19.293258] RAX: 0000000000000000 RBX: ffff8800f13e5680 RCX: 000000000000ffff
> >[   19.293258] RDX: ffff8801f3fdbe58 RSI: ffff8801f39b8d80 RDI: ffff8800f13e5680
> >[   19.293258] RBP: ffff8801f940fc88 R08: 000000000000002a R09: 0000000000000000
> >[   19.293258] R10: ffff8800f13e4520 R11: 000000000000000a R12: ffff8801f39b8d80
> >[   19.293258] R13: 0000000000000000 R14: ffff8801f9bf1290 R15: ffff8801f39b8d80
> >[   19.293258] FS:  00007f777b980740(0000) GS:ffff880206d00000(0000) knlGS:0000000000000000
> >[   19.293258] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> >[   19.293258] CR2: ffff8801f3febe63 CR3: 00000001f3aed000 CR4: 00000000000406e0
 
> Hmm, I am not really familiar with hyper-v, but it seems 5b54dac856cb ("hyperv:
> Add support for virtual Receive Side Scaling (vRSS)") has been introduced after
> 0fd5d57ba345 ("packet: check for ndo_select_queue during queue selection").
> 
> arping seems to send a raw packet (AF_PACKET) via normal packet_sendmsg() out
> and when doing the queue selection in packet_pick_tx_queue(), we discover that
> the device has ndo_select_queue implemented, so we respect that and call into
> it. In netvsc_select_queue(), the fallback of __packet_pick_tx_queue() is not
> being invoked here.
> 
> Given that the next log message is "hv_netvsc vmbus_0_15: net device safe to
> remove" ... could it be that your back pointer to the device context (the actual
> struct hv_device) is already invalid when you try to get hv_get_drvdata(hdev)
> as it's sort of decoupled from netdev_priv(ndev) ? (Just a wild guess ...)

Thanks for investigating! After setting DEBUG_PAGEALLOC=n I'm now
getting a GPF with an IP of rndis_filter_open:

[   28.255083] EXT4-fs (sdb1): mounted filesystem with ordered data mode. Opts: (null)
[   28.531276] systemd-journald[366]: Received request to flush runtime journal from PID 1
[   29.401494] hv_utils: KVP: user-mode registering done.
[   34.628072] hv_netvsc vmbus_0_15: net device safe to remove
[   34.676573] hv_netvsc: hv_netvsc channel opened successfully
[   34.860292] hv_netvsc vmbus_0_15 eth1: unable to establish send buffer's gpadl
[   34.948983] hv_netvsc vmbus_0_15 eth1: unable to connect to NetVSP - 4
[   35.073575] general protection fault: 0000 [#1] SMP 
[   35.097981] CPU: 8 PID: 678 Comm: ip Not tainted 3.17.0-rc1.x86_64 #124
[   35.097981] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090006  05/23/2012
[   35.097981] task: ffff8801f49f1350 ti: ffff8801f8f10000 task.ti: ffff8801f8f10000
[   35.263681] RIP: 0010:[<ffffffff814e9fef>]  [<ffffffff814e9fef>] rndis_filter_open+0x1f/0x60
[   35.263681] RSP: 0018:ffff8801f8f13780  EFLAGS: 00010246
[   35.263681] RAX: 0000000000000000 RBX: 6b6b6b6b6b6b6b6b RCX: 0000000000000006
[   35.263681] RDX: 0000000000000006 RSI: ffff8801f49f1a90 RDI: ffff8801fbb8d480
[   35.263681] RBP: ffff8801f8f13788 R08: 0000000000000000 R09: 0000000000000000
[   35.263681] R10: 0000000000000001 R11: 0000000000000001 R12: ffff8801fbb8d480
[   35.263681] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000001
[   35.263681] FS:  00007ff9ce3aa740(0000) GS:ffff880207d00000(0000) knlGS:0000000000000000
[   35.263681] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   35.263681] CR2: 00007fff85779b10 CR3: 00000001f4244000 CR4: 00000000000406e0
[   35.263681] Stack:
[   35.263681]  ffff8800f17d8000 ffff8801f8f137b0 ffffffff814e6505 ffff8800f17d8000
[   35.263681]  ffffffff8188f980 0000000000000000 ffff8801f8f137d8 ffffffff815d0978
[   35.263681]  ffff8800f17d8000 ffff8800f17d8000 0000000000001003 ffff8801f8f13810
[   35.263681] Call Trace:
[   35.263681]  [<ffffffff814e6505>] netvsc_open+0x25/0xb0
[   35.263681]  [<ffffffff815d0978>] __dev_open+0x98/0x110
[   35.263681]  [<ffffffff815d0c79>] __dev_change_flags+0xb9/0x160
[   35.263681]  [<ffffffff815d0d49>] dev_change_flags+0x29/0x60
[   35.263681]  [<ffffffff815e1415>] do_setlink+0x2d5/0xa60
[   35.263681]  [<ffffffff811a4ac1>] ? deactivate_slab+0x1c1/0x500
[   35.263681]  [<ffffffff815e23ad>] rtnl_newlink+0x49d/0x760
[   35.263681]  [<ffffffff815e202f>] ? rtnl_newlink+0x11f/0x760
[   35.263681]  [<ffffffff815bc800>] ? __alloc_skb+0x70/0x240
[   35.263681]  [<ffffffff81010a0b>] ? save_stack_trace+0x2b/0x50
[   35.263681]  [<ffffffff815de8c1>] rtnetlink_rcv_msg+0x221/0x260
[   35.263681]  [<ffffffff810b980d>] ? trace_hardirqs_on+0xd/0x10
[   35.263681]  [<ffffffff815de67b>] ? rtnetlink_rcv+0x1b/0x40
[   35.263681]  [<ffffffff815de6a0>] ? rtnetlink_rcv+0x40/0x40
[   35.263681]  [<ffffffff815fc4b5>] netlink_rcv_skb+0x65/0xb0
[   35.263681]  [<ffffffff815de68a>] rtnetlink_rcv+0x2a/0x40
[   35.263681]  [<ffffffff815fa5ec>] netlink_unicast+0xcc/0x1a0
[   35.263681]  [<ffffffff815fb3ee>] netlink_sendmsg+0x6de/0x750
[   35.263681]  [<ffffffff815b3dd8>] sock_sendmsg+0x88/0xb0
[   35.263681]  [<ffffffff81184e9a>] ? might_fault+0x5a/0xb0
[   35.263681]  [<ffffffff81184ee3>] ? might_fault+0xa3/0xb0
[   35.263681]  [<ffffffff81184e9a>] ? might_fault+0x5a/0xb0
[   35.263681]  [<ffffffff815c26cd>] ? verify_iovec+0x7d/0xf0
[   35.263681]  [<ffffffff815b41e6>] ___sys_sendmsg+0x296/0x2b0
[   35.263681]  [<ffffffff8118356d>] ? handle_mm_fault+0x69d/0x12a0
[   35.263681]  [<ffffffff810403e3>] ? __do_page_fault+0x1c3/0x4f0
[   35.263681]  [<ffffffff810b6a5f>] ? up_read+0x1f/0x40
[   35.263681]  [<ffffffff8104064c>] ? __do_page_fault+0x42c/0x4f0
[   35.263681]  [<ffffffff811e1f15>] ? mntput_no_expire+0x65/0x170
[   35.263681]  [<ffffffff811e1eb5>] ? mntput_no_expire+0x5/0x170
[   35.263681]  [<ffffffff811e27c5>] ? mntput+0x35/0x40
[   35.263681]  [<ffffffff811c3022>] ? __fput+0x1b2/0x1d0
[   35.263681]  [<ffffffff815b5172>] __sys_sendmsg+0x42/0x70
[   35.263681]  [<ffffffff815b51ae>] SyS_sendmsg+0xe/0x10
[   35.263681]  [<ffffffff816a2d29>] system_call_fastpath+0x16/0x1b
[   35.263681] Code: 41 5e 41 5f 5d c3 66 0f 1f 44 00 00 66 66 66 66 90 48 8b 87 20 01 00 00 48 85 c0 74 2f 55 48 89 e5 53 48 8b 98 40 02 00 00 31 c0 <83> 7b 08 02 75 2b be 0d 00 00 00 48 89 df e8 9e f9 ff ff 85 c0 
[   35.263681] RIP  [<ffffffff814e9fef>] rndis_filter_open+0x1f/0x60
[   35.263681]  RSP <ffff8801f8f13780>
[   35.264682] ---[ end trace 91f7878e7e46f8d5 ]---

-- 
Sitsofe | http://sucs.org/~sits/
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux