On Thu, Jun 4, 2015 at 3:43 PM, Martin Kletzander <mkletzan@xxxxxxxxxx> wrote: > From: Maxime Leroy <maxime.leroy@xxxxxxxxx> > > This patch adds the support of queues attribute of the driver element > for vhost-user interface type. Example: > > <interface type='vhostuser'> > <mac address='52:54:00:ee:96:6d'/> > <source type='unix' path='/tmp/vhost2.sock' mode='client'/> > <model type='virtio'/> > <driver queues='4'/> > </interface> > > Signed-off-by: Maxime Leroy <maxime.leroy@xxxxxxxxx> > Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> > --- > docs/formatdomain.html.in | 11 +++++++++-- > src/qemu/qemu_command.c | 15 ++++++++++++++- > ...stuser.args => qemuxml2argv-net-vhostuser-multiq.args} | 6 +++++- > ...hostuser.xml => qemuxml2argv-net-vhostuser-multiq.xml} | 6 ++++++ > tests/qemuxml2argvtest.c | 3 +++ > 5 files changed, 37 insertions(+), 4 deletions(-) > copy tests/qemuxml2argvdata/{qemuxml2argv-net-vhostuser.args => qemuxml2argv-net-vhostuser-multiq.args} (75%) > copy tests/qemuxml2argvdata/{qemuxml2argv-net-vhostuser.xml => qemuxml2argv-net-vhostuser-multiq.xml} (87%) > > diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in > index 72ad54cee188..85238a16af8d 100644 > --- a/docs/formatdomain.html.in > +++ b/docs/formatdomain.html.in > @@ -4260,7 +4260,8 @@ qemu-kvm -net nic,model=? /dev/null > type='virtio'/></code>, multiple packet processing queues can be > created; each queue will potentially be handled by a different > processor, resulting in much higher throughput. > - <span class="since">Since 1.0.6 (QEMU and KVM only)</span> > + <span class="since">Since 1.0.6 (QEMU and KVM only) and for vhost-user > + since 1.2.17</span> > </dd> > <dt><code>host</code> offloading options</dt> > <dd> > @@ -4581,9 +4582,15 @@ qemu-kvm -net nic,model=? /dev/null > <devices> > <interface type='vhostuser'> > <mac address='52:54:00:3b:83:1a'/> > - <source type='unix' path='/tmp/vhost.sock' mode='server'/> > + <source type='unix' path='/tmp/vhost1.sock' mode='server'/> > <model type='virtio'/> > </interface> > + <interface type='vhostuser'> > + <mac address='52:54:00:3b:83:1b'/> > + <source type='unix' path='/tmp/vhost2.sock' mode='client'/> > + <model type='virtio'/> > + <driver queues='5'/> > + </interface> > </devices> > ...</pre> > > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c > index 61faa576e11b..f805f6700e71 100644 > --- a/src/qemu/qemu_command.c > +++ b/src/qemu/qemu_command.c > @@ -8089,6 +8089,7 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd, > { > virBuffer chardev_buf = VIR_BUFFER_INITIALIZER; > virBuffer netdev_buf = VIR_BUFFER_INITIALIZER; > + unsigned int queues = 1; Why setting queues to 1 and not to net->driver.virtio.queues directly ? > char *nic = NULL; > > if (!qemuDomainSupportsNetdev(def, qemuCaps, net)) { > @@ -8126,13 +8127,25 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd, > virBufferAsprintf(&netdev_buf, "type=vhost-user,id=host%s,chardev=char%s", > net->info.alias, net->info.alias); > > + queues = net->driver.virtio.queues; > + if (queues) { I know it's never set to 1 thanks to your patch: "conf: Ignore multiqueue with one queue." Anyway I think we should check if queues is superior to 1 for improving code readability. -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list