[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