[Bug 670337] New: recommended modprobe pciback config fails to seize multiple PCI-passthrough'd cards that share the same driver
https://bugzilla.novell.com/show_bug.cgi?id=670337 https://bugzilla.novell.com/show_bug.cgi?id=670337#c0 Summary: recommended modprobe pciback config fails to seize multiple PCI-passthrough'd cards that share the same driver Classification: openSUSE Product: openSUSE 11.3 Version: Final Platform: All OS/Version: openSUSE 11.3 Status: NEW Severity: Normal Priority: P5 - None Component: Xen AssignedTo: jdouglas@novell.com ReportedBy: pgngw+dev001+novell.com@f-m.fm QAContact: qa@suse.de Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101203 SUSE/3.6.13-3.1 Firefox/3.6.13 hi, my Dom0 host runs, uname -a Linux test 2.6.34.8-10-xen #1 SMP 2011-02-07 11:18:40 +0100 x86_64 x86_64 x86_64 GNU/Linux lsb_release -d Description: openSUSE 11.3 (x86_64) rpm -qa | grep -i Xen-4 xen-4.0.1_21326_02-0.3.1.x86_64 i've got 3 NICs, lspci | grep -i eth 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01) 03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053 PCI-E Gigabit Ethernet Controller (rev 20) 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02) where 04:00.0 is assigned as the internal-LAN/Bridge port, and 02:00.0 & 03:00.0 are PCIe cards that I intend to PCI-passthrough to a DomU guest. per a discussion at http://lists.xensource.com/archives/html/xen-devel/2011-02/msg00091.html, and instructions at http://wiki.xensource.com/xenwiki/Assign_hardware_to_DomU_with_PCIBack_as_mo..., as @opensuse, pciback is compiled as a module, not into the kernel, grep PCI /boot/config-2.6.34.8-8-xen | grep BACK CONFIG_XEN_PCIDEV_BACKEND=m CONFIG_XEN_PCIDEV_BACKEND_VPCI=y # CONFIG_XEN_PCIDEV_BACKEND_PASS is not set # CONFIG_XEN_PCIDEV_BACKEND_SLOT is not set # CONFIG_XEN_PCIDEV_BACKEND_CONTROLLER is not set this is SUPPOSED to work, cat /boot/grub/menu.lst ... kernel /xen.gz ... iommu=verbose dom0_vcpus_pin=true sched=credit cpuidle=1 cpufreq=xen clocksource=acpi numa=on module /vmlinuz-xen ... elevator=cfq clocksource=xen mce=off nomodeset pci=resource_aligment=0000:02:00.0;0000:03:0.0 module /initrd-xen ... cat /etc/modprobe.d/99-local.conf options pciback hide=(0000:02:00.0)(0000:03:00.0) install sky2 /sbin/modprobe pciback ; /sbin/modprobe --first-time --ignore-install sky2 install r8169 /sbin/modprobe pciback ; /sbin/modprobe --first-time --ignore-install r8169 but, with that config, @ Dom0 boot, i only see ONE card seized, dmesg | egrep -i seiz [ 2.081944] pciback 0000:03:00.0: seizing device and, of course as a result, for any guest, cat test.cfg ... extra = 'textmode=1 xencons=xvc0 elevator=noop iommu=soft' pci = [ '02:00.0', '03:00.0'] ... xm create test.cfg Error: pci: PCI Backend and pci-stub don't own device 0000:02:00.0 if i simply replace the 04:00.0 Realtek card with a non-r8619 driver card, e.g., 04:00.0 Ethernet controller: Atheros Communications AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (rev b0) and repeat the experiment, then both cards are CORRECTLY seized, dmesg | egrep -i seiz [ 3.027654] pciback 0000:02:00.0: seizing device [ 3.321515] pciback 0000:03:00.0: seizing device and I can subsequently launch the DomU, with both cards successfully passed through. i.e., using two cards with the same driver type FAILS to allow one of the cards to be seized. after some juggling, i find that, if instead of making the recommended changes to modprobe config, the following -- adding /etc/init.d/boot.local to the mix -- is done, all works as expected: grep pci /boot/grub/menu.lst module /vmlinuz-xen ... pci=resource_aligment=0000:02:00.0;0000:03:0.0 cat /etc/init.d/boot.local DEV="0000:02:00.0 0000:03:00.0" for BDF in $DEV do [ ! -e /sys/bus/pci/devices/$BDF/driver/unbind ] || \ echo -n $BDF > /sys/bus/pci/devices/$BDF/driver/unbind echo -n $BDF > /sys/bus/pci/drivers/pciback/new_slot echo -n $BDF > /sys/bus/pci/drivers/pciback/bind echo -n $BDF > sys/bus/pci/drivers/pciback/permissive done cat /etc/modprobe.d/99-local.conf (empty) reboot dmesg | grep -i seiz [ 32.664674] pciback 0000:02:00.0: seizing device [ 32.688310] pciback 0000:03:00.0: seizing device readlink //sys/bus/pci/devices/0000:02:00.0/driver ../../../../bus/pci/drivers/pciback readlink //sys/bus/pci/devices/0000:03:00.0/driver ../../../../bus/pci/drivers/pciback readlink //sys/bus/pci/devices/0000:04:00.0/driver ../../../../bus/pci/drivers/r8169 iiuc, doing it this way causes no particular problem, but it seems that the recommended approach, using modprobe config, doesn't, in any case, work as expected ... Reproducible: Always Steps to Reproduce: 1. 2. 3. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=670337
https://bugzilla.novell.com/show_bug.cgi?id=670337#c
Charles Arnold
https://bugzilla.novell.com/show_bug.cgi?id=670337
https://bugzilla.novell.com/show_bug.cgi?id=670337#c1
Jan Beulich
https://bugzilla.novell.com/show_bug.cgi?id=670337
https://bugzilla.novell.com/show_bug.cgi?id=670337#c2
x _
I'd generally recommend against the modprobe.conf install trickery, and instead always go the unbinding route as being more explicit
thx -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com