[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