On Mon, Dec 15, 2008 at 6:36 PM, Benjamin Huntsman
<BHuntsman@xxxxxxxxxxxxxxxxxxxxx> wrote:
> Hi all!
> I'm hoping someone here might be able to help. I'm familiar with several
> UNIX'es, though farily new to Linux...
> I'm running RHEL 5.2. I've got the RHEL kernel headers installed, etc, and
> compiled xen-3.3.
> Once that was built, I rebuilt libvirt, etc, the kernel, and all the modules.
> The whole mess boots and runs fine... mostly.
>
> My hardware is a Dell OptiPlex 745, Intel Core2 Duo, though the board doesn't
> have VT-d capabilities. Vitalization is otherwise enabled in the BIOS. I
> have a PCI NIC and PCI VGA card I want to pass through to a guest. I have
> pciback built as a module, and it's preloaded in my initrd.
>
> As I understand it though, even w/o VT-d, I should still be able to do PCI
> passthrough, right?
>
Yes, as long as you understand the security implications (i.e driver
DMA to memory it doesn't own)
> Here's the config details (pardon the verbosity):
>
> from /boot/grub/menu.lst:
> ...
> title Red Hat Enterprise Linux Server (2.6.18-92.1.18.el6xen)(Xen-3.3.0)
> root (hd0,1)
> kernel /xen-3.3.0.gz iommu=1 vtd=1
I am pretty sure that you don't want the iommu line in here, since you
don't have
an iommu
> module /vmlinuz-2.6.18-92.1.18.el5xen ro root=/dev/VolGroup00/LogVol00
> rhgb quiet
instead of doing the modprobe below, you could instead pass the pciback.hide
on the dom0 command line. It should give a similar effect, but still
worth a shot.
> module /initrd-2.6.18-92.1.18.el5xen.img
> ...
>
> from /etc/modprobe.conf:
> ...
> install e100 /sbin/modprobe pciback ; /sbin/modprobe --first-time
> --ignore-install e100
> options pciback hide=(04:00.0)(04:02.0)
> ...
>
> [root@hx80kc1 ~]# dmesg | grep pciback
> pciback 0000:04:02.0: seizing device
> pciback 0000:04:00.0: seizing device
> [root@hx80kc1 ~]#
>
> [root@hx80kc1 ~]# xm dmesg
> __ __ _____ _____ ___
> \ \/ /___ _ __ |___ / |___ / / _ \
> \ // _ \ '_ \ |_ \ |_ \| | | |
> / \ __/ | | | ___) | ___) | |_| |
> /_/\_\___|_| |_| |____(_)____(_)___/
>
> (XEN) Xen version 3.3.0 (root@xxxxxxxxxxxxxxx) (gcc version 4.1.2 20071124
> (Red Hat 4.1.2-42)) Fri Dec 5 17:21:39 PST 2008
> (XEN) Latest ChangeSet: unavailable
> (XEN) Command line: iommu=1 vtd=1
> (XEN) Video information:
> (XEN) VGA is text mode 80x25, font 8x16
> (XEN) VBE/DDC methods: V2; EDID transfer time: 1 seconds
> (XEN) Disc information:
> (XEN) Found 1 MBR signatures
> (XEN) Found 1 EDD information structures
> (XEN) Xen-e820 RAM map:
> (XEN) 0000000000000000 - 000000000009fc00 (usable)
> (XEN) 00000000000f0000 - 0000000000100000 (reserved)
> (XEN) 0000000000100000 - 00000000bfdffc00 (usable)
> (XEN) 00000000bfdffc00 - 00000000bfe01c00 (ACPI NVS)
> (XEN) 00000000bfe03c00 - 00000000bfe53c00 (reserved)
> (XEN) 00000000bfe53c00 - 00000000bfe55c00 (ACPI data)
> (XEN) 00000000bfe55c00 - 00000000c0000000 (reserved)
> (XEN) 00000000e0000000 - 00000000f0000000 (reserved)
> (XEN) 00000000fec00000 - 00000000fed00400 (reserved)
> (XEN) 00000000fed20000 - 00000000feda0000 (reserved)
> (XEN) 00000000fee00000 - 00000000fef00000 (reserved)
> (XEN) 00000000ffb00000 - 0000000100000000 (reserved)
> (XEN) 0000000100000000 - 000000013c000000 (usable)
> (XEN) System RAM: 4029MB (4126328kB)
> (XEN) ACPI: RSDP 000FEBF0, 0024 (r2 DELL )
> (XEN) ACPI: XSDT 000FCE90, 006C (r1 DELL B8K 14 ASL 61)
> (XEN) ACPI: FACP 000FCFB8, 00F4 (r3 DELL B8K 14 ASL 61)
> (XEN) ACPI: DSDT FFF69C33, 4757 (r1 DELL dt_ex 1000 INTL 20050624)
> (XEN) ACPI: FACS BFDFFC00, 0040
> (XEN) ACPI: SSDT FFF6E662, 009A (r1 DELL st_ex 1000 INTL 20050624)
> (XEN) ACPI: APIC 000FD0AC, 0092 (r1 DELL B8K 14 ASL 61)
> (XEN) ACPI: BOOT 000FD13E, 0028 (r1 DELL B8K 14 ASL 61)
> (XEN) ACPI: ASF! 000FD166, 0092 (r32 DELL B8K 14 ASL 61)
> (XEN) ACPI: MCFG 000FD1F8, 003E (r1 DELL B8K 14 ASL 61)
> (XEN) ACPI: HPET 000FD236, 0038 (r1 DELL B8K 14 ASL 61)
> (XEN) ACPI: TCPA 000FD492, 0032 (r1 DELL B8K 14 ASL 61)
> (XEN) ACPI: SLIC 000FD26E, 0176 (r1 DELL B8K 14 ASL 61)
> (XEN) Xen heap: 14MB (14624kB)
> (XEN) Domain heap initialised
> (XEN) Processor #0 6:15 APIC version 20
> (XEN) Processor #1 6:15 APIC version 20
> (XEN) IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
> (XEN) Enabling APIC mode: Flat. Using 1 I/O APICs
> (XEN) Using scheduler: SMP Credit Scheduler (credit)
> (XEN) Detected 2126.508 MHz processor.
> (XEN) HVM: VMX enabled
> (XEN) CPU0: Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz stepping 06
> (XEN) Booting processor 1/1 eip 8c000
> (XEN) CPU1: Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz stepping 06
> (XEN) Total of 2 processors activated.
> (XEN) ENABLING IO-APIC IRQs
> (XEN) -> Using new ACK method
> (XEN) checking TSC synchronization across 2 CPUs: passed.
> (XEN) Platform timer is 14.318MHz HPET
> (XEN) Brought up 2 CPUs
> (XEN) I/O virtualisation disabled
> (XEN) *** LOADING DOMAIN 0 ***
> (XEN) Xen kernel: 64-bit, lsb, compat32
> (XEN) Dom0 kernel: 64-bit, lsb, paddr 0xffffffff80200000 ->
> 0xffffffff807014e4
> (XEN) PHYSICAL MEMORY ARRANGEMENT:
> (XEN) Dom0 alloc.: 0000000134000000->0000000136000000 (969614 pages to be
> allocated)
> (XEN) VIRTUAL MEMORY ARRANGEMENT:
> (XEN) Loaded kernel: ffffffff80200000->ffffffff807014e4
> (XEN) Init. ramdisk: ffffffff80702000->ffffffff80ea6000
> (XEN) Phys-Mach map: ffffffff80ea6000->ffffffff8161bc70
> (XEN) Start info: ffffffff8161c000->ffffffff8161c4a4
> (XEN) Page tables: ffffffff8161d000->ffffffff8162c000
> (XEN) Boot stack: ffffffff8162c000->ffffffff8162d000
> (XEN) TOTAL: ffffffff80000000->ffffffff81800000
> (XEN) ENTRY ADDRESS: ffffffff80200000
> (XEN) Dom0 has maximum 2 VCPUs
> (XEN) Scrubbing Free RAM: .done.
> (XEN) Xen trace buffers: disabled
> (XEN) Std. Loglevel: Errors and warnings
> (XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
> (XEN) Xen is relinquishing VGA console.
> (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to
> Xen)
> (XEN) Freed 108kB init memory.
> (XEN) mtrr: type mismatch for c0000000,1000000 old: write-back new:
> write-combining
> (XEN) mtrr: type mismatch for c0000000,1000000 old: write-back new:
> write-combining
> [root@hx80kc1 ~]#
>
> [root@hx80kc1 ~]# lspci
> ...
> 04:00.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100
> (rev 05)
> ...
> 04:02.0 VGA compatible controller: nVidia Corporation NV5M64 [RIVA TNT2 Model
> 64/Model 64 Pro] (rev 15)
> ...
> [root@hx80kc1 ~]#
>
> [root@hx80kc1 ~]# lspci -n
> ...
> 04:00.0 0200: 8086:1229 (rev 05)
> 04:02.0 0300: 10de:002d (rev 15)
> #
>
> # tail -n 10 /etc/xen/xend-pci-permissive.sxp
> # (unconstrained_dev_ids
> # ('XXXX:XXXX:XXXX:XXXX' # existing entry
> # 'YYYY:YYYY:YYYY:YYYY' # new entry 1
> # 'ZZZZ:ZZZZ') # new entry 2
> # )
> ###############################################################################
> (unconstrained_dev_ids
> #('0123:4567:89AB:CDEF')
> ('10de:002d')
> )
> [root@hx80kc1 ~]#
>
> [root@hx80kc1 ~]# grep pci /etc/xen/winxp
> pci = [ "04:00.0" ]
> [root@hx80kc1 ~]#
>
> [root@hx80kc1 ~]# xm pci-list-assignable-devices
I'm not sure it this command is setup to work with anything
other than the VT-d stuff.
> [root@hx80kc1 ~]#
>
> [root@hx80kc1 ~]# xm create /etc/xen/winxp
> Using config file "/etc/xen/winxp".
> Error: failed to assign device: maybe the platform doesn't support VT-d, or
> VT-d
> isn't enabled properly?
I think you are getting this error because you passed iommu=1
> [root@hx80kc1 ~]#
>
>
> --------------------------------------
> Okay, there's as much detail as I can think to include right now. I'm
> concerned that 'xm dmesg' shows the following message:
> (XEN) I/O virtualisation disabled
> Thoung I don't know if that would actually prevent PCI passthrough.
>
> So, how do I get the PCI card passed through to my hvm domain? What am I
> missing?
>
You can't pass to a HVM domain without VT-d. You can only pass to a PV guest.
Hope that helps.
Cheers,
Todd
--
Todd Deshane
http://todddeshane.net
http://runningxen.com
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-users
|