Devel
Threads by month
- ----- 2026 -----
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
January 2026
- 51 participants
- 117 discussions
From: Nathan Chen <nathanc(a)nvidia.com>
Hi,
This is a follow up to the second patch series [0] for using iommufd
to propagate DMA mappings to the kernel for VM-assigned host
devices in a qemu VM.
We add a new 'iommufd' attribute for hostdev devices to be
associated with the iommufd object.
For instance, specifying the iommufd object and associated hostdev in a
VM definition:
<devices>
...
<hostdev mode='subsystem' type='pci' managed='no'>
<driver iommufd='yes'/>
<source>
<address domain='0x0009' bus='0x01' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x15' slot='0x00' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='no'>
<driver iommufd='yes'/>
<source>
<address domain='0x0019' bus='0x01' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x16' slot='0x00' function='0x0'/>
</hostdev>
...
</devices>
This would get translated to a qemu command line with the arguments below.
Note that libvirt will open the /dev/iommu and VFIO cdev, passing the
associated fd number to qemu:
-object '{"qom-type":"iommufd","id":"iommufd0","fd":"24"}' \
-device '{"driver":"vfio-pci","host":"0009:01:00.0","id":"hostdev0","iommufd":"iommufd0","fd":"22","bus":"pci.21","addr":"0x0"}' \
-device '{"driver":"vfio-pci","host":"0019:01:00.0","id":"hostdev1","iommufd":"iommufd0","fd":"25","bus":"pci.22","addr":"0x0"}' \
Changes from v2:
- Set per-process memory accounting mode for iommufd
- Separated out formatting of iommufd object from qemuBuildHostdevCommandLine
- Placed hostdev private data implementation in a separate commit
- Allocate hostdev private data unconditionally
- Compare FDs against -1
- Integrated callback function in virQEMUDriverPrivateDataCallbacks for qemuDomainHostdevPrivateNew
- Dropped qemuProcessCloseVfioFds
- Addressed other feedback from v2 (formatting, includes, etc.)
- Revised seclabel logic to be device-specific for AppArmor and to allow paths for SELinux/DAC
Thanks to Ján Tomko for sharing some of the above changes in a personal repo. I have included
changes directly from that repo and added Suggested-by or Signed-off-by tags on various commits
containing the changes.
This series is on Github:
https://github.com/NathanChenNVIDIA/libvirt/tree/iommufd-12-25
Thanks,
Nathan
[0] https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/KFYU…
Signed-off-by: Nathan Chen <nathanc(a)nvidia.com>
Nathan Chen (7):
qemu: Implement support for associating iommufd to hostdev
qemu: Introduce privateData for hostdevs
qemu: open VFIO FDs from libvirt backend
qemu: open iommufd FD from libvirt backend
qemu: Set per-process memory accounting for iommufd
qemu: Update Cgroup, namespace, and seclabel for iommufd
tests: qemuxmlconfdata: provide iommufd sample XML and CLI args
cover letter: qemu: Implement support for iommufd
docs/formatdomain.rst | 7 +
po/POTFILES | 1 +
src/bhyve/bhyve_parse_command.c | 2 +-
src/conf/device_conf.c | 11 ++
src/conf/device_conf.h | 1 +
src/conf/domain_conf.c | 13 +-
src/conf/domain_conf.h | 5 +-
src/conf/schemas/basictypes.rng | 5 +
src/libvirt_private.syms | 4 +
src/libxl/xen_common.c | 2 +-
src/libxl/xen_xl.c | 2 +-
src/lxc/lxc_native.c | 2 +-
src/qemu/qemu_cgroup.c | 26 ++--
src/qemu/qemu_command.c | 74 ++++++++++
src/qemu/qemu_domain.c | 41 ++++++
src/qemu/qemu_domain.h | 20 +++
src/qemu/qemu_namespace.c | 16 ++-
src/qemu/qemu_process.c | 126 ++++++++++++++++++
src/security/security_apparmor.c | 33 ++++-
src/security/security_dac.c | 60 +++++++--
src/security/security_selinux.c | 58 ++++++--
src/security/virt-aa-helper.c | 32 ++++-
src/util/meson.build | 1 +
src/util/viriommufd.c | 89 +++++++++++++
src/util/viriommufd.h | 23 ++++
src/util/virpci.c | 69 ++++++++++
src/util/virpci.h | 2 +
src/vbox/vbox_common.c | 2 +-
.../iommufd-q35.x86_64-latest.args | 41 ++++++
.../iommufd-q35.x86_64-latest.xml | 60 +++++++++
tests/qemuxmlconfdata/iommufd-q35.xml | 38 ++++++
.../iommufd-virt.aarch64-latest.args | 33 +++++
.../iommufd-virt.aarch64-latest.xml | 34 +++++
tests/qemuxmlconfdata/iommufd-virt.xml | 22 +++
.../iommufd.x86_64-latest.args | 35 +++++
.../qemuxmlconfdata/iommufd.x86_64-latest.xml | 38 ++++++
tests/qemuxmlconfdata/iommufd.xml | 30 +++++
tests/qemuxmlconftest.c | 33 +++++
tests/virhostdevtest.c | 2 +-
39 files changed, 1031 insertions(+), 62 deletions(-)
create mode 100644 src/util/viriommufd.c
create mode 100644 src/util/viriommufd.h
create mode 100644 tests/qemuxmlconfdata/iommufd-q35.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommufd-q35.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-q35.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-virt.aarch64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommufd-virt.aarch64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommufd-virt.xml
create mode 100644 tests/qemuxmlconfdata/iommufd.x86_64-latest.args
create mode 100644 tests/qemuxmlconfdata/iommufd.x86_64-latest.xml
create mode 100644 tests/qemuxmlconfdata/iommufd.xml
--
2.43.0
3
19
Roman Bogorodskiy (3):
conf: introduce CTL storage type
bhyve: add virtio-scsi support
docs: bhyve: document virtio-scsi support
docs/drvbhyve.rst | 19 +++++
docs/formatdomain.rst | 5 ++
src/bhyve/bhyve_command.c | 73 ++++++++++++++++++-
src/bhyve/bhyve_device.c | 1 +
src/bhyve/bhyve_process.c | 1 +
src/ch/ch_monitor.c | 1 +
src/conf/domain_conf.c | 7 ++
src/conf/schemas/domaincommon.rng | 13 ++++
src/conf/storage_source_conf.c | 6 +-
src/conf/storage_source_conf.h | 1 +
src/libxl/xen_xl.c | 1 +
src/qemu/qemu_block.c | 2 +
src/qemu/qemu_command.c | 1 +
src/qemu/qemu_migration.c | 3 +
src/qemu/qemu_process.c | 1 +
src/qemu/qemu_snapshot.c | 4 +
src/qemu/qemu_validate.c | 1 +
src/storage_file/storage_source.c | 1 +
.../bhyvexml2argv-virtio-scsi.args | 10 +++
.../bhyvexml2argv-virtio-scsi.ldargs | 4 +
.../bhyvexml2argv-virtio-scsi.xml | 21 ++++++
tests/bhyvexml2argvtest.c | 1 +
.../bhyvexml2xmlout-virtio-scsi.xml | 32 ++++++++
tests/bhyvexml2xmltest.c | 1 +
24 files changed, 205 insertions(+), 5 deletions(-)
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-virtio-scsi.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-virtio-scsi.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-virtio-scsi.xml
create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-virtio-scsi.xml
--
2.52.0
2
6
This series includes a minimal number of changes to allow running
bhyve arm64 guests.
Bhyve on amd64 and arm64 has slightly different sets of supported
devices, and a different syntax for some devices. Specifically,
bootrom and consoles are configured without the LPC controller,
used for amd64, but using the "-o" argument, i.e. "-o bootrom=<bootrom>"
and "-o console=<console>".
This series moves quite a significant amount of test data files.
I tried to isolate that into separate commit with a minimal
set of related changes.
While this series enables running arm64, there are more items to work
on:
- On arm64, bhyve normally uses
/usr/local/share/u-boot/u-boot-bhyve-arm64/u-boot.bin
bootrom. Autofill code should be updated to automatically use
that if no path was specified.
- Bhyve capabilities probing uses `bhyve -s 0,<device>` and parsing
error message to see if a device is supported. Using `bhyve -s help`
that lists supported devices should be more accurate and robust.
- UTC clock is not supported on bhyve/arm64. I wasn't able to figure
out yet how to make libvirt not using it by default, so currently
arm64 guests require <clock offset='localtime'/>
I plan to address these issues in a separate series.
Roman Bogorodskiy (9):
bhyve: capabilities: fix for arm64
bhyve: tests: support arch-dependent tests
bhyve: domain: require ISA controller on x86_64 only
bhyve: command: handle arm64 console
bhyve: command: make -H and -P args amd64-only
bhyve: command: handle arm64 bootloader
bhyve: tests: prepare for arm64 xml2xml tests
bhyve: tests: add xml2xml arm64 tests
bhyve: report domain capabilities for arm64
src/bhyve/bhyve_capabilities.c | 5 +-
src/bhyve/bhyve_command.c | 92 ++++++++++++-------
src/bhyve/bhyve_domain.c | 3 +
src/bhyve/bhyve_driver.c | 2 +-
src/bhyve/bhyve_firmware.c | 3 +
.../aarch64/bhyvexml2argv-base.args | 8 ++
.../bhyvexml2argv-base.ldargs} | 0
.../aarch64/bhyvexml2argv-base.xml | 23 +++++
.../aarch64/bhyvexml2argv-bootloader.args | 9 ++
.../bhyvexml2argv-bootloader.ldargs} | 0
.../aarch64/bhyvexml2argv-bootloader.xml | 24 +++++
.../aarch64/bhyvexml2argv-console.args | 9 ++
.../aarch64/bhyvexml2argv-console.ldargs | 7 ++
.../aarch64/bhyvexml2argv-console.xml | 26 ++++++
.../bhyvexml2argv-2-nvme-2-controllers.args | 0
.../bhyvexml2argv-2-nvme-2-controllers.ldargs | 0
.../bhyvexml2argv-2-nvme-2-controllers.xml | 0
.../bhyvexml2argv-2-nvme-same-controller.args | 0
...hyvexml2argv-2-nvme-same-controller.ldargs | 0
.../bhyvexml2argv-2-nvme-same-controller.xml | 0
.../bhyvexml2argv-4-consoles.args | 0
.../bhyvexml2argv-4-consoles.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-4-consoles.xml | 0
.../{ => x86_64}/bhyvexml2argv-acpiapic.args | 0
.../bhyvexml2argv-acpiapic.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-acpiapic.xml | 0
...ml2argv-addr-isa-controller-on-slot-1.args | 0
...2argv-addr-isa-controller-on-slot-1.ldargs | 0
...xml2argv-addr-isa-controller-on-slot-1.xml | 0
...l2argv-addr-isa-controller-on-slot-31.args | 0
...argv-addr-isa-controller-on-slot-31.ldargs | 0
...ml2argv-addr-isa-controller-on-slot-31.xml | 0
...xml2argv-addr-more-than-32-sata-disks.args | 0
...l2argv-addr-more-than-32-sata-disks.ldargs | 0
...exml2argv-addr-more-than-32-sata-disks.xml | 0
...hyvexml2argv-addr-multiple-sata-disks.args | 0
...vexml2argv-addr-multiple-sata-disks.ldargs | 0
...bhyvexml2argv-addr-multiple-sata-disks.xml | 0
...vexml2argv-addr-multiple-virtio-disks.args | 0
...xml2argv-addr-multiple-virtio-disks.ldargs | 0
...yvexml2argv-addr-multiple-virtio-disks.xml | 0
...-addr-no32devs-more-than-32-sata-disks.xml | 0
...rgv-addr-no32devs-multiple-sata-disks.args | 0
...v-addr-no32devs-multiple-sata-disks.ldargs | 0
...argv-addr-no32devs-multiple-sata-disks.xml | 0
...l2argv-addr-no32devs-single-sata-disk.args | 0
...argv-addr-no32devs-single-sata-disk.ldargs | 0
...ml2argv-addr-no32devs-single-sata-disk.xml | 0
...rgv-addr-non-isa-controller-on-slot-1.args | 0
...-addr-non-isa-controller-on-slot-1.ldargs} | 0
...argv-addr-non-isa-controller-on-slot-1.xml | 0
.../bhyvexml2argv-addr-single-sata-disk.args | 0
...bhyvexml2argv-addr-single-sata-disk.ldargs | 0
.../bhyvexml2argv-addr-single-sata-disk.xml | 0
...bhyvexml2argv-addr-single-virtio-disk.args | 0
...yvexml2argv-addr-single-virtio-disk.ldargs | 0
.../bhyvexml2argv-addr-single-virtio-disk.xml | 0
.../{ => x86_64}/bhyvexml2argv-base.args | 0
.../{ => x86_64}/bhyvexml2argv-base.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-base.xml | 0
.../bhyvexml2argv-bhyveload-bootorder.args | 0
.../bhyvexml2argv-bhyveload-bootorder.ldargs | 0
.../bhyvexml2argv-bhyveload-bootorder.xml | 0
.../bhyvexml2argv-bhyveload-bootorder1.args | 0
.../bhyvexml2argv-bhyveload-bootorder1.ldargs | 0
.../bhyvexml2argv-bhyveload-bootorder1.xml | 0
.../bhyvexml2argv-bhyveload-bootorder2.xml | 0
.../bhyvexml2argv-bhyveload-bootorder3.args | 0
.../bhyvexml2argv-bhyveload-bootorder3.ldargs | 0
.../bhyvexml2argv-bhyveload-bootorder3.xml | 0
.../bhyvexml2argv-bhyveload-bootorder4.xml | 0
.../bhyvexml2argv-bhyveload-bootorder5.xml | 0
.../bhyvexml2argv-bhyveload-explicitargs.args | 0
...hyvexml2argv-bhyveload-explicitargs.ldargs | 0
.../bhyvexml2argv-bhyveload-explicitargs.xml | 0
.../bhyvexml2argv-bhyveload-timeout.args | 0
.../bhyvexml2argv-bhyveload-timeout.ldargs | 7 ++
.../bhyvexml2argv-bhyveload-timeout.xml | 0
.../bhyvexml2argv-commandline.args | 0
.../bhyvexml2argv-commandline.ldargs | 0
.../bhyvexml2argv-commandline.xml | 0
...gv-console-master-slave-not-specified.args | 0
...-console-master-slave-not-specified.ldargs | 0
...rgv-console-master-slave-not-specified.xml | 0
.../{ => x86_64}/bhyvexml2argv-console.args | 0
.../{ => x86_64}/bhyvexml2argv-console.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-console.xml | 0
...yvexml2argv-cputopology-nvcpu-mismatch.xml | 0
.../bhyvexml2argv-cputopology.args | 0
.../bhyvexml2argv-cputopology.ldargs | 0
.../bhyvexml2argv-cputopology.xml | 0
.../bhyvexml2argv-custom-loader.args | 0
.../bhyvexml2argv-custom-loader.ldargs | 0
.../bhyvexml2argv-custom-loader.xml | 0
.../bhyvexml2argv-disk-cdrom-grub.args | 0
.../bhyvexml2argv-disk-cdrom-grub.devmap | 0
.../bhyvexml2argv-disk-cdrom-grub.ldargs | 0
.../bhyvexml2argv-disk-cdrom-grub.xml | 0
.../bhyvexml2argv-disk-cdrom.args | 0
.../bhyvexml2argv-disk-cdrom.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-disk-cdrom.xml | 0
.../bhyvexml2argv-disk-virtio-queue-opts.xml | 0
...hyvexml2argv-disk-virtio-rotation-rate.xml | 0
.../bhyvexml2argv-disk-virtio.args | 0
.../bhyvexml2argv-disk-virtio.ldargs | 0
.../bhyvexml2argv-disk-virtio.xml | 0
.../bhyvexml2argv-firmware-efi.args | 0
.../bhyvexml2argv-firmware-efi.ldargs} | 0
.../bhyvexml2argv-firmware-efi.xml | 0
.../bhyvexml2argv-fs-9p-readonly.args | 0
.../bhyvexml2argv-fs-9p-readonly.ldargs | 0
.../bhyvexml2argv-fs-9p-readonly.xml | 0
...exml2argv-fs-9p-unsupported-accessmode.xml | 0
...bhyvexml2argv-fs-9p-unsupported-driver.xml | 0
.../bhyvexml2argv-fs-9p-unsupported-type.xml | 0
.../{ => x86_64}/bhyvexml2argv-fs-9p.args | 0
.../{ => x86_64}/bhyvexml2argv-fs-9p.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-fs-9p.xml | 0
.../bhyvexml2argv-grub-bootorder.args | 0
.../bhyvexml2argv-grub-bootorder.devmap | 0
.../bhyvexml2argv-grub-bootorder.ldargs | 0
.../bhyvexml2argv-grub-bootorder.xml | 0
.../bhyvexml2argv-grub-bootorder2.args | 0
.../bhyvexml2argv-grub-bootorder2.devmap | 0
.../bhyvexml2argv-grub-bootorder2.ldargs | 0
.../bhyvexml2argv-grub-bootorder2.xml | 0
.../bhyvexml2argv-grub-defaults.args | 0
.../bhyvexml2argv-grub-defaults.devmap | 0
.../bhyvexml2argv-grub-defaults.ldargs | 0
.../bhyvexml2argv-grub-defaults.xml | 0
.../bhyvexml2argv-input-xhci-tablet.args | 0
.../bhyvexml2argv-input-xhci-tablet.ldargs | 0
.../bhyvexml2argv-input-xhci-tablet.xml | 0
.../bhyvexml2argv-isa-controller.args | 0
.../bhyvexml2argv-isa-controller.ldargs | 0
.../bhyvexml2argv-isa-controller.xml | 0
...bhyvexml2argv-isa-multiple-controllers.xml | 0
.../{ => x86_64}/bhyvexml2argv-localtime.args | 0
.../bhyvexml2argv-localtime.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-localtime.xml | 0
.../{ => x86_64}/bhyvexml2argv-macaddr.args | 0
.../{ => x86_64}/bhyvexml2argv-macaddr.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-macaddr.xml | 0
.../{ => x86_64}/bhyvexml2argv-metadata.xml | 0
.../{ => x86_64}/bhyvexml2argv-msrs.args | 0
.../{ => x86_64}/bhyvexml2argv-msrs.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-msrs.xml | 0
.../{ => x86_64}/bhyvexml2argv-net-e1000.args | 0
.../bhyvexml2argv-net-e1000.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-net-e1000.xml | 0
.../{ => x86_64}/bhyvexml2argv-nvme.args | 0
.../{ => x86_64}/bhyvexml2argv-nvme.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-nvme.xml | 0
.../bhyvexml2argv-passthru-multiple-devs.args | 0
...hyvexml2argv-passthru-multiple-devs.ldargs | 0
.../bhyvexml2argv-passthru-multiple-devs.xml | 0
.../{ => x86_64}/bhyvexml2argv-passthru.args | 0
.../bhyvexml2argv-passthru.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-passthru.xml | 0
.../bhyvexml2argv-sata-rotation-rate.args | 0
.../bhyvexml2argv-sata-rotation-rate.ldargs | 0
.../bhyvexml2argv-sata-rotation-rate.xml | 0
.../bhyvexml2argv-serial-grub-nocons.args | 0
.../bhyvexml2argv-serial-grub-nocons.devmap | 0
.../bhyvexml2argv-serial-grub-nocons.ldargs | 0
.../bhyvexml2argv-serial-grub-nocons.xml | 0
.../bhyvexml2argv-serial-grub.args | 0
.../bhyvexml2argv-serial-grub.devmap | 0
.../bhyvexml2argv-serial-grub.ldargs | 0
.../bhyvexml2argv-serial-grub.xml | 0
.../bhyvexml2argv-serial-invalid-port.args | 0
.../bhyvexml2argv-serial-invalid-port.ldargs | 0
.../bhyvexml2argv-serial-invalid-port.xml | 0
.../bhyvexml2argv-serial-tcp.args | 0
.../bhyvexml2argv-serial-tcp.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-serial-tcp.xml | 0
.../{ => x86_64}/bhyvexml2argv-serial.args | 0
.../{ => x86_64}/bhyvexml2argv-serial.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-serial.xml | 0
.../{ => x86_64}/bhyvexml2argv-slirp-ip.xml | 0
.../bhyvexml2argv-slirp-mac-addr.args | 0
.../bhyvexml2argv-slirp-mac-addr.ldargs | 0
.../bhyvexml2argv-slirp-mac-addr.xml | 0
.../{ => x86_64}/bhyvexml2argv-slirp.args | 0
.../{ => x86_64}/bhyvexml2argv-slirp.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-slirp.xml | 0
.../{ => x86_64}/bhyvexml2argv-sound.args | 0
.../{ => x86_64}/bhyvexml2argv-sound.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-sound.xml | 0
...gv-uefi-nvram-template-and-source-set.args | 0
...uefi-nvram-template-and-source-set.ldargs} | 0
...rgv-uefi-nvram-template-and-source-set.xml | 0
...bhyvexml2argv-uefi-nvram-template-set.args | 0
...vexml2argv-uefi-nvram-template-set.ldargs} | 0
.../bhyvexml2argv-uefi-nvram-template-set.xml | 0
.../bhyvexml2argv-uefi-nvram.args | 0
.../bhyvexml2argv-uefi-nvram.ldargs} | 0
.../{ => x86_64}/bhyvexml2argv-uefi-nvram.xml | 0
.../{ => x86_64}/bhyvexml2argv-uefi.args | 0
.../bhyvexml2argv-uefi.ldargs} | 0
.../{ => x86_64}/bhyvexml2argv-uefi.xml | 0
...yvexml2argv-virtio-rnd-backend-builtin.xml | 0
...io-rnd-backend-random-non-default-file.xml | 0
.../bhyvexml2argv-virtio-rnd-transitional.xml | 0
.../bhyvexml2argv-virtio-rnd.args | 0
.../bhyvexml2argv-virtio-rnd.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-virtio-rnd.xml | 0
.../bhyvexml2argv-vnc-autoport.args | 0
.../bhyvexml2argv-vnc-autoport.ldargs} | 0
.../bhyvexml2argv-vnc-autoport.xml | 0
.../bhyvexml2argv-vnc-password-comma.xml | 0
.../bhyvexml2argv-vnc-password.args | 0
.../bhyvexml2argv-vnc-password.ldargs} | 0
.../bhyvexml2argv-vnc-password.xml | 0
.../bhyvexml2argv-vnc-resolution.args | 0
.../bhyvexml2argv-vnc-resolution.ldargs} | 0
.../bhyvexml2argv-vnc-resolution.xml | 0
.../bhyvexml2argv-vnc-vgaconf-io.args | 0
.../bhyvexml2argv-vnc-vgaconf-io.ldargs} | 0
.../bhyvexml2argv-vnc-vgaconf-io.xml | 0
.../bhyvexml2argv-vnc-vgaconf-off.args | 0
.../bhyvexml2argv-vnc-vgaconf-off.ldargs} | 0
.../bhyvexml2argv-vnc-vgaconf-off.xml | 0
.../bhyvexml2argv-vnc-vgaconf-on.args | 0
.../bhyvexml2argv-vnc-vgaconf-on.ldargs} | 0
.../bhyvexml2argv-vnc-vgaconf-on.xml | 0
.../bhyvexml2argv-vnc-wait-no.args | 0
.../bhyvexml2argv-vnc-wait-no.ldargs} | 0
.../bhyvexml2argv-vnc-wait-no.xml | 0
.../{ => x86_64}/bhyvexml2argv-vnc-wait.args | 0
.../bhyvexml2argv-vnc-wait.ldargs} | 0
.../{ => x86_64}/bhyvexml2argv-vnc-wait.xml | 0
.../{ => x86_64}/bhyvexml2argv-vnc.args | 0
.../x86_64/bhyvexml2argv-vnc.ldargs | 1 +
.../{ => x86_64}/bhyvexml2argv-vnc.xml | 0
.../{ => x86_64}/bhyvexml2argv-wired.args | 0
.../{ => x86_64}/bhyvexml2argv-wired.ldargs | 0
.../{ => x86_64}/bhyvexml2argv-wired.xml | 0
...hyvexml2argv-xhci-multiple-controllers.xml | 0
.../bhyvexml2argv-xhci-multiple-devs.xml | 0
.../bhyvexml2argv-xhci-no-devs.xml | 0
tests/bhyvexml2argvtest.c | 25 +++--
.../aarch64/bhyvexml2xmlout-base.xml | 30 ++++++
.../aarch64/bhyvexml2xmlout-bootloader.xml | 31 +++++++
.../aarch64/bhyvexml2xmlout-console.xml | 38 ++++++++
.../bhyvexml2xmlout-2-nvme-2-controllers.xml | 0
.../bhyvexml2xmlout-4-consoles.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-acpiapic.xml | 0
...l2xmlout-addr-isa-controller-on-slot-1.xml | 0
...2xmlout-addr-isa-controller-on-slot-31.xml | 0
...ml2xmlout-addr-more-than-32-sata-disks.xml | 0
...yvexml2xmlout-addr-multiple-sata-disks.xml | 0
...exml2xmlout-addr-multiple-virtio-disks.xml | 0
...lout-addr-no32devs-multiple-sata-disks.xml | 0
...2xmlout-addr-no32devs-single-sata-disk.xml | 0
.../bhyvexml2xmlout-addr-single-sata-disk.xml | 0
...hyvexml2xmlout-addr-single-virtio-disk.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-base.xml | 0
.../bhyvexml2xmlout-bhyveload-bootorder.xml | 0
.../bhyvexml2xmlout-bhyveload-bootorder1.xml | 0
.../bhyvexml2xmlout-bhyveload-bootorder2.xml | 0
.../bhyvexml2xmlout-bhyveload-bootorder3.xml | 0
.../bhyvexml2xmlout-bhyveload-bootorder4.xml | 0
...bhyvexml2xmlout-bhyveload-explicitargs.xml | 0
.../bhyvexml2xmlout-commandline.xml | 0
...out-console-master-slave-not-specified.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-console.xml | 0
.../bhyvexml2xmlout-custom-loader.xml | 0
.../bhyvexml2xmlout-disk-cdrom-grub.xml | 0
.../bhyvexml2xmlout-disk-cdrom.xml | 0
.../bhyvexml2xmlout-disk-virtio.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-fs-9p.xml | 0
.../bhyvexml2xmlout-grub-bootorder.xml | 0
.../bhyvexml2xmlout-grub-bootorder2.xml | 0
.../bhyvexml2xmlout-grub-defaults.xml | 0
.../bhyvexml2xmlout-input-xhci-tablet.xml | 0
.../bhyvexml2xmlout-isa-controller.xml | 0
.../bhyvexml2xmlout-localtime.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-macaddr.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-metadata.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-msrs.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-nvme.xml | 0
...bhyvexml2xmlout-passthru-multiple-devs.xml | 0
.../bhyvexml2xmlout-serial-grub-nocons.xml | 0
.../bhyvexml2xmlout-serial-grub.xml | 0
.../bhyvexml2xmlout-serial-tcp.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-serial.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-slirp.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-sound.xml | 0
.../bhyvexml2xmlout-virtio-rnd.xml | 0
.../bhyvexml2xmlout-vnc-autoport.xml | 0
.../bhyvexml2xmlout-vnc-password.xml | 0
.../bhyvexml2xmlout-vnc-resolution.xml | 0
.../bhyvexml2xmlout-vnc-vgaconf-io.xml | 0
.../bhyvexml2xmlout-vnc-vgaconf-off.xml | 0
.../bhyvexml2xmlout-vnc-vgaconf-on.xml | 0
.../bhyvexml2xmlout-vnc-wait-no.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-vnc-wait.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-vnc.xml | 0
.../{ => x86_64}/bhyvexml2xmlout-wired.xml | 0
tests/bhyvexml2xmltest.c | 16 +++-
301 files changed, 313 insertions(+), 46 deletions(-)
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-base.args
rename tests/bhyvexml2argvdata/{bhyvexml2argv-bhyveload-timeout.ldargs => aarch64/bhyvexml2argv-base.ldargs} (100%)
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-base.xml
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-bootloader.args
rename tests/bhyvexml2argvdata/{bhyvexml2argv-addr-non-isa-controller-on-slot-1.ldargs => aarch64/bhyvexml2argv-bootloader.ldargs} (100%)
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-bootloader.xml
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-console.args
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-console.ldargs
create mode 100644 tests/bhyvexml2argvdata/aarch64/bhyvexml2argv-console.xml
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-2-nvme-2-controllers.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-2-nvme-2-controllers.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-2-nvme-2-controllers.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-2-nvme-same-controller.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-2-nvme-same-controller.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-2-nvme-same-controller.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-4-consoles.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-4-consoles.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-4-consoles.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-acpiapic.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-acpiapic.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-acpiapic.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-isa-controller-on-slot-1.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-isa-controller-on-slot-1.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-isa-controller-on-slot-1.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-isa-controller-on-slot-31.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-isa-controller-on-slot-31.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-isa-controller-on-slot-31.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-more-than-32-sata-disks.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-more-than-32-sata-disks.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-more-than-32-sata-disks.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-multiple-sata-disks.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-multiple-sata-disks.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-multiple-sata-disks.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-multiple-virtio-disks.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-multiple-virtio-disks.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-multiple-virtio-disks.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-more-than-32-sata-disks.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-multiple-sata-disks.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-multiple-sata-disks.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-multiple-sata-disks.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-single-sata-disk.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-single-sata-disk.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-no32devs-single-sata-disk.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-non-isa-controller-on-slot-1.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-firmware-efi.ldargs => x86_64/bhyvexml2argv-addr-non-isa-controller-on-slot-1.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-non-isa-controller-on-slot-1.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-single-sata-disk.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-single-sata-disk.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-single-sata-disk.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-single-virtio-disk.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-single-virtio-disk.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-addr-single-virtio-disk.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-base.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-base.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-base.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder1.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder1.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder1.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder2.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder3.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder3.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder3.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder4.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-bootorder5.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-explicitargs.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-explicitargs.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-explicitargs.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-timeout.args (100%)
create mode 100644 tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-bhyveload-timeout.ldargs
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-bhyveload-timeout.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-commandline.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-commandline.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-commandline.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-console-master-slave-not-specified.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-console-master-slave-not-specified.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-console-master-slave-not-specified.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-console.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-console.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-console.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-cputopology-nvcpu-mismatch.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-cputopology.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-cputopology.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-cputopology.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-custom-loader.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-custom-loader.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-custom-loader.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom-grub.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom-grub.devmap (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom-grub.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom-grub.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-cdrom.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-virtio-queue-opts.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-virtio-rotation-rate.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-virtio.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-virtio.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-disk-virtio.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-firmware-efi.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-uefi-nvram-template-and-source-set.ldargs => x86_64/bhyvexml2argv-firmware-efi.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-firmware-efi.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p-readonly.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p-readonly.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p-readonly.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p-unsupported-accessmode.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p-unsupported-driver.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p-unsupported-type.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-fs-9p.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder.devmap (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder2.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder2.devmap (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder2.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-bootorder2.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-defaults.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-defaults.devmap (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-defaults.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-grub-defaults.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-input-xhci-tablet.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-input-xhci-tablet.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-input-xhci-tablet.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-isa-controller.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-isa-controller.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-isa-controller.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-isa-multiple-controllers.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-localtime.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-localtime.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-localtime.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-macaddr.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-macaddr.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-macaddr.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-metadata.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-msrs.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-msrs.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-msrs.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-net-e1000.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-net-e1000.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-net-e1000.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-nvme.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-nvme.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-nvme.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-passthru-multiple-devs.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-passthru-multiple-devs.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-passthru-multiple-devs.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-passthru.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-passthru.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-passthru.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-sata-rotation-rate.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-sata-rotation-rate.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-sata-rotation-rate.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub-nocons.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub-nocons.devmap (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub-nocons.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub-nocons.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub.devmap (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-grub.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-invalid-port.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-invalid-port.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-invalid-port.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-tcp.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-tcp.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial-tcp.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-serial.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp-ip.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp-mac-addr.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp-mac-addr.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp-mac-addr.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-slirp.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-sound.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-sound.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-sound.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi-nvram-template-and-source-set.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-uefi-nvram-template-set.ldargs => x86_64/bhyvexml2argv-uefi-nvram-template-and-source-set.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi-nvram-template-and-source-set.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi-nvram-template-set.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-uefi-nvram.ldargs => x86_64/bhyvexml2argv-uefi-nvram-template-set.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi-nvram-template-set.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi-nvram.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-uefi.ldargs => x86_64/bhyvexml2argv-uefi-nvram.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi-nvram.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-autoport.ldargs => x86_64/bhyvexml2argv-uefi.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-uefi.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-virtio-rnd-backend-builtin.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-virtio-rnd-backend-random-non-default-file.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-virtio-rnd-transitional.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-virtio-rnd.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-virtio-rnd.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-virtio-rnd.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-autoport.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-password.ldargs => x86_64/bhyvexml2argv-vnc-autoport.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-autoport.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-password-comma.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-password.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-resolution.ldargs => x86_64/bhyvexml2argv-vnc-password.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-password.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-resolution.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-vgaconf-io.ldargs => x86_64/bhyvexml2argv-vnc-resolution.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-resolution.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-vgaconf-io.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-vgaconf-off.ldargs => x86_64/bhyvexml2argv-vnc-vgaconf-io.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-vgaconf-io.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-vgaconf-off.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-vgaconf-on.ldargs => x86_64/bhyvexml2argv-vnc-vgaconf-off.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-vgaconf-off.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-vgaconf-on.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-wait-no.ldargs => x86_64/bhyvexml2argv-vnc-vgaconf-on.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-vgaconf-on.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-wait-no.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc-wait.ldargs => x86_64/bhyvexml2argv-vnc-wait-no.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-wait-no.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-wait.args (100%)
rename tests/bhyvexml2argvdata/{bhyvexml2argv-vnc.ldargs => x86_64/bhyvexml2argv-vnc-wait.ldargs} (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc-wait.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc.args (100%)
create mode 100644 tests/bhyvexml2argvdata/x86_64/bhyvexml2argv-vnc.ldargs
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-vnc.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-wired.args (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-wired.ldargs (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-wired.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-xhci-multiple-controllers.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-xhci-multiple-devs.xml (100%)
rename tests/bhyvexml2argvdata/{ => x86_64}/bhyvexml2argv-xhci-no-devs.xml (100%)
create mode 100644 tests/bhyvexml2xmloutdata/aarch64/bhyvexml2xmlout-base.xml
create mode 100644 tests/bhyvexml2xmloutdata/aarch64/bhyvexml2xmlout-bootloader.xml
create mode 100644 tests/bhyvexml2xmloutdata/aarch64/bhyvexml2xmlout-console.xml
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-2-nvme-2-controllers.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-4-consoles.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-acpiapic.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-isa-controller-on-slot-1.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-isa-controller-on-slot-31.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-more-than-32-sata-disks.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-multiple-sata-disks.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-multiple-virtio-disks.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-no32devs-multiple-sata-disks.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-no32devs-single-sata-disk.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-single-sata-disk.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-addr-single-virtio-disk.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-base.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-bhyveload-bootorder.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-bhyveload-bootorder1.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-bhyveload-bootorder2.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-bhyveload-bootorder3.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-bhyveload-bootorder4.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-bhyveload-explicitargs.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-commandline.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-console-master-slave-not-specified.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-console.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-custom-loader.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-disk-cdrom-grub.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-disk-cdrom.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-disk-virtio.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-fs-9p.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-grub-bootorder.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-grub-bootorder2.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-grub-defaults.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-input-xhci-tablet.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-isa-controller.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-localtime.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-macaddr.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-metadata.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-msrs.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-nvme.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-passthru-multiple-devs.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-serial-grub-nocons.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-serial-grub.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-serial-tcp.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-serial.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-slirp.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-sound.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-virtio-rnd.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-autoport.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-password.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-resolution.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-vgaconf-io.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-vgaconf-off.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-vgaconf-on.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-wait-no.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc-wait.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-vnc.xml (100%)
rename tests/bhyvexml2xmloutdata/{ => x86_64}/bhyvexml2xmlout-wired.xml (100%)
--
2.51.2
2
10
From: Peter Krempa <pkrempa(a)redhat.com>
Add an example of 250 layer deep nested JSON to make sure the parser
supports it. This is in order to maintain compatibility with external
snapshots in qemu, where such a deeply nested document is returned with
a 'query-block' QMP call.
I've used a fake JSON as a real reply from qemu is around 1.4MiB for a
200 deep image chain.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
As promised for the JSON nesting fix. Obviously works only when applied
on top of it.
tests/virjsondata/parse-nesting-in.json | 1 +
tests/virjsondata/parse-nesting-out.json | 1 +
2 files changed, 2 insertions(+)
create mode 100644 tests/virjsondata/parse-nesting-in.json
create mode 120000 tests/virjsondata/parse-nesting-out.json
diff --git a/tests/virjsondata/parse-nesting-in.json b/tests/virjsondata/parse-nesting-in.json
new file mode 100644
index 0000000000..8bbe1a3439
--- /dev/null
+++ b/tests/virjsondata/parse-nesting-in.json
@@ -0,0 +1 @@
+{"n249": {"n248": {"n247": {"n246": {"n245": {"n244": {"n243": {"n242": {"n241": {"n240": {"n239": {"n238": {"n237": {"n236": {"n235": {"n234": {"n233": {"n232": {"n231": {"n230": {"n229": {"n228": {"n227": {"n226": {"n225": {"n224": {"n223": {"n222": {"n221": {"n220": {"n219": {"n218": {"n217": {"n216": {"n215": {"n214": {"n213": {"n212": {"n211": {"n210": {"n209": {"n208": {"n207": {"n206": {"n205": {"n204": {"n203": {"n202": {"n201": {"n200": {"n199": {"n198": {"n197": {"n196": {"n195": {"n194": {"n193": {"n192": {"n191": {"n190": {"n189": {"n188": {"n187": {"n186": {"n185": {"n184": {"n183": {"n182": {"n181": {"n180": {"n179": {"n178": {"n177": {"n176": {"n175": {"n174": {"n173": {"n172": {"n171": {"n170": {"n169": {"n168": {"n167": {"n166": {"n165": {"n164": {"n163": {"n162": {"n161": {"n160": {"n159": {"n158": {"n157": {"n156": {"n155": {"n154": {"n153": {"n152": {"n151": {"n150": {"n149": {"n148": {"n147": {"n146": {"n145": {"n144": {"n143": {"n142": {"n141": {"n140": {"n139": {"n138": {"n137": {"n136": {"n135": {"n134": {"n133": {"n132": {"n131": {"n130": {"n129": {"n128": {"n127": {"n126": {"n125": {"n124": {"n123": {"n122": {"n121": {"n120": {"n119": {"n118": {"n117": {"n116": {"n115": {"n114": {"n113": {"n112": {"n111": {"n110": {"n109": {"n108": {"n107": {"n106": {"n105": {"n104": {"n103": {"n102": {"n101": {"n100": {"n99": {"n98": {"n97": {"n96": {"n95": {"n94": {"n93": {"n92": {"n91": {"n90": {"n89": {"n88": {"n87": {"n86": {"n85": {"n84": {"n83": {"n82": {"n81": {"n80": {"n79": {"n78": {"n77": {"n76": {"n75": {"n74": {"n73": {"n72": {"n71": {"n70": {"n69": {"n68": {"n67": {"n66": {"n65": {"n64": {"n63": {"n62": {"n61": {"n60": {"n59": {"n58": {"n57": {"n56": {"n55": {"n54": {"n53": {"n52": {"n51": {"n50": {"n49": {"n48": {"n47": {"n46": {"n45": {"n44": {"n43": {"n42": {"n41": {"n40": {"n39": {"n38": {"n37": {"n36": {"n35": {"n34": {"n33": {"n32": {"n31": {"n30": {"n29": {"n28": {"n27": {"n26": {"n25": {"n24": {"n23": {"n22": {"n21": {"n20": {"n19": {"n18": {"n17": {"n16": {"n15": {"n14": {"n13": {"n12": {"n11": {"n10": {"n9": {"n8": {"n7": {"n6": {"n5": {"n4": {"n3": {"n2": {"n1": {"n0": "end"}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
diff --git a/tests/virjsondata/parse-nesting-out.json b/tests/virjsondata/parse-nesting-out.json
new file mode 120000
index 0000000000..d269172843
--- /dev/null
+++ b/tests/virjsondata/parse-nesting-out.json
@@ -0,0 +1 @@
+parse-nesting-in.json
\ No newline at end of file
--
2.52.0
2
1
We are getting close to 12.0.0 release of libvirt. To aim for the
release on Thursday 15 Jan I suggest entering the freeze on Friday 09
Jan and tagging RC2 on Tuesday 13 Jan.
I hope this works for everyone.
Jirka
1
0
Currently, to probe PCI devices, for each device libvirt
calls "bhyve -s 0,<device_type>" and parses the error message to check
if this specific device is supported.
For quite some time, bhyve reports the list of devices using:
bhyve -s help
where it prints all supported devices, one device per line.
Update the code to use this command:
* It is more accurate as we don't need to rely on the error message
parsing.
* It's faster as we get all the devices in one run instead of
running bhyve for every device type.
* The code is simpler.
Signed-off-by: Roman Bogorodskiy <bogorodskiy(a)gmail.com>
---
src/bhyve/bhyve_capabilities.c | 139 ++++++++++-----------------------
1 file changed, 40 insertions(+), 99 deletions(-)
diff --git a/src/bhyve/bhyve_capabilities.c b/src/bhyve/bhyve_capabilities.c
index 0585fff8e9..2e5e2ae3bc 100644
--- a/src/bhyve/bhyve_capabilities.c
+++ b/src/bhyve/bhyve_capabilities.c
@@ -258,24 +258,51 @@ bhyveProbeCapsFromHelp(unsigned int *caps, char *binary)
}
static int
-bhyveProbeCapsAHCI32Slot(unsigned int *caps, char *binary)
+bhyveFillCapForDevice(unsigned int *caps, const char *device)
{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,ahci",
- "pci slot 0:0: unknown device \"ahci\"",
- BHYVE_CAP_AHCI32SLOT);
+ if (STREQ(device, "ahci"))
+ *caps |= BHYVE_CAP_AHCI32SLOT;
+ else if (STREQ(device, "e1000"))
+ *caps |= BHYVE_CAP_NET_E1000;
+ else if (STREQ(device, "fbuf"))
+ *caps |= BHYVE_CAP_FBUF;
+ else if (STREQ(device, "hda"))
+ *caps |= BHYVE_CAP_SOUND_HDA;
+ else if (STREQ(device, "nvme"))
+ *caps |= BHYVE_CAP_NVME;
+ else if (STREQ(device, "virtio-9p"))
+ *caps |= BHYVE_CAP_VIRTIO_9P;
+ else if (STREQ(device, "virtio-rnd"))
+ *caps |= BHYVE_CAP_VIRTIO_RND;
+ else if (STREQ(device, "xhci"))
+ *caps |= BHYVE_CAP_XHCI;
+
+ return 0;
}
static int
-bhyveProbeCapsNetE1000(unsigned int *caps, char *binary)
+bhyveProbeCapsFromSHelp(unsigned int *caps, char *binary)
{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,e1000",
- "pci slot 0:0: unknown device \"e1000\"",
- BHYVE_CAP_NET_E1000);
+ g_autofree char *help = NULL;
+ g_autoptr(virCommand) cmd = NULL;
+ int exit;
+ char *cur = NULL;
+ char *saveptr = NULL;
+
+ cmd = virCommandNew(binary);
+ virCommandAddArgList(cmd, "-s", "help", NULL);
+ virCommandSetOutputBuffer(cmd, &help);
+ if (virCommandRun(cmd, &exit) < 0)
+ return -1;
+
+ cur = strtok_r(help, "\n", &saveptr);
+ while (cur != NULL) {
+ bhyveFillCapForDevice(caps, cur);
+ cur = strtok_r(NULL, "\n", &saveptr);
+ }
+
+ return 0;
}
static int
@@ -289,39 +316,6 @@ bhyveProbeCapsLPC_Bootrom(unsigned int *caps, char *binary)
}
-static int
-bhyveProbeCapsFramebuffer(unsigned int *caps, char *binary)
-{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,fbuf",
- "pci slot 0:0: unknown device \"fbuf\"",
- BHYVE_CAP_FBUF);
-}
-
-
-static int
-bhyveProbeCapsXHCIController(unsigned int *caps, char *binary)
-{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,xhci",
- "pci slot 0:0: unknown device \"xhci\"",
- BHYVE_CAP_FBUF);
-}
-
-
-static int
-bhyveProbeCapsSoundHda(unsigned int *caps, char *binary)
-{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,hda",
- "pci slot 0:0: unknown device \"hda\"",
- BHYVE_CAP_SOUND_HDA);
-}
-
-
static int
bhyveProbeCapsVNCPassword(unsigned int *caps, char *binary)
{
@@ -333,39 +327,6 @@ bhyveProbeCapsVNCPassword(unsigned int *caps, char *binary)
}
-static int
-bhyveProbeCapsVirtio9p(unsigned int *caps, char *binary)
-{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,virtio-9p",
- "pci slot 0:0: unknown device \"hda\"",
- BHYVE_CAP_VIRTIO_9P);
-}
-
-
-static int
-bhyveProbeCapsVirtioRnd(unsigned int *caps, char *binary)
-{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,virtio-rnd",
- "pci slot 0:0: unknown device \"virtio-rnd\"",
- BHYVE_CAP_VIRTIO_RND);
-}
-
-
-static int
-bhyveProbeCapsNvme(unsigned int *caps, char *binary)
-{
- return bhyveProbeCapsDeviceHelper(caps, binary,
- "-s",
- "0,nvme",
- "pci slot 0:0: unknown device \"nvme\"",
- BHYVE_CAP_NVME);
-}
-
-
int
virBhyveProbeCaps(unsigned int *caps)
{
@@ -379,35 +340,15 @@ virBhyveProbeCaps(unsigned int *caps)
if ((ret = bhyveProbeCapsFromHelp(caps, binary)))
goto out;
- if ((ret = bhyveProbeCapsAHCI32Slot(caps, binary)))
- goto out;
-
- if ((ret = bhyveProbeCapsNetE1000(caps, binary)))
+ if ((ret = bhyveProbeCapsFromSHelp(caps, binary)))
goto out;
if ((ret = bhyveProbeCapsLPC_Bootrom(caps, binary)))
goto out;
- if ((ret = bhyveProbeCapsFramebuffer(caps, binary)))
- goto out;
-
- if ((ret = bhyveProbeCapsXHCIController(caps, binary)))
- goto out;
-
- if ((ret = bhyveProbeCapsSoundHda(caps, binary)))
- goto out;
-
if ((ret = bhyveProbeCapsVNCPassword(caps, binary)))
goto out;
- if ((ret = bhyveProbeCapsVirtio9p(caps, binary)))
- goto out;
-
- if ((ret = bhyveProbeCapsVirtioRnd(caps, binary)))
- goto out;
-
- if ((ret = bhyveProbeCapsNvme(caps, binary)))
- goto out;
out:
VIR_FREE(binary);
--
2.52.0
2
1
From: Martin Kletzander <mkletzan(a)redhat.com>
This partially reverts commit 3caa28dc50df which changed the DST times
to start at Jan 2 due to an issue that is already solved in GLib that we
require for almost a year now.
This also fixes the test failures that would go away on Jan 2 11:00
UTC (less than two hours from writing this commit message) due to the
timezone definitions (the last failing test case has a timezone which is
UTC+11:00), but because of the change from '0/' to '1/' it did occur on
a day which is not caught by isNearYearEnd() which exists solely for
this purpose.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
tests/virtimetest.c | 21 +++++++--------------
1 file changed, 7 insertions(+), 14 deletions(-)
diff --git a/tests/virtimetest.c b/tests/virtimetest.c
index 5972ce585ec9..62ff2faf35cf 100644
--- a/tests/virtimetest.c
+++ b/tests/virtimetest.c
@@ -190,27 +190,20 @@ mymain(void)
/* test DST processing with timezones that always
* have DST in effect; what's more, cover a zone with
* with an unusual DST different than a usual one hour
- *
- * These tests originally used '0' as the first day,
- * but changed to '1' due to GLib GTimeZone parsing bug:
- * https://gitlab.gnome.org/GNOME/glib/issues/1999
- *
- * Once we depend on a new enough GLib (>= 2.63.4), we
- * can put them back to 0 again.
*/
- TEST_LOCALOFFSET("VIR-00:30VID,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR-00:30VID,0/00:00:00,364/23:59:59",
((1 * 60) + 30) * 60);
- TEST_LOCALOFFSET("VIR-02:30VID,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR-02:30VID,0/00:00:00,364/23:59:59",
((3 * 60) + 30) * 60);
- TEST_LOCALOFFSET("VIR-02:30VID-04:30,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR-02:30VID-04:30,0/00:00:00,364/23:59:59",
((4 * 60) + 30) * 60);
- TEST_LOCALOFFSET("VIR-12:00VID-13:00,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR-12:00VID-13:00,0/00:00:00,364/23:59:59",
((13 * 60) + 0) * 60);
- TEST_LOCALOFFSET("VIR02:45VID00:45,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR02:45VID00:45,0/00:00:00,364/23:59:59",
-45 * 60);
- TEST_LOCALOFFSET("VIR05:00VID04:00,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR05:00VID04:00,0/00:00:00,364/23:59:59",
((-4 * 60) + 0) * 60);
- TEST_LOCALOFFSET("VIR11:00VID10:00,1/00:00:00,364/23:59:59",
+ TEST_LOCALOFFSET("VIR11:00VID10:00,0/00:00:00,364/23:59:59",
((-10 * 60) + 0) * 60);
}
--
2.52.0
2
1