[openstack-dev] [Nova] Enabling libvirt feature: pass-through of QEMU command line args

Rahul M R thisisrmr at gmail.com
Mon Nov 11 11:04:43 UTC 2013

Hi again,

Thanks for the quick feedback!

FYI we already have a developer working on the QEMU integration and we intend to add support for the feature in libvirt XML (the "right" way :). In the meantime we wanted to avoid having to maintain a separate patch (for Nova) for clients to install and thought it'll be good to have the CLI passthrough option enabled in Nova itself.

Thanks for the feedback once again.


On 11-Nov-2013, at 3:55 PM, "Daniel P. Berrange" <berrange at redhat.com> wrote:

> On Mon, Nov 11, 2013 at 01:43:59PM +0530, Rahul M R wrote:
>> Hi all,
>> I'm new to this mailing list :)
>> I am currently working on the Snabbswitch project < https://github.com/SnabbCo/snabbswitch/wiki >. We are developing an OpenStack Neutron plugin (targeting Icehouse release). Snabbswitch makes use of an experimental patch to QEMU (not merged to mainline yet) that adds support for a user-space PCI device. This device is not supported by the libvirt XML (yet). So, in order to use this feature, some command line arguments will have to be passed to QEMU when booting an instance.
>> Therefore, I'd like to make a proposal for enabling a libvirt feature: pass-through of QEMU command line args < http://libvirt.org/drvqemu.html#qemucommand >. This will allow us to boot instances with the necessary QEMU command line arguments.
>> Now regarding the implementation of this feature, currently the plan is as follows:
>> 1. Add metadata when creating an instance using the nova boot API. For e.g.: libvirt_qemu_cli_args=["-arg1", "-arg2"]
>> 2. The libvirt driver will process the instance's metadata and generate the necessary XML (for the instance's libvirt.xml). For e.g.:
>> ````
>> <domain type='qemu' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
>> ...
>> <qemu:commandline>
>>   <qemu:arg>-arg1</qemu:arg>
>>   <qemu:arg>-arg2</qemu:arg>
>> </qemu:commandline>
>> ...
>> </domain>
>> ````
>> I'd love to get some feedback regarding the above proposal.
> The QEMU command line passthrough feature is only intended for adhoc testing.
> Anything that is intended to be supported for production deployments must
> have explicit support in the XML config, so I'd reject any patch that attempts
> to add use of QEMU command line passthrough in Nova. That the feature is also
> not even accepted in upstream QEMU is another mark against merging it.
> So if you want this feature in OpenStack, you'll need to focus on getting
> the code merged into upstream QEMU and get any neccessary support into
> libvirt if none of the existing network configs are suitable. Once that is
> done we can look at OpenStack patches to enable it.
> Regards,
> Daniel
> -- 
> |: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org              -o-             http://virt-manager.org :|
> |: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
> |: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

More information about the OpenStack-dev mailing list