[opensuse-virtual] intermittent fail to load ethernet NIC driver in xen Guest when doing PCI passthrough?
i'm running Xen Host & Guest on OpenSUSE 12.1 Host -> uname -a Linux server 3.1.9-1.4-xen #1 SMP Fri Jan 27 08:55:10 UTC 2012 (efb5ff4) x86_64 x86_64 x86_64 GNU/Linux rpm -qa | grep -i xen-4 xen-4.1.2_15-181.4.x86_64 PV Guest -> uname -a Linux guest1 3.1.9-1.4-xen #1 SMP Fri Jan 27 08:55:10 UTC 2012 (efb5ff4) x86_64 x86_64 x86_64 GNU/Linux for a typical Guest, all's good. it starts, execs, and restarts with no problems. i've installed an additional PCI NIC. it's a Marvell board, and uses the standard 'sky2' kernel module. next, i passthrough the NIC from host to guest, by including in Guest config, ... pci = [ '03:00.0' ] pci_msitranslate = 0 pci_power_mgmt = 0 extra = 'textmode=1 xencons=xvc0 noirqdebug elevator=noop' ... the Guest's kernel config has, kernel /vmlinuz-xen root=/dev/xvdc1 noresume kbdtype=us iommu=soft headless text quiet nofb selinux=0 apparmor-0 edd=off splash=silent noshell showopts on initial launch after host boot, and ~ 1/2 the time on restart, the NIC is handled OK, ... [ 1.301664] padlock_aes: VIA PadLock not detected. [ 1.429150] device-mapper: uevent: version 1.0.3 [ 1.434077] device-mapper: ioctl: 4.21.0-ioctl (2011-07-06) initialised: dm-devel@redhat.com [ 1.462829] sky2: driver version 1.29 [ 1.467087] sky2 0000:00:00.0: enabling device (0000 -> 0003) [ 1.471836] sky2 0000:00:00.0: Yukon-2 EC chip revision 2 [ 1.478292] sky2 0000:00:00.0: eth1: addr 00:50:43:00:52:7C ... and is accessible & fully functional in the Guest. the other ~1/2 the time on restart by any method: (1) 'shutdown -r now' in Guest, (2) 'shutdown -h now' in Guest, 'xm create' in Host (3) 'xm destroy' & 'xm create' in Host the device fails to correctly load on startup, ... [ 1.445741] padlock_aes: VIA PadLock not detected. [ 1.541628] device-mapper: uevent: version 1.0.3 [ 1.545827] device-mapper: ioctl: 4.21.0-ioctl (2011-07-06) initialised: dm-devel@redhat.com [ 1.559222] sky2: driver version 1.29 [ 1.728280] sky2 0000:00:00.0: BAR 0: error updating (0xaeedc004 != 0xfbd00004) [ 1.732705] sky2 0000:00:00.0: BAR 0: set to [mem 0xaeedc000-0xaeedffff 64bit] (PCI address [0xaeedc000-0xaeedffff]) [ 1.741036] sky2 0000:00:00.0: BAR 2: error updating (0x001001 != 0x00c801) [ 1.745327] sky2 0000:00:00.0: BAR 2: set to [io 0x1000-0x10ff] (PCI address [0x1000-0x10ff]) [ 1.752952] sky2 0000:00:00.0: enabling device (0000 -> 0003) [ 1.754630] sky2 0000:00:00.0: cannot map device registers [ 1.755956] sky2: probe of 0000:00:00.0 failed with error -12 ... and, of course, the NIC is unusable. after restarting the Guest -- usually once is sufficient, sometimes 2-3x is required --the Guest boots OK again, and the NIC's driver is properly loaded. rarely, i simply can't get it to boot correctly at all. in that case, a complete reboot of the Host does the trick. something's failing intermittently -- i've no idea what, yet. is there some additional step i should be doing on Guest restart to make sure this doesn't happen? some re-init at Host, maybe? locuse -- To unsubscribe, e-mail: opensuse-virtual+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-virtual+owner@opensuse.org
participants (1)
-
locuse@mm.st