This series reworks SATA address allocation in the bhyve driver. While commit messages provide enough details (I hope), there are some general important notes: - currently, sata devices get PCI addresses and this no longer works, so right now bhyve driver fails on any SATA device - While this series fixes SATA devices' addresses (I hope *again*), old Domain XMLs with already generated PCI addresses will not work. Also, it will not work for XMLs where user manually specified PCI address for a disk, though it worked before. This is not good and I'm open for suggestions how to handle that. I'm thinking about writing a tiny Python script that will drop incorrect addresses from domain XMLs. Fabian Freyer (1): bhyve: detect 32 SATA devices per controller support Roman Bogorodskiy (3): bhyve: add virBhyveDriverCreateXMLConf bhyve: fix SATA address allocation bhyve: add tests for SATA address allocation po/POTFILES.in | 1 + src/bhyve/bhyve_capabilities.c | 59 ++++- src/bhyve/bhyve_capabilities.h | 3 +- src/bhyve/bhyve_command.c | 143 +++++++++--- src/bhyve/bhyve_device.c | 33 ++- src/bhyve/bhyve_domain.c | 69 +++++- src/bhyve/bhyve_domain.h | 2 + src/bhyve/bhyve_driver.c | 4 +- .../bhyvexml2argvdata/bhyvexml2argv-acpiapic.args | 4 +- ...bhyvexml2argv-addr-more-than-32-sata-disks.args | 21 ++ ...yvexml2argv-addr-more-than-32-sata-disks.ldargs | 3 + .../bhyvexml2argv-addr-more-than-32-sata-disks.xml | 196 ++++++++++++++++ .../bhyvexml2argv-addr-multiple-sata-disks.args | 9 + .../bhyvexml2argv-addr-multiple-sata-disks.ldargs | 3 + .../bhyvexml2argv-addr-multiple-sata-disks.xml | 31 +++ ...2argv-addr-no32devs-more-than-32-sata-disks.xml | 196 ++++++++++++++++ ...xml2argv-addr-no32devs-multiple-sata-disks.args | 11 + ...l2argv-addr-no32devs-multiple-sata-disks.ldargs | 3 + ...exml2argv-addr-no32devs-multiple-sata-disks.xml | 31 +++ ...yvexml2argv-addr-no32devs-single-sata-disk.args | 9 + ...exml2argv-addr-no32devs-single-sata-disk.ldargs | 3 + ...hyvexml2argv-addr-no32devs-single-sata-disk.xml | 21 ++ .../bhyvexml2argv-addr-single-sata-disk.args | 9 + .../bhyvexml2argv-addr-single-sata-disk.ldargs | 3 + .../bhyvexml2argv-addr-single-sata-disk.xml | 21 ++ tests/bhyvexml2argvdata/bhyvexml2argv-base.args | 4 +- .../bhyvexml2argv-bhyveload-bootorder.args | 5 +- .../bhyvexml2argv-bhyveload-bootorder1.args | 5 +- .../bhyvexml2argv-bhyveload-bootorder3.args | 5 +- .../bhyvexml2argv-bhyveload-explicitargs.args | 4 +- tests/bhyvexml2argvdata/bhyvexml2argv-console.args | 2 +- .../bhyvexml2argv-custom-loader.args | 4 +- .../bhyvexml2argv-disk-cdrom-grub.args | 4 +- .../bhyvexml2argv-disk-cdrom.args | 4 +- .../bhyvexml2argv-grub-bootorder.args | 6 +- .../bhyvexml2argv-grub-bootorder2.args | 6 +- .../bhyvexml2argv-grub-defaults.args | 4 +- .../bhyvexml2argvdata/bhyvexml2argv-localtime.args | 4 +- tests/bhyvexml2argvdata/bhyvexml2argv-macaddr.args | 4 +- .../bhyvexml2argv-serial-grub-nocons.args | 2 +- .../bhyvexml2argv-serial-grub.args | 2 +- tests/bhyvexml2argvdata/bhyvexml2argv-serial.args | 2 +- tests/bhyvexml2argvtest.c | 25 ++- .../bhyvexml2xmlout-acpiapic.xml | 5 +- ...hyvexml2xmlout-addr-more-than-32-sata-disks.xml | 246 +++++++++++++++++++++ .../bhyvexml2xmlout-addr-multiple-sata-disks.xml | 45 ++++ ...ml2xmlout-addr-no32devs-multiple-sata-disks.xml | 51 +++++ ...vexml2xmlout-addr-no32devs-single-sata-disk.xml | 33 +++ .../bhyvexml2xmlout-addr-single-sata-disk.xml | 33 +++ tests/bhyvexml2xmloutdata/bhyvexml2xmlout-base.xml | 5 +- .../bhyvexml2xmlout-bhyveload-bootorder.xml | 5 +- .../bhyvexml2xmlout-bhyveload-bootorder1.xml | 5 +- .../bhyvexml2xmlout-bhyveload-bootorder2.xml | 5 +- .../bhyvexml2xmlout-bhyveload-bootorder3.xml | 5 +- .../bhyvexml2xmlout-bhyveload-bootorder4.xml | 5 +- .../bhyvexml2xmlout-bhyveload-explicitargs.xml | 5 +- .../bhyvexml2xmlout-console.xml | 5 +- .../bhyvexml2xmlout-custom-loader.xml | 5 +- .../bhyvexml2xmlout-disk-cdrom-grub.xml | 5 +- .../bhyvexml2xmlout-disk-cdrom.xml | 5 +- .../bhyvexml2xmlout-disk-virtio.xml | 1 + .../bhyvexml2xmlout-grub-bootorder.xml | 5 +- .../bhyvexml2xmlout-grub-bootorder2.xml | 5 +- .../bhyvexml2xmlout-grub-defaults.xml | 5 +- .../bhyvexml2xmlout-localtime.xml | 5 +- .../bhyvexml2xmlout-macaddr.xml | 5 +- .../bhyvexml2xmlout-metadata.xml | 6 +- .../bhyvexml2xmlout-serial-grub-nocons.xml | 5 +- .../bhyvexml2xmlout-serial-grub.xml | 5 +- .../bhyvexml2xmloutdata/bhyvexml2xmlout-serial.xml | 5 +- tests/bhyvexml2xmltest.c | 42 +++- 71 files changed, 1398 insertions(+), 139 deletions(-) create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-more-than-32-sata-disks.args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-more-than-32-sata-disks.ldargs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-more-than-32-sata-disks.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-multiple-sata-disks.args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-multiple-sata-disks.ldargs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-multiple-sata-disks.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-more-than-32-sata-disks.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-multiple-sata-disks.args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-multiple-sata-disks.ldargs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-multiple-sata-disks.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-single-sata-disk.args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-single-sata-disk.ldargs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-no32devs-single-sata-disk.xml create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-single-sata-disk.args create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-single-sata-disk.ldargs create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-addr-single-sata-disk.xml create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-more-than-32-sata-disks.xml create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-multiple-sata-disks.xml create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-no32devs-multiple-sata-disks.xml create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-no32devs-single-sata-disk.xml create mode 100644 tests/bhyvexml2xmloutdata/bhyvexml2xmlout-addr-single-sata-disk.xml -- 2.11.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list