[PATCH 08/33] tests: add basic PowerNV8 test

Daniel Henrique Barboza danielhb413 at gmail.com
Mon Jan 24 12:56:57 UTC 2022



On 1/24/22 09:04, Peter Krempa wrote:
> 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 at gmail.com>
>>>> ---
>>>>    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


Thanks for the pointer. I'll look it up and see if this is possible with these
PowerNV capabilities I'm adding in this series.


Daniel

> 




More information about the libvir-list mailing list