From: Jonas Meurer <jonas@freesources.org>
To: xen-devel@lists.xen.org
Cc: xen-users@lists.xen.org
Subject: [BUG] PCI passtrough causes driver crash in DomU (Xen 4.3, Linux kernel 3.12)
Date: Fri, 07 Mar 2014 12:54:34 +0100 [thread overview]
Message-ID: <5319B37A.9010602@freesources.org> (raw)
In-Reply-To: <4ae3db63354065feba956b28e900cc44@imap.steindlberger.de>
Hello,
as already written to xen-users a few days ago, I've troubles using pci
passthrough for an Intel 82574L ethernet device (kernel module e1000e).
The device is passed through by xen-pciback, and can be seen by 'lspci'
inside the DomU. Still, the corresponding network interface doesn't
appear in /proc/net/dev and even more striking, the DomU kernel driver
crashes with a traceback.
All this happens on a Debian/Jessie Dom0 with Xen 4.3 and Linux kernel
3.12. The DomU in question has a similar Debian/Jessie setup.
I searched the archives for similar issues and found the following
thread from October 2013 that describes a similar issue starting with
Linux kernel 3.8:
http://thread.gmane.org/gmane.comp.emulators.xen.user/80672
Below in my original post to xen-users you find details about the kernel
drvier crash and relevant logs.
I'll gladly provide more details if you give me advice on how to further
debug this issue :)
Kind regards,
jonas
Am 03.03.2014 17:59, schrieb Jonas Meurer:
> Hello,
>
> I fail to configure Xen the way that it passes a network device through
> to a VM (on Debian/Jessie, Xen 4.3, Linux kernel 3.12)
>
> This is the network device in question:
>
> # lspci -v -s 0000:03:00.0
> 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network
> Connection
> [...]
> Kernel driver in use: e1000e
>
> Dynamic assignment seems to work, but passthrough works only halfways:
>
> # echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/unbind
> # echo 0000:03:00.0 > /sys/bus/pci/drivers/pciback/new_slot
> # echo 0000:03:00.0 > /sys/bus/pci/drivers/pciback/bind
> # lspci -v -s 0000:03:00.0
> 03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network
> Connection
> [...]
> Kernel driver in use: pciback
> # xl pci-assignable-list
> 0000:03:00.0
>
> Afterwards I do see the pci device inside the DomU (Debian/Jessie, Linux
> Kernel 3.12):
>
> # lspci
> 00:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network
> Connection
> # lspci -v -s 0000:00:00.0
> 00:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network
> Connection
> [...]
> Kernel driver in use: e1000e
>
> But the device is not recognized as network device, /proc/net/dev lists
> only the vif configured in DomU-Config.
>
> I see the following traceback in dmesg inside DomU:
>
> [ 1.148546] xenbus_probe_frontend: Device with no driver:
> device/vbd/51712
> [ 1.148547] xenbus_probe_frontend: Device with no driver: device/vif/0
> [ 1.148548] xenbus_probe_frontend: Device with no driver: device/pci/0
> [...]
> [ 1.206122] pcifront pci-0: Installing PCI frontend
> [...]
> [ 1.209670] pcifront pci-0: Creating PCI Frontend Bus 0000:00
> [ 1.209709] pcifront pci-0: PCI host bridge to bus 0000:00
> [ 1.209712] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
> [ 1.209713] pci_bus 0000:00: root bus resource [mem
> 0x00000000-0x3fffffffffff]
> [ 1.209716] pci_bus 0000:00: root bus resource [bus 00-ff]
> [ 1.209888] pci 0000:00:00.0: [8086:10d3] type 00 class 0x020000
> [ 1.210001] pci 0000:00:00.0: reg 0x10: [mem 0xdfbc0000-0xdfbdffff]
> [ 1.210066] pci 0000:00:00.0: reg 0x14: [mem 0xdfb00000-0xdfb7ffff]
> [ 1.210134] pci 0000:00:00.0: reg 0x18: [io 0x7000-0x701f]
> [ 1.210195] pci 0000:00:00.0: reg 0x1c: [mem 0xdfbe0000-0xdfbe3fff]
> [ 1.223406] xen_netfront: Initialising Xen virtual ethernet driver
> [ 1.227416] pcifront pci-0: claiming resource 0000:00:00.0/0
> [ 1.227421] pcifront pci-0: claiming resource 0000:00:00.0/1
> [ 1.227422] pcifront pci-0: claiming resource 0000:00:00.0/2
> [ 1.227424] pcifront pci-0: claiming resource 0000:00:00.0/3
> [...]
> [ 1.308278] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
> [ 1.308280] e1000e: Copyright(c) 1999 - 2013 Intel Corporation.
> [ 1.308363] e1000e 0000:00:00.0: enabling device (0000 -> 0002)
> [ 1.308536] e1000e 0000:00:00.0: Xen PCI mapped GSI40 to IRQ28
> [ 1.309023] e1000e 0000:00:00.0: Interrupt Throttling Rate (ints/sec)
> set to dynamic conservative mode
> [ 1.309462] BUG: unable to handle kernel paging request at
> ffffc900000a600c
> [ 1.309472] IP: [<ffffffff812ab4be>] pci_enable_msix+0x30e/0x3e0
> [ 1.309480] PGD ec5f067 PUD ec60067 PMD ec61067 PTE 80100000dfbe0465
> [ 1.309489] Oops: 0003 [#1] SMP
> [ 1.309494] Modules linked in: e1000e(+) ptp pps_core xen_netfront(+)
> xen_blkfront(+) xen_pcifront
> [ 1.309503] CPU: 0 PID: 72 Comm: modprobe Not tainted 3.12-1-amd64 #1
> Debian 3.12.9-1
> [ 1.309508] task: ffff88000c2cf840 ti: ffff880003806000 task.ti:
> ffff880003806000
> [ 1.309512] RIP: e030:[<ffffffff812ab4be>] [<ffffffff812ab4be>]
> pci_enable_msix+0x30e/0x3e0
> [ 1.309516] RSP: e02b:ffff880003807b78 EFLAGS: 00010286
> [ 1.309519] RAX: 000000000000000c RBX: ffff88000c1a7140 RCX:
> 0000000000000005
> [ 1.309523] RDX: ffffc900000a600c RSI: 0000000000000001 RDI:
> ffff88000c200200
> [ 1.309526] RBP: ffff880003ff5a00 R08: ffff88000c209c00 R09:
> ffff88000e800050
> [ 1.309529] R10: 000000000000001f R11: 0000000000000044 R12:
> ffff88000c11f000
> [ 1.309532] R13: 0000000000000000 R14: 0000000000000000 R15:
> 000000000000000c
> [ 1.309539] FS: 00007f6dcf53b700(0000) GS:ffff88000fc00000(0000)
> knlGS:0000000000000000
> [ 1.309543] CS: e033 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 1.309545] CR2: ffff8000006fdf00 CR3: 0000000003ff3000 CR4:
> 0000000000042660
> [ 1.309549] Stack:
> [ 1.309552] ffff88000c11f868 00000000c0040800 ffff880003880800
> ffffffffa005a100
> [ 1.309557] ffff88000c11f098 0000000000000001 ffff880003880000
> ffff880003880800
> [ 1.309562] ffffffffa00519bf ffff88000c11f000 ffffffffa0055fc5
> ffff880003880800
> [ 1.309568] Call Trace:
> [ 1.309578] [<ffffffffa00519bf>] ?
> e1000e_set_interrupt_capability+0xef/0x120 [e1000e]
> [ 1.309586] [<ffffffffa0055fc5>] ? e1000_probe+0x3a5/0xe30 [e1000e]
> [ 1.309594] [<ffffffff81293264>] ? local_pci_probe+0x34/0x60
> [ 1.309599] [<ffffffff81294582>] ? pci_device_probe+0x112/0x120
> [ 1.309605] [<ffffffff81345bf8>] ? driver_probe_device+0x68/0x220
> [ 1.309609] [<ffffffff81345e6b>] ? __driver_attach+0x7b/0x80
> [ 1.309613] [<ffffffff81345df0>] ? __device_attach+0x40/0x40
> [ 1.309618] [<ffffffff81343e73>] ? bus_for_each_dev+0x53/0x90
> [ 1.309623] [<ffffffff81345368>] ? bus_add_driver+0x1e8/0x290
> [ 1.309628] [<ffffffff81346406>] ? driver_register+0x56/0xd0
> [ 1.309631] [<ffffffffa0066000>] ? 0xffffffffa0065fff
> [ 1.309637] [<ffffffff8100210a>] ? do_one_initcall+0x10a/0x160
> [ 1.309642] [<ffffffff810c01f1>] ? load_module+0x1c11/0x24c0
> [ 1.309647] [<ffffffff810bcf40>] ? symbol_put_addr+0x30/0x30
> [ 1.309652] [<ffffffff810c0bcd>] ? SyS_finit_module+0x6d/0x70
> [ 1.309658] [<ffffffff81498fb9>] ? system_call_fastpath+0x16/0x1b
> [ 1.309661] Code: 0c 89 02 8b 7b 0c e8 02 c9 df ff 49 63 c7 48 03 43
> 28 8b 30 0f b7 43 02 89 73 08 83 ce 01 c1 e0 04 83 c0 0c 48 63 d0 48 03
> 53 28 <89> 32 48 8b 43 18 41 83 c6 01 48 39 04 24 89 73 08 48 8d 58 e8
> [ 1.309697] RIP [<ffffffff812ab4be>] pci_enable_msix+0x30e/0x3e0
> [ 1.309702] RSP <ffff880003807b78>
> [ 1.309704] CR2: ffffc900000a600c
> [ 1.309708] ---[ end trace 14e095cf15d42207 ]---
>
>
> Any idea what I'm missing? Or is this a known bug?
>
> Kind regards,
> jonas
>
>
> _______________________________________________
> Xen-users mailing list
> Xen-users@lists.xen.org
> http://lists.xen.org/xen-users
>
next parent reply other threads:[~2014-03-07 11:54 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4ae3db63354065feba956b28e900cc44@imap.steindlberger.de>
2014-03-07 11:54 ` Jonas Meurer [this message]
2014-03-07 12:03 ` [BUG] PCI passtrough causes driver crash in DomU (Xen 4.3, Linux kernel 3.12) Andrew Cooper
2014-03-07 12:04 ` Jonas Meurer
2014-03-08 20:32 ` [Xen-users] " Jonas Meurer
2014-03-07 12:49 Konrad Rzeszutek Wilk
2014-03-16 15:52 ` Jonas Meurer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5319B37A.9010602@freesources.org \
--to=jonas@freesources.org \
--cc=xen-devel@lists.xen.org \
--cc=xen-users@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.