[libvirt] RFC: exposing a config setting to force vhost-net support on/off

Laine Stump laine at laine.org
Wed Jan 5 14:57:42 UTC 2011


On 01/05/2011 05:19 AM, Daniel P. Berrange wrote:
>
> We should try to keep terminology matching the disk<driver>
> so I think
>
>    <driver name='qemu|vhost'/>
>
> with omission of<driver>  resulting in us automatically
> adding either 'qemu' or 'vhost' to the XML. We don't
> want to have an explicit 'default' value in the XML,
> because users should be able to see the guest is running
> with.

Do you mean to add it to the XML that's saved in the config? If so, that 
would mean that it would only be possible to configure it as "use 
whatever is best for the current situation" for the first startup of the 
domain. Once that happened, it would be stuck on whichever was used the 
first time (qemu or vhost), so if the domain was  first started when 
vhost-net was loaded, then later restarted when vhost-net wasn't loaded 
(or maybe migrated to another host that didn't have vhost support), it 
would fail to start.

If you mean adding it only to the dumpxml output (when the domain is 
running, and --inactive isn't specified), I suppose that would be okay, 
as long as there's an easy way for the low level functions to understand 
that's the case.

Aside from that, I'd been thinking that the "backend" driver in this 
case is virtio, not qemu or vhost; qemu(userland) vs vhost seems like 
just a setting within that driver. So it doesn't seem appropriate to me 
to have the name decide whether to use userland or vhost.

One other twist - there's already another request for something else to 
be set for each network device: sndbuf.

<https://bugzilla.redhat.com/show_bug.cgi?id=665293>   
https://bugzilla.redhat.com/show_bug.cgi?id=665293 
<https://bugzilla.redhat.com/show_bug.cgi?id=665293>

The sndbuf setting is applicable to any network device that connects to 
the real world using a tap device (ie, not just virtio). If we want to 
add that setting via the same scheme, we would need something like:

<driver name='qemu|vhost' sndbuf='0'/>

(0 can't be the default, because 0 is actually one of the settings that 
they want to explicitly specify (if sndbuf isn't given on the 
commandline, qemu defaults to 1048576).

But what of the case where the device isn't virtio? Would you then 
specify a <driver> with no name attribute? (eg "<driver sndbuf='0'/>)




More information about the libvir-list mailing list