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


Reply via email to