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