From: Jambunathan K <jambunathan@netxen.com>
To: Keir Fraser <keir@xensource.com>
Cc: xen-devel <xen-devel@lists.xensource.com>,
Stefan Neuwirth <neuwirt-xen-devel@trillian.hd.shuttle.de>,
Sanjeev Jorapur <sanjeev@netxen.com>
Subject: Re: PCI Passthru: fn0 exported but not fn1
Date: Wed, 29 Aug 2007 19:48:31 +0530 [thread overview]
Message-ID: <46D58037.7010007@netxen.com> (raw)
In-Reply-To: <C2FA6F3A.D05F%keir@xensource.com>
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.
next parent reply other threads:[~2007-08-29 14:18 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <C2FA6F3A.D05F%keir@xensource.com>
2007-08-29 14:18 ` Jambunathan K [this message]
2007-08-29 14:26 ` PCI Passthru: fn0 exported but not fn1 Keir Fraser
2007-08-30 10:11 ` Jambunathan K
2007-08-30 10:19 ` Keir Fraser
2007-08-30 14:45 ` Jambunathan K
2007-08-29 18:27 ` Stefan Neuwirth
2007-08-23 19:04 Jambunathan K
2007-08-24 14:42 ` Keir Fraser
2007-08-24 14:58 ` Jambunathan K
2007-08-24 15:01 ` Keir Fraser
2007-08-26 16:19 ` Jambunathan K
2007-08-27 14:08 ` Jambunathan K
2007-08-27 15:22 ` Keir Fraser
2007-08-27 15:27 ` Jambunathan K
2007-08-27 15:40 ` Keir Fraser
2007-08-27 15:58 ` Jambunathan K
2007-08-27 16:14 ` Keir Fraser
2007-08-27 16:34 ` Jambunathan K
2007-08-27 16:42 ` Keir Fraser
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=46D58037.7010007@netxen.com \
--to=jambunathan@netxen.com \
--cc=keir@xensource.com \
--cc=neuwirt-xen-devel@trillian.hd.shuttle.de \
--cc=sanjeev@netxen.com \
--cc=xen-devel@lists.xensource.com \
/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.