[libvirt] question for <interface> in ethernet type and multiple queues in KVM (start VM failed)

Daniel P. Berrange berrange at redhat.com
Wed Mar 26 09:57:43 UTC 2014


On Wed, Mar 26, 2014 at 09:31:17AM +0000, Gonglei (Arei) wrote:
> > >
> > >      I use ethernet vif for VM (libvirt 1.1.0  qemu 1.5.1). xml as such
> > >
> > >          <interface type='ethernet'>
> > >              <script path='' />
> > >              <target dev='tap_mq'/>
> > >              <mac address='52:54:00:19:9e:4e'/>
> > >              <model type='virtio' />
> > >              <driver name='vhost' queues='2'/>
> > >          </interface>
> > >
> > >      tap_mq is a tap device with multi_queue property which was created
> > on host by ip command, such as follows
> > >      #ip tuntap add tap_mq mode tap multi_queue
> > >
> > >      I want to use multiple queue feature for this vif so I set queues='2' in
> > xml.
> > >
> > >      When start VM , an error occurs
> > >      "error: unsupported configuration: Multiqueue network is not
> > supported for: ethernet".
> > >      This error is reported from function qemuBuildInterfaceCommandLine
> > >
> > >      /* Currently nothing besides TAP devices supports multiqueue. */
> > >      if (net->driver.virtio.queues > 0 &&
> > >          !(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
> > >            actualType == VIR_DOMAIN_NET_TYPE_BRIDGE)) {
> > >          virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> > >                         _("Multiqueue network is not supported
> > for: %s"),
> > >                         virDomainNetTypeToString(actualType));
> > >          return -1;
> > >      }
> > >
> > >      The comment specifies that only TAP device supports multiqueue. But
> > VIR_DOMAIN_NET_TYPE_ETHERNET is also TAP device I think.
> > 
> > Even though the device is TAP device indeed, it's not from the libvirt
> > POV. Libvirt doesn't examine the target dev to see if it is TAP,
> > physical NIC, sit, ... whatever.
> 
> Yep, but I think libvirt should provide this ability which process
> multi_queue of ethernet type. And the result is guaranteed by the
> emulator, such as Qemu.

Really you'd be better off not using type=ethernet at all. If there is
something preventing you doing that, then it would be a better use of
time to solve that rather than add more features to type=ethernet
which we don't want anyone to have to use.

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 :|




More information about the libvir-list mailing list