[PATCH v2 00/29] ppc64 PowerNV machines support
Daniel Henrique Barboza
danielhb413 at gmail.com
Mon Feb 21 11:54:58 UTC 2022
Ping
On 1/25/22 17:48, Daniel Henrique Barboza wrote:
> Hi,
>
> This v2 has changes proposed by Peter and Daniel on the v1
> review. Peter's reviewed-by tags were kept when applicable.
>
> The usability change made is that, now, we'll fail to launch powernv
> domains that has a pnv-phb* device and it's running a QEMU version
> that doesn't support these devices to be user creatable. Trying to
> run the 'powernv8-basic' domain with a QEMU 6.2.0 binary will result
> in an error:
>
> $ sudo ./run tools/virsh define ../tests/qemuxml2argvdata/powernv8-basic.xml
> error: Failed to define domain from ../tests/qemuxml2argvdata/powernv8-basic.xml
> error: unsupported configuration: The 'pnv-phb3' device is not supported by this QEMU binary
>
> Using the current QEMU upstream will allow the domain to be defined and
> started.
>
>
> Changes from v1:
> - all tests are now using CAPS_LATEST;
>
> - QEMU_CAPS_DEVICE_PNV_PHB3_ROOT_PORT is no longer being used. Capability
> for the pnv-phb3-root-port is infered to exist if the capabilitity for
> its PHB (QEMU_CAPS_DEVICE_PNV_PHB3) is present. Same thing for the
> case of QEMU_CAPS_DEVICE_PNV_PHB4_ROOT_PORT and QEMU_CAPS_DEVICE_PNV_PHB4;
>
> - QEMU_CAPS_DEVICE_PNV_PHB3 and QEMU_CAPS_DEVICE_PNV_PHB4 are no longer
> being probed. They are being set by hand after checking for QEMU
> version in virQEMUCapsInitQMPVersionCaps();
>
> - patch 01 (QEMU ppc64 capabilities for qemu 7.0):
> * dropped since it's already upstream
>
> - patch 09 (forbid powernv domains migration):
> * removed. This will be handled on QEMU side
>
> - patch 14 (new):
> * added documentation of the different semantics 'targetIndex' will have
> for PowerNV PHBs
>
> - several other minor changes suggested by Peter
>
> - v1 link: https://listman.redhat.com/archives/libvir-list/2022-January/msg00902.html
>
>
> Daniel Henrique Barboza (29):
> qemu_domain.c: add PowerNV machine helpers
> qemu_capabilities.c: use 'MachineIsPowerPC' in DeviceDiskCaps
> qemu_domain: turn qemuDomainMachineIsPSeries() static
> qemu_validate.c: use qemuDomainIsPowerPC() in
> qemuValidateDomainChrDef()
> qemu_domain.c: define ISA as default PowerNV serial
> qemu_validate.c: enhance 'machine type not supported' message
> qemu_domain.c: disable default devices for PowerNV machines
> tests: add basic PowerNV8 test
> qemu: introduce QEMU_CAPS_DEVICE_PNV_PHB3
> conf, qemu: add 'pnv-phb3-root-port' PCI controller model name
> conf, qemu: add 'pnv-phb3' PCI controller model name
> domain_conf.c: fix identation in virDomainControllerDefParseXML()
> conf: parse and format <target chip-id='...'/>
> formatdomain.rst: add 'index' semantics for PowerNV domains
> introduce virDomainControllerIsPowerNVPHB
> conf, qemu: add default 'chip-id' value for pnv-phb3 controllers
> conf, qemu: add default 'targetIndex' value for pnv-phb3 devs
> qemu_command.c: add command line for the pnv-phb3 device
> qemu_domain_address.c: change pnv-phb3 minimal downstream slot
> domain_conf: format pnv-phb3-root-port empty addr
> tests: add pnv-phb3-root-port test
> domain_validate.c: allow targetIndex 0 out of idx 0 for PowerNV PHBs
> domain_conf.c: reject duplicated pnv-phb3 devices
> qemu: introduce QEMU_CAPS_DEVICE_PNV_PHB4
> conf, qemu: add 'pnv-phb4-root-port' PCI controller model name
> domain_conf.c: add phb4-root-port to IsPowerNVRootPort()
> conf, qemu: add 'pnv-phb4' controller model name
> domain_conf.c: add pnv-phb4 to ControllerIsPowerNVPHB()
> tests: add PowerNV9 tests
>
> docs/formatdomain.rst | 12 +-
> docs/schemas/domaincommon.rng | 10 ++
> src/conf/domain_conf.c | 157 ++++++++++++++----
> src/conf/domain_conf.h | 8 +
> src/conf/domain_validate.c | 5 +-
> src/libvirt_private.syms | 1 +
> src/qemu/qemu_capabilities.c | 28 +++-
> src/qemu/qemu_capabilities.h | 2 +
> src/qemu/qemu_command.c | 21 ++-
> src/qemu/qemu_domain.c | 56 ++++++-
> src/qemu/qemu_domain.h | 4 +-
> src/qemu/qemu_domain_address.c | 64 ++++++-
> src/qemu/qemu_validate.c | 62 ++++++-
> .../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 2 +
> .../powernv8-basic.ppc64-latest.args | 34 ++++
> tests/qemuxml2argvdata/powernv8-basic.xml | 16 ++
> tests/qemuxml2argvdata/powernv8-dupPHBs.err | 1 +
> .../powernv8-dupPHBs.ppc64-latest.err | 1 +
> tests/qemuxml2argvdata/powernv8-dupPHBs.xml | 27 +++
> .../powernv8-root-port.ppc64-latest.args | 35 ++++
> tests/qemuxml2argvdata/powernv8-root-port.xml | 17 ++
> .../powernv8-two-sockets.ppc64-latest.args | 35 ++++
> .../qemuxml2argvdata/powernv8-two-sockets.xml | 26 +++
> .../powernv9-dupPHBs.ppc64-latest.err | 1 +
> tests/qemuxml2argvdata/powernv9-dupPHBs.xml | 27 +++
> .../powernv9-root-port.ppc64-latest.args | 35 ++++
> tests/qemuxml2argvdata/powernv9-root-port.xml | 17 ++
> tests/qemuxml2argvtest.c | 7 +
> .../powernv8-basic.ppc64-latest.xml | 34 ++++
> .../powernv8-root-port.ppc64-latest.xml | 39 +++++
> .../powernv8-two-sockets.ppc64-latest.xml | 39 +++++
> .../powernv9-root-port.ppc64-latest.xml | 39 +++++
> .../qemuxml2xmloutdata/powernv9-root-port.xml | 36 ++++
> tests/qemuxml2xmltest.c | 5 +
> 34 files changed, 855 insertions(+), 48 deletions(-)
> create mode 100644 tests/qemuxml2argvdata/powernv8-basic.ppc64-latest.args
> create mode 100644 tests/qemuxml2argvdata/powernv8-basic.xml
> create mode 100644 tests/qemuxml2argvdata/powernv8-dupPHBs.err
> create mode 100644 tests/qemuxml2argvdata/powernv8-dupPHBs.ppc64-latest.err
> create mode 100644 tests/qemuxml2argvdata/powernv8-dupPHBs.xml
> create mode 100644 tests/qemuxml2argvdata/powernv8-root-port.ppc64-latest.args
> create mode 100644 tests/qemuxml2argvdata/powernv8-root-port.xml
> create mode 100644 tests/qemuxml2argvdata/powernv8-two-sockets.ppc64-latest.args
> create mode 100644 tests/qemuxml2argvdata/powernv8-two-sockets.xml
> create mode 100644 tests/qemuxml2argvdata/powernv9-dupPHBs.ppc64-latest.err
> create mode 100644 tests/qemuxml2argvdata/powernv9-dupPHBs.xml
> create mode 100644 tests/qemuxml2argvdata/powernv9-root-port.ppc64-latest.args
> create mode 100644 tests/qemuxml2argvdata/powernv9-root-port.xml
> create mode 100644 tests/qemuxml2xmloutdata/powernv8-basic.ppc64-latest.xml
> create mode 100644 tests/qemuxml2xmloutdata/powernv8-root-port.ppc64-latest.xml
> create mode 100644 tests/qemuxml2xmloutdata/powernv8-two-sockets.ppc64-latest.xml
> create mode 100644 tests/qemuxml2xmloutdata/powernv9-root-port.ppc64-latest.xml
> create mode 100644 tests/qemuxml2xmloutdata/powernv9-root-port.xml
>
More information about the libvir-list
mailing list