On Mon, Jan 24, 2022 at 08:57:02 -0300, Daniel Henrique Barboza wrote: > > > On 1/21/22 11:08, Peter Krempa wrote: > > On Thu, Jan 20, 2022 at 10:52:11 -0300, Daniel Henrique Barboza wrote: > > > We're now able to boot a simple PowerNV8 domain in Libvirt. > > > > > > Signed-off-by: Daniel Henrique Barboza <danielhb413@xxxxxxxxx> > > > --- > > > tests/qemuxml2argvdata/powernv8-basic.args | 31 +++++++++++++++++++++ > > > tests/qemuxml2argvdata/powernv8-basic.xml | 16 +++++++++++ > > > tests/qemuxml2argvtest.c | 3 ++ > > > tests/qemuxml2xmloutdata/powernv8-basic.xml | 28 +++++++++++++++++++ > > > tests/qemuxml2xmltest.c | 3 ++ > > > tests/testutilsqemu.c | 2 +- > > > 6 files changed, 82 insertions(+), 1 deletion(-) > > > create mode 100644 tests/qemuxml2argvdata/powernv8-basic.args > > > create mode 100644 tests/qemuxml2argvdata/powernv8-basic.xml > > > create mode 100644 tests/qemuxml2xmloutdata/powernv8-basic.xml > > > > [...] > > > > > diff --git a/tests/qemuxml2argvdata/powernv8-basic.xml b/tests/qemuxml2argvdata/powernv8-basic.xml > > > new file mode 100644 > > > index 0000000000..a92fc1282c > > > --- /dev/null > > > +++ b/tests/qemuxml2argvdata/powernv8-basic.xml > > > @@ -0,0 +1,16 @@ > > > +<domain type='qemu'> > > > + <name>QEMUGuest1</name> > > > + <uuid>b20fcfe3-4a0a-4039-8735-9e024256e0f7</uuid> > > > + <memory unit='KiB'>2097152</memory> > > > + <vcpu placement='static'>1</vcpu> > > > + <os> > > > + <type arch='ppc64' machine='powernv8'>hvm</type> > > > + </os> > > > + <devices> > > > + <emulator>/usr/bin/qemu-system-ppc64</emulator> > > > + <controller type='pci' index='0' model='pcie-root'/> > > > + <console type='pty'> > > > + <target type='serial' port='0'/> > > > + </console> > > > + </devices> > > > +</domain> > > > > Trying to start this config after this series is applied fails with: > > > > error: internal error: process exited while connecting to monitor: 2022-01-21T14:04:54.119602Z qemu-system-ppc64: -device pnv-phb3,index=0,chip-id=0,id=pcie.0: Parameter 'driver' expects a pluggable device type > > > > qemu-system-ppc-core-6.2.0-2.fc35.x86_64 > > > You'll need QEMU upstream to test it. QEMU 6.2.0 doesn't allow the PHBs to be > user created. I think I mentioned in the cover letter that I didn't find a good > way to block Libvirt users from doing exactly as you attempted to do because the > pnv-phb3 is presented, but it's unusable. > > The places where we bother checking QEMU version is on qemu_process.c when creating > a log in qemuLogOperation() and in qemu_driver.c in qemuConnectGetVersion. I didn't > find any other case where Libvirt checks for QEMU version to check whether a feature > is valid or not, because well, Libvirt uses capabilities to avoid doing that in the > first place. In very specific cases when there's absolutely no other possibility to do so we assert certain virQEMUCaps based on version number. Currently there's just one. See: virQEMUCapsInitQMPVersionCaps