Re: [PATCH v2 00/29] ppc64 PowerNV machines support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,


The patches doesn't apply on master anymore due to new capabilities being
added in mainline, so I've rebased the patches with latest master here in case
someone wants to test them:


https://gitlab.com/danielhb/libvirt/-/tree/pnv_v2



Thanks,


Daniel


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





[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux