|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] xen + ovmf + pci passthrough possible?
Thank you John for your answer! Kind of managed to miss them. I'll take
a look at it this weekend.
many greetings
On 13.04.2018 03:10, John Thomson wrote:
> 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
>
>
>
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-users
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |