WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] PCI Passthru: fn0 exported but not fn1

To: Keir Fraser <keir@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] PCI Passthru: fn0 exported but not fn1
From: Jambunathan K <jambunathan@xxxxxxxxxx>
Date: Wed, 29 Aug 2007 19:48:31 +0530
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>, Stefan Neuwirth <neuwirt-xen-devel@xxxxxxxxxxxxxxxxxxxxxx>, Sanjeev Jorapur <sanjeev@xxxxxxxxxx>
Delivery-date: Wed, 29 Aug 2007 07:19:18 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C2FA6F3A.D05F%keir@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <C2FA6F3A.D05F%keir@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.6 (Windows/20070728)
Keir Fraser wrote:
>> As I worte accidently direct to Keir and not to the list, I face the
>> same problem. I'd like to have option 1, because it worked fine and I
>> don't see a benefit of having a dummy device in the domU.
>>
>> Dedecating single fnX to a domain is very usefull for example to give
>> the domUs ethernets of a four port card. I'm also running one domU
>> that is only using one of the USB 1.x controllers of a USB PCI addon
>> card.
> 
> Okay, if you want to check out the 'fix' to revert behaviour to that of
> 3.0.4 for yourselves, it is to edit
> linux/include/asm-i386/mach-xen/asm/pci.h and to change the definition
> therein of pcibios_scan_all_fns() from 0 to 1.
> 
> If you are building a 64-bit kernel then of course it is the file in
> include/asm-x86_64 that you need to edit.
> 
> Make that change and rebuild you domU. Additionally, make sure you build
> dom0 with pciback in passthrough mode. Hopefully your problems will be gone!


I am using x86_64.

Just to be sure I 'fixed'
linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pci.h and  made a
clean build from xen source tar. I ensured that BACKEND_PASS is set to yes.

I am using the same vmlinuz both on Dom0 and Dom1. I am seeing that
lspci in Dom1 *doesn't* report the exported non-zero function.


XEN-PROTO-SUSE $ cat
linux-2.6.18-xen/include/asm-x86_64/mach-xen/asm/pci.h | grep scan
/* Can be used to override the logic in pci_scan_bus for skipping
#define pcibios_scan_all_fns(a, b)      1
struct pci_bus * pcibios_scan_root(int bus);


XEN-PROTO-SUSE $ cat
linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/pci.h | grep scan
/* Can be used to override the logic in pci_scan_bus for skipping
#define pcibios_scan_all_fns(a, b)      1
struct pci_bus * pcibios_scan_root(int bus);

XEN-PROTO-SUSE $ uname -a
Linux xen2 2.6.18-xen-310-new-xen #2 SMP Wed Aug 29 08:44:29 EDT 2007
x86_64 x86_64 x86_64 GNU/Linux


XEN-PROTO-RHEL $ dmesg | grep pcifront

Bootdata ok (command line is root=/dev/sda10 pcifront.verbose_request=1)
Kernel command line: root=/dev/sda10 pcifront.verbose_request=1
pcifront pci-0: Installing PCI frontend
pcifront pci-0: Creating PCI Frontend Bus 0000:04
pcifront pci-0: read dev=0000:04:00.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:01.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:02.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:03.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:04.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:05.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:06.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:07.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:08.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:09.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:0a.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:0b.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:0c.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:0d.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:0e.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:0f.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:10.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:11.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:12.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:13.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:14.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:15.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:16.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:17.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:18.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:19.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:1a.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:1b.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:1c.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:1d.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:1e.0 - offset 0 size 4
pcifront pci-0: read dev=0000:04:1f.0 - offset 0 size 4

XEN-PROTO-SUSE $ xenstore-ls /local/domain/0/backend/pci
13 = ""
 0 = ""
  domain = "pvm-guest-1"
  frontend = "/local/domain/13/device/pci/0"
  uuid = "e294e348-fc0a-9bf1-fcf9-93f9665505bd"
  dev-0 = "0000:04:00.01"
  state = "4"
  online = "1"
  frontend-id = "13"
  num_devs = "1"
  root-0 = "0000:04"
  root_num = "1"

XEN-PROTO-SUSE $ xenstore-ls /local/domain/13/device/pci
0 = ""
 state = "4"
 backend-id = "0"
 backend = "/local/domain/0/backend/pci/13/0"
 pci-op-ref = "8"
 event-channel = "6"
 magic = "7"

XEN-PROTO-SUSE $ xm list --long
(domain
    (domid 0)
    (on_crash restart)
    (uuid 00000000-0000-0000-0000-000000000000)
    (bootloader_args )
    (vcpus 8)
    (name Domain-0)
    (on_poweroff destroy)
    (on_reboot restart)
    (bootloader )
    (maxmem 16777215)
    (memory 1600)
    (shadow_memory 0)
    (cpu_weight 256)
    (cpu_cap 0)
    (features )
    (on_xend_start ignore)
    (on_xend_stop ignore)
    (cpu_time 301.173107752)
    (online_vcpus 8)
    (image (linux (kernel ) (rtc_timeoffset 0)))
    (status 2)
    (state r-----)
)
(domain
    (domid 13)
    (on_crash restart)
    (uuid 0b2b804f-e5ed-f046-ae7e-819037019c21)
    (bootloader_args )
    (vcpus 1)
    (name pvm-guest-1)
    (on_poweroff destroy)
    (on_reboot restart)
    (bootloader )
    (maxmem 1700)
    (memory 1700)
    (shadow_memory 0)
    (cpu_weight 256)
    (cpu_cap 0)
    (features )
    (on_xend_start ignore)
    (on_xend_stop ignore)
    (start_time 1188396494.65)
    (cpu_time 7.201405283)
    (online_vcpus 1)
    (image
        (linux
            (kernel /boot/xen310-new/vmlinuz-2.6.18-xen-310-new-xen)
            (ramdisk /boot/xen310-new/initrd-2.6.18-xen-310-new-xen.img)
            (args 'root=/dev/sda10 pcifront.verbose_request=1')
            (rtc_timeoffset 0)
            (notes
                (FEATURES

'writable_page_tables|writable_descriptor_tables|auto_translated_physmap|pae_pgdir_above_4gb|supervisor_mode_kernel'
                )
                (VIRT_BASE -2147483648)
                (GUEST_VERSION 2.6)
                (PADDR_OFFSET -2147483648)
                (GUEST_OS linux)
                (HYPERCALL_PAGE -2145361920)
                (LOADER generic)
                (SUSPEND_CANCEL 1)
                (ENTRY -2145386496)
                (XEN_VERSION xen-3.0)
            )
        )
    )
    (status 2)
    (state -b----)
    (store_mfn 1400305)
    (console_mfn 1400304)
    (device
        (vif
            (bridge xenbr0)
            (uuid 65d1b021-70ff-d673-d59c-15a1432edfd4)
            (script vif-bridge)
            (mac aa:cc:00:00:00:01)
            (type netfront)
            (backend 0)
        )
    )
    (device
        (vbd
            (uname phy:VolGroup00/LogVol01)
            (uuid f1abc318-00cf-8d70-4a98-7b6b3c8e7630)
            (mode w)
            (dev sda10:disk)
            (backend 0)
            (bootable 1)
        )
    )
    (device
        (vbd
            (uname phy:VolGroup00/LogVol00)
            (uuid 04fb2c99-e334-5efe-40e5-8fba96340f74)
            (mode w)
            (dev sda11:disk)
            (backend 0)
            (bootable 0)
        )
    )
    (device
        (console
            (protocol vt100)
            (location 2)
            (uuid 42e6c974-c273-7225-edf3-1812c2410fd1)
        )
    )
    (device
        (pci
            (dev (slot 0x00) (bus 0x04) (domain 0x0000) (func 0x01))
            (uuid e294e348-fc0a-9bf1-fcf9-93f9665505bd)
            (backend 0)
        )
    )
)



Regards,
Jambunathan K.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel