All of lore.kernel.org
 help / color / mirror / Atom feed
* how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
@ 2011-02-02  5:03 dev001
  2011-02-02 20:27 ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 7+ messages in thread
From: dev001 @ 2011-02-02  5:03 UTC (permalink / raw)
  To: xen-devel

it was suggested (thx!) @ my OP
(http://lists.xensource.com/archives/html/xen-users/2011-02/msg00013.html)
might be more appropriate here ... hope that's the case (?)

my Dom0 host runs,

uname -a
        Linux test 2.6.34.8-7-xen #1 SMP 2011-01-20 21:58:39 +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.

so far, I've:

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 pciback.permissive
    pciback.hide=(0000:02:00.0)(0000:03:00.0)
    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

cat /etc/init.d/boot.local
        modprobe pciback hide='(02:00.0)(03.00.0)'
        echo -n 0000:02:00.0 > sys/bus/pci/drivers/pciback/permissive
        echo -n 0000:03:00.0 > sys/bus/pci/drivers/pciback/permissive

@ 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 a 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.

i suspect this has to do with the driver not being unloadable at the
time of device seizure, as it's in use.

if that's the case -- how do i configure this so that the _same_ driver
can be used for _both_ the Dom0 card instance, and then appropriately
seized for the PCI-passthru target'd 2nd card?

or, is this another issue & there's addition/other config necessary?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
  2011-02-02  5:03 how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver? dev001
@ 2011-02-02 20:27 ` Konrad Rzeszutek Wilk
  2011-02-02 21:43   ` dev001
  0 siblings, 1 reply; 7+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-02-02 20:27 UTC (permalink / raw)
  To: dev001; +Cc: xen-devel

On Tue, Feb 01, 2011 at 09:03:31PM -0800, dev001 wrote:
> it was suggested (thx!) @ my OP
> (http://lists.xensource.com/archives/html/xen-users/2011-02/msg00013.html)
> might be more appropriate here ... hope that's the case (?)
> 
> my Dom0 host runs,
> 
> uname -a
>         Linux test 2.6.34.8-7-xen #1 SMP 2011-01-20 21:58:39 +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.
> 
> so far, I've:
> 
> 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 pciback.permissive
>     pciback.hide=(0000:02:00.0)(0000:03:00.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
> 
> cat /etc/init.d/boot.local
>         modprobe pciback hide='(02:00.0)(03.00.0)'

Hmm, the 03.00 is incorrect. Should be 03:00.0

>         echo -n 0000:02:00.0 > sys/bus/pci/drivers/pciback/permissive
>         echo -n 0000:03:00.0 > sys/bus/pci/drivers/pciback/permissive
> 
> @ 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 a guest,

So if you look in /sys/pci .. something for 02:00.0 is there any driver
that is using it? Or is it attached ot pciback?

> 
> 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.
> 
> i suspect this has to do with the driver not being unloadable at the
> time of device seizure, as it's in use.

Well, the pciback.hide=(..) during bootup should have taken care of that.

Oh, unless the pciback is a _module_ at which point it would not do it.
> 
> if that's the case -- how do i configure this so that the _same_ driver
> can be used for _both_ the Dom0 card instance, and then appropriately
> seized for the PCI-passthru target'd 2nd card?

Did you follow the rules for doing it detailed in the VT-d howto? Just use
the pciback instead of pci-stub in it.

What happens if you 'rmmod sky2' or blacklist the sky2 driver?
> 
> or, is this another issue & there's addition/other config necessary?
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
  2011-02-02 20:27 ` Konrad Rzeszutek Wilk
@ 2011-02-02 21:43   ` dev001
  2011-02-02 22:26     ` dev001
  2011-02-03 16:26     ` Konrad Rzeszutek Wilk
  0 siblings, 2 replies; 7+ messages in thread
From: dev001 @ 2011-02-02 21:43 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel

hi,

On Wed, 02 Feb 2011 15:27 -0500, "Konrad Rzeszutek Wilk"
<konrad.wilk@oracle.com> wrote:
> > cat /etc/init.d/boot.local
> >         modprobe pciback hide='(02:00.0)(03.00.0)'
> 
> Hmm, the 03.00 is incorrect. Should be 03:00.0

good catch!  yes, a typo.  and it'd been corrected.  no change in
observed behavior, tho.

> So if you look in /sys/pci .. something for 02:00.0 is there any driver
> that is using it? Or is it attached ot pciback?

i'm honestly not sure what to check, here.   what, specifically, am i
looking for?

> > i suspect this has to do with the driver not being unloadable at the
> > time of device seizure, as it's in use.
> 
> Well, the pciback.hide=(..) during bootup should have taken care of that.
> 
> Oh, unless the pciback is a _module_ at which point it would not do it.

on opensuse, iiuc it is a module

grep CONFIG_XEN_PCIDEV_BACKEND /boot/config-2.6.34.8-7-xen 
 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

> Did you follow the rules for doing it detailed in the VT-d howto? Just
> use the pciback instead of pci-stub in it.

i'm a bit confused.  on VT-d howto, it says,

Binding Devices to pciback

  In order to pass-through devices using VT-d then need to be bound to
  pciback to ensure that they are not bound to another dom0 driver and
  this free for use by pass-through. It is possible to view this as
  hiding the device from Dom0.

...
Binding at Run-Time

As discussed in Assign_hardware_to_DomU_with_PCIBack_as_module, it is
possible to bind a device to pciback after dom0 has booted, even if it
has been bound to another device in the mean time. This method can be
used both when pciback is statically compiled into the dom0 kernel and
when it has been compiled as a module.

Binding at Module Insertion Time

As also discussed in Assign_hardware_to_DomU_with_PCIBack_as_module, it
is possible to bind a device to pciback at the time that the pciback
module is inserted. This technique is only useful if pciback has been
compiled as a module. 

and, since it's compiled as a module, at

  http://wiki.xensource.com/xenwiki/Assign_hardware_to_DomU_with_PCIBack_as_module

i "followed the rules" for method 2 ...

is that not correct?

> What happens if you 'rmmod sky2' or blacklist the sky2 driver?

perhaps i'm being thick -- what's that tell us?  i've already shown that
replacing the 'first' r8169-based card with something else allows BOTH
to-be-passed-thru pci-cards to be seized correctly.  which seems to me
to indicate that i'm set up correctly.

or no?

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
  2011-02-02 21:43   ` dev001
@ 2011-02-02 22:26     ` dev001
  2011-02-03 16:26     ` Konrad Rzeszutek Wilk
  1 sibling, 0 replies; 7+ messages in thread
From: dev001 @ 2011-02-02 22:26 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel


hi,

> > Did you follow the rules for doing it detailed in the VT-d howto? Just use the pciback instead of pci-stub in it.
> i "followed the rules" for method 2 ...

not at all sure why that was NOT working for me, but, the following:

grep pci /boot/grub/menu.lst
	...
	module /vmlinuz-xen ...
	pci=resource_aligment=0000:05:07.0;0000:02:00.0;0000:03:0.0

rm /etc/modprobe.d/99-local.conf

cat /etc/init.d/boot.local
#! /bin/sh
DEV="0000:02:00.0 \
     0000:03:00.0 \
     0000:05:07.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


now, @ reboot,

dmesg | grep -i seiz
	[   33.277131] pciback 0000:02:00.0: seizing device
	[   33.308782] pciback 0000:03:00.0: seizing device
	[   33.358124] pciback 0000:05:07.0: seizing device

apparently correctly seizes all the devices, as intended. (note the much
later timestamps ...)

and, in my DomU,

lspci
 00:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
 RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 01)
 00:01.0 Ethernet controller: Marvell Technology Group Ltd. 88E8053
 PCI-E Gigabit Ethernet Controller (rev 20)

thanks!

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
  2011-02-02 21:43   ` dev001
  2011-02-02 22:26     ` dev001
@ 2011-02-03 16:26     ` Konrad Rzeszutek Wilk
  2011-02-03 17:12       ` dev001
  1 sibling, 1 reply; 7+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-02-03 16:26 UTC (permalink / raw)
  To: dev001; +Cc: xen-devel

> i'm honestly not sure what to check, here.   what, specifically, am i
> looking for?

readlink //sys/bus/pci/devices/0000:04:00.0/driver
../../../../bus/pci/drivers/pciback

I want you to do for 02:00.0 and see if it points to pciback before you
launch any guests. 
> 
> > > i suspect this has to do with the driver not being unloadable at the
> > > time of device seizure, as it's in use.
> > 
> > Well, the pciback.hide=(..) during bootup should have taken care of that.
> > 
> > Oh, unless the pciback is a _module_ at which point it would not do it.
> 
> on opensuse, iiuc it is a module
> 
> grep CONFIG_XEN_PCIDEV_BACKEND /boot/config-2.6.34.8-7-xen 
>  CONFIG_XEN_PCIDEV_BACKEND=m      <--------------------

Pfff.. sucks.
>  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
> 

.. snip..
> and, since it's compiled as a module, at
> 
>   http://wiki.xensource.com/xenwiki/Assign_hardware_to_DomU_with_PCIBack_as_module
> 
> i "followed the rules" for method 2 ...
> 
Yup.
> is that not correct?
> 
> > What happens if you 'rmmod sky2' or blacklist the sky2 driver?
> 
> perhaps i'm being thick -- what's that tell us?  i've already shown that
> replacing the 'first' r8169-based card with something else allows BOTH
> to-be-passed-thru pci-cards to be seized correctly.  which seems to me

It eliminates the possiblity of the sky2 driver having ownership of
the 02:00.0. It should be assigned to the pciback driver when you launch
your guest.

> to indicate that i'm set up correctly.

I want to eliminate the possiblity of the 02:00.0 being owned by somebody
else. If it is owned by pciback, then yes it looks as if there is a bug
in either the xm tools or the pciback driver when it comes to seizing
the BDF that have the same PCI vendor:model

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
  2011-02-03 16:26     ` Konrad Rzeszutek Wilk
@ 2011-02-03 17:12       ` dev001
  2011-02-03 17:42         ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 7+ messages in thread
From: dev001 @ 2011-02-03 17:12 UTC (permalink / raw)
  To: Konrad Rzeszutek Wilk; +Cc: xen-devel

hi,

> readlink //sys/bus/pci/devices/0000:04:00.0/driver
> ../../../../bus/pci/drivers/pciback
> 
> I want you to do for 02:00.0 and see if it points to pciback before you
> launch any guests. 

thanks for clarifying that.

not exhaustive, but hopefully sufficiently informative,

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

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)

######################
case 1)

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
	(empty)

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

reboot
dmesg | grep -i seiz
	(empty)

readlink //sys/bus/pci/devices/0000:02:00.0/driver
	../../../../bus/pci/drivers/r8169
readlink //sys/bus/pci/devices/0000:03:00.0/driver
	../../../../bus/pci/drivers/sky2
readlink //sys/bus/pci/devices/0000:04:00.0/driver
	../../../../bus/pci/drivers/r8169

######################
case 2)

grep pci /boot/grub/menu.lst
    module /vmlinuz-xen ...
    pci=resource_aligment=0000:02:00.0;0000:03:0.0
    pciback.hide=(0000:02:00.0)(0000:03:00.0)

cat /etc/init.d/boot.local
	(empty)

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

reboot
dmesg | grep -i seiz
	[    2.083424] pciback 0000:03:00.0: seizing device

readlink //sys/bus/pci/devices/0000:02:00.0/driver
	../../../../bus/pci/drivers/r8169
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

######################
case 3)

grep pci /boot/grub/menu.lst
    module /vmlinuz-xen ...
    pci=resource_aligment=0000:02:00.0;0000:03:0.0
    pciback.hide=(0000:02:00.0)(0000:03:00.0)

cat /etc/init.d/boot.local
	(empty)

cat /etc/modprobe.d/99-local.conf
	(empty)

reboot
dmesg | grep -i seiz
	[    2.077673] pciback 0000:03:00.0: seizing device

readlink //sys/bus/pci/devices/0000:02:00.0/driver
	../../../../bus/pci/drivers/r8169
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

######################
case 3)

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








> >  CONFIG_XEN_PCIDEV_BACKEND=m      <--------------------
> 
> Pfff.. sucks.

curious, why?  and if it legitimately does, any clue why @opensuse does
it that way?

> > > What happens if you 'rmmod sky2' or blacklist the sky2 driver?

i assume a still relevant question ... so, try this for which of the
above (or other?) cases?

thanks.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver?
  2011-02-03 17:12       ` dev001
@ 2011-02-03 17:42         ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 7+ messages in thread
From: Konrad Rzeszutek Wilk @ 2011-02-03 17:42 UTC (permalink / raw)
  To: dev001; +Cc: xen-devel

On Thu, Feb 03, 2011 at 09:12:50AM -0800, dev001 wrote:
> hi,
> 
> > readlink //sys/bus/pci/devices/0000:04:00.0/driver
> > ../../../../bus/pci/drivers/pciback
> > 
> > I want you to do for 02:00.0 and see if it points to pciback before you
> > launch any guests. 
> 
> thanks for clarifying that.
> 
> not exhaustive, but hopefully sufficiently informative,
> 
> 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
> 
> 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)
> 
> ######################
> case 1)
> 
> 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
> 	(empty)
> 
> 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
> 
> reboot
> dmesg | grep -i seiz
> 	(empty)
> 
> readlink //sys/bus/pci/devices/0000:02:00.0/driver
> 	../../../../bus/pci/drivers/r8169
> readlink //sys/bus/pci/devices/0000:03:00.0/driver
> 	../../../../bus/pci/drivers/sky2
> readlink //sys/bus/pci/devices/0000:04:00.0/driver
> 	../../../../bus/pci/drivers/r8169
> 
> ######################
> case 2)
> 
> grep pci /boot/grub/menu.lst
>     module /vmlinuz-xen ...
>     pci=resource_aligment=0000:02:00.0;0000:03:0.0
>     pciback.hide=(0000:02:00.0)(0000:03:00.0)
> 
> cat /etc/init.d/boot.local
> 	(empty)
> 
> 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
> 
> reboot
> dmesg | grep -i seiz
> 	[    2.083424] pciback 0000:03:00.0: seizing device
> 
> readlink //sys/bus/pci/devices/0000:02:00.0/driver
> 	../../../../bus/pci/drivers/r8169
> 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
> 
> ######################
> case 3)
> 
> grep pci /boot/grub/menu.lst
>     module /vmlinuz-xen ...
>     pci=resource_aligment=0000:02:00.0;0000:03:0.0
>     pciback.hide=(0000:02:00.0)(0000:03:00.0)
> 
> cat /etc/init.d/boot.local
> 	(empty)
> 
> cat /etc/modprobe.d/99-local.conf
> 	(empty)
> 
> reboot
> dmesg | grep -i seiz
> 	[    2.077673] pciback 0000:03:00.0: seizing device
> 
> readlink //sys/bus/pci/devices/0000:02:00.0/driver
> 	../../../../bus/pci/drivers/r8169
> 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
> 
> ######################
> case 3)
> 
> 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

Yeeey! No idea why the previous steps didn't assign it to pciback. Looks like
it is ignoring your wishes from /etc/modprobe.d/* files.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-02-03 17:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-02-02  5:03 how to PCI-passthrough 1 card to a DomU when another @ Dom0 uses the same driver? dev001
2011-02-02 20:27 ` Konrad Rzeszutek Wilk
2011-02-02 21:43   ` dev001
2011-02-02 22:26     ` dev001
2011-02-03 16:26     ` Konrad Rzeszutek Wilk
2011-02-03 17:12       ` dev001
2011-02-03 17:42         ` Konrad Rzeszutek Wilk

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.