[PATCH v3 00/29] ppc64 PowerNV machines support

Daniel Henrique Barboza danielhb413 at gmail.com
Mon Mar 14 17:20:03 UTC 2022


Hi,

Just to warn any by passer who might want to review the remaining patches: there are
changes in the QEMU side that we would like to make that would make the proposed
support here simpler. The planned changes are:

- add virtual pnv-phb and pnv-phb-root-port devices. These virtual devices will not be
versioned and will be used in all PowerNV machines (powernv8/9/10), meaning that we wouldn't
need to add a pnv-phbN/pnv-phbN-root-port pair for each machine;

- this new virtual device will have its own capability (QEMU_CAPS_DEVICE_PNV_PHB), which
will also simplify what we're doing here - we won't need to snapshot an specific QEMU version
that happened to have user creatable PHBs.


Most of the already reviewed code will be used in the next version. As soon as the 7.1
support is upstream I'll reroll this series with these changes.


Thanks,


Daniel


On 2/23/22 10:19, Daniel Henrique Barboza wrote:
> 
> Hi,
> 
> This new version contains changes proposed by Jano. The most notable
> change is on patch 9, where pnv_pnv3/pnv_phb4 capabilities are now being
> probed and, if the QEMU version isn't high enough, they are cleared from
> qemuCaps.
> 
> For convenience, the patches that are pending review/acks are patches 14,
> 17, 19, 20, 22, 23 and 24.
> 
> 
> v2 link: https://listman.redhat.com/archives/libvir-list/2022-January/msg01149.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
>    conf: 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: always format pnv-phb3-root-port address
>    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                        | 156 ++++++++++++++----
>   src/conf/domain_conf.h                        |   8 +
>   src/conf/domain_validate.c                    |   5 +-
>   src/libvirt_private.syms                      |   1 +
>   src/qemu/qemu_capabilities.c                  |  19 ++-
>   src/qemu/qemu_capabilities.h                  |   4 +
>   src/qemu/qemu_command.c                       |  21 ++-
>   src/qemu/qemu_domain.c                        |  51 +++++-
>   src/qemu/qemu_domain.h                        |   4 +-
>   src/qemu/qemu_domain_address.c                |  64 ++++++-
>   src/qemu/qemu_validate.c                      |  62 ++++++-
>   .../qemucapabilitiesdata/caps_5.0.0.ppc64.xml |   2 +
>   .../qemucapabilitiesdata/caps_5.2.0.ppc64.xml |   2 +
>   .../qemucapabilitiesdata/caps_6.2.0.ppc64.xml |   2 +
>   .../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 +
>   37 files changed, 848 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