[libvirt] [RFC][PATCH]QEMU: Parse -device vfio-pci commandline

Hong-Hua.Yin at freescale.com Hong-Hua.Yin at freescale.com
Mon Jun 9 04:11:49 UTC 2014


Hi Laine,

The problem with my case is fixed after applying your patch.
Thank you very much.

Eric had ACKed your patches. I hope my patch could also be accepted soon.

Best Regards,
Olivia

> -----Original Message-----
> From: sendmail [mailto:justsendmailnothingelse at gmail.com] On Behalf Of
> Laine Stump
> Sent: Friday, June 06, 2014 8:37 PM
> To: libvir-list at redhat.com
> Cc: Eric Blake; Yin Olivia-R63875
> Subject: Re: [libvirt] [RFC][PATCH]QEMU: Parse -device vfio-pci commandline
> 
> On 06/05/2014 04:03 PM, Eric Blake wrote:
> > On 06/05/2014 05:51 AM, Hong-Hua.Yin at freescale.com wrote:
> >> The test case failed with the patch.
> >>
> >> tests]$ VIR_TEST_DEBUG=1 ./qemuargv2xmltest ...
> >> 78) QEMU ARGV-2-XML hostdev-vfio                                      ...
> FAILED
> >> ...
> >> It seemed that <hostdev> section is correct as expected.
> >> Why does the case fail? How to check more detailed debug information?
> >>
> > make check -C tests TESTS=qemuargv2xmltest VIR_TEST_DEBUG=1 VERBOSE=1
> >
> > (or bump VIR_TEST_DEBUG=2 for even more details)
> 
> None of those convince it to cough up the warning message that shows what
> is wrong, but running it under gdb I found that
> qemuParseommandLine() is producing this warning:
> 
>    unknown QEMU argument '-nodefconfig', adding to the qemu namespace
> 
> When a warning it logged, it is noticed by testCompareXMLToArgvFiles, and
> unless that function is called with expect_warning = true, this log warning
> will cause the test to fail (unfortunately *without* logging the warning
> that caused the failure).
> 
> It turns out that expect_warning is set in the test struct's extraFlags,
> but only if the macro DO_TEST_FULL is used:
> 
>    DO_TEST_FULL("hostdev-vfio", 1);
> 
> HOWEVER, even if you do that, it will *still* fail, because the XML
> resulting from qemuParseCommandLine will have -nodefconfig and -nodefaults
> added to the qemu commandline passthrough part:
> 
>   <qemu:commandline>
>     <qemu:arg value='-nodefconfig'/>
>     <qemu:arg value='-nodefaults'/>
>   </qemu:commandline>
> 
> (because it doesn't recognize that option).
> 
> So it *still* fails (although at least this time you can see the reason if
> you've set VIR_TEST_DEBUG=2). What is really needed is the have
> qemuParseCommandLine silently discard those two args.
> 
> Interestingly, this is the very first of the qemuxml2argvdata cases
> containing -nodefconfig in the commandline data that has ever been added to
> qemuargv2xmltest.c (which is why we've never seen this problem before).
> 
> Once that is fixed, you'll also notice that qemuParseCommandLine adds this
> to the <disk> element:
> 
>     <driver name='qemu' type='raw'/>
> 
> (that's the default, but it gets spelled out in the conversion), so that
> needs to be added to the .xml file before the hostdev-vfio test can be
> added to argv2xmltest.
> 
> Beyond that, the original failure case (unrecognized option in parse) needs
> to be enhanced so that it actually outputs the reason for the failure.
> 
> I'm finishing up patches to fix these problems, and will post them to this
> thread shortly.




More information about the libvir-list mailing list