[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] xen + ovmf + pci passthrough possible?
On Sat, 7 Apr 2018, at 00:16, tseegerkrb wrote: > a short question about the efi bios and pci passthrough. It is possible > to passthrough a pci device to a domu with ovmf bios? Hi, I have been looking into this recently as well. I did get it to work in a very simple setup. USB ports on motherboard passed through and working in OVMF linux guest. Environment: - i7-2600 - motherboard USB ports PCI device passthrough - ArchLinux ISO for guest - Xen staging 641f9ce2fa, with more debug messages here and there I have found: - My test PCI device requires relaxed mode: xl dmesg: [VT-D] It's disallowed to assign 0000:00:1d.0 with shared RMRR at bdbb8000 for Dom13. - domU xl.cfg rdm="strategy=host,policy=relaxed" requires significantly more guest memory (+2.1GB) for OVMF than Seabios: xl dmesg: (d20) [2018-04-05 05:29:03] ovmf_load mem_hole_populate_ram ffec0 (d20) [2018-04-05 05:29:03] HVMLoader mem_hole_populate_ram started (d20) [2018-04-05 05:29:03] mfn: ffec0 (d20) [2018-04-05 05:29:03] not over_allocated (XEN) [2018-04-05 05:29:03] d20v0 Over-allocation for domain 20: 256257 > 256256 (XEN) [2018-04-05 05:29:03] memory.c:242:d20v0 Could not allocate order=0 extent: id=20 memflags=0 (0 of 1) (XEN) [2018-04-05 05:29:03] memory.c:244:d20v0 mfn 0x100000004 (d20) [2018-04-05 05:29:03] hvm_info->high_mem_pgend (XEN) [2018-04-05 05:29:03] /build/xen-git/src/xen/xen/include/asm/mm.h:384:d20v0 Could not get page ref for mfn ffffffffffffffff (d20) [2018-04-05 05:29:03] *** HVMLoader bug at util.c:442 (d20) [2018-04-05 05:29:03] *** HVMLoader crashed. The Over-allocation number here (256256) = hex 0x3e900 is very similar to the xl -vvv create xc_dom_mem_init: 0x3e000 pages xl -vvv create domainbuilder: detail: loader probe OK xc: detail: ELF: phdr: paddr=0x100000 memsz=0x8cc84 xc: detail: ELF: memory: 0x100000 -> 0x18cc84 domainbuilder: detail: xc_dom_mem_init: mem 992 MB, pages 0x3e000 pages, 4k each domainbuilder: detail: xc_dom_mem_init: 0x3e000 pages domainbuilder: detail: xc_dom_boot_mem_init: called domainbuilder: detail: range: start=0x0 end=0x3e000000 domainbuilder: detail: xc_dom_malloc : 1984 kB xc: detail: PHYSICAL MEMORY ALLOCATION: xc: detail: 4KB PAGES: 0x0000000000000200 xc: detail: 2MB PAGES: 0x00000000000001ef xc: detail: 1GB PAGES: 0x0000000000000000 - Once I have enough memory allocated, OVMF is very slow to start. OVMF stalls for around 30 seconds, before continuing: In this time, VNC displays: Guest has not initialized the display (yet). OVMF debug build with domU xl.cfg: device_model_args=[ "-debugcon", "file:debug.log", "-global", "isa-debugcon.iobase=0x402"] shows: SecCoreStartupWithStack(0xFFFCC000, 0x820000) OVMF can take around 10 minutes with VNC blank between showing the Tianocore logo, and the ISO boot menu. - ISO load: hdtype="ahci" "/mnt/iso/archlinux-2018.03.01-x86_64.iso, raw, xvda, cdrom" - sometimes normal boot, sometimes mount root from initram fails, in both OVMF or SeaBIOS - have not worked out why: - It happens with no PCI devices passed through, when rdm="strategy=host,policy=relaxed" - I have not seen it happen without: rdm="strategy=host,policy=relaxed" - sometimes cdrom is /dev/sda{1,2} instead of /dev/sr0 in booted guest. - in root mount fail: /dev/disk/by-label/ARCH_201803 will point to ../../sda2: vbd vbd-51712: failed to write error node for device/vbd/51712 (19) xenbus_dev_probe on device/vbd/51712 Falling back to interactive prompt. Manually continue boot with: mount /dev/sda1 /run/archiso/bootmnt; exit - SeaBIOS sometimes has /dev/sr0 ls -l /dev/disk/by-label/ARCH_201803 lrwxrwxrwx 1 root root 9 Apr 13 00:00 /dev/disk/by-label/ARCH_201803 -> ../../sr0 lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 442.1M 1 loop /run/archiso/sfs/airootfs sr0 11:0 1 551M 0 rom /run/archiso/bootmnt - SeaBIOS sometimes has /dev/sda{1,2} lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 442.1M 1 loop /run/archiso/sfs/airootfs sda 8:0 0 551M 0 disk ├─sda1 8:1 0 551M 0 part /run/archiso/bootmnt └─sda2 8:2 0 256M 0 part - OVMF with 3100 memory: sda 8:0 0 551M 0 disk ├─sda1 8:1 0 551M 0 part /run/archiso/bootmnt └─sda2 8:2 0 256M 0 part Guest config: name="test_arch.cfg" type="hvm" memory=3100 bios="ovmf" device_model_args=[ "-debugcon", "file:debug.log", "-global", "isa-debugcon.iobase=0x402"] hdtype="ahci" disk=[ "/mnt/iso/archlinux-2018.03.01-x86_64.iso, raw, xvda, cdrom" ] vif=[ "mac=00:16:3e:5f:1a:a2" ] vnclisten="0.0.0.0" vncunused=1 vncpasswd="pass" rdm="strategy=host,policy=relaxed" pci=[ "00:1d.0,seize=1" ] A more complicated OVMF (for this test, commit 6d2d2e6e5b) PCI passthrough setup with multiple devices failed I only tried this once, and have not looked any further into it yet OVMF debug log ended with: InitRootBridge: populated root bus 0, with room for 0 subordinate bus(es) RootBridge: PciRoot(0x0) Support/Attr: 7007F / 7007F DmaAbove4G: No NoExtConfSpace: Yes AllocAttr: 0 () Bus: 0 - 0 Io: C000 - C34F Mem: F30A8000 - F30AA4FF MemAbove4G: F3040000 - F30A7FFF PMem: F0000000 - F2FFFFFF PMemAbove4G: E0000000 - EFFFFFFF ASSERT /build/ovmf/src/edk2/MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciRootBridgeIo.c(106): Bridge->MemAbove4G.Base >= 0x0000000100000000ULL -- John Thomson _______________________________________________ Xen-users mailing list Xen-users@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |