From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: Re: [PATCHv3 2/2] kvmtool: Restrict virtio queue number to 1 when vhost on Date: Tue, 21 Jul 2015 10:44:50 +0100 Message-ID: <55AE1492.1090807@arm.com> References: <1437459483-24535-1-git-send-email-fan.du@intel.com> <1437459483-24535-3-git-send-email-fan.du@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: "kvm@vger.kernel.org" , Marc Zyngier To: Fan Du , Will Deacon Return-path: Received: from cam-admin0.cambridge.arm.com ([217.140.96.50]:51662 "EHLO cam-admin0.cambridge.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752063AbbGUJom (ORCPT ); Tue, 21 Jul 2015 05:44:42 -0400 In-Reply-To: <1437459483-24535-3-git-send-email-fan.du@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Hi, On 21/07/15 07:18, Fan Du wrote: > vhost kernel driver does not support mutiple queue yet, > Tweak queue number will fail with "--net mode=tap,vhost=1,mq=2" > as below when lkvm trying to set ring kick fd for queue 2: > > VHOST_SET_VRING_KICK failed: No buffer space available > > Error on this scenario, and overide with the default one queue > configuration. I don't like the idea of overriding an explicitly given command line parameter (mq=2). So why do you provide mq=2 in the first place if you know that the kernel does not support it? I'd rather see the error message to be more descriptive in that case. That would help the user to understand what's going on, also it would still work should the kernel ever support multiple queues in the future. Cheers, Andre. > > Signed-off-by: Fan Du > --- > virtio/net.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/virtio/net.c b/virtio/net.c > index d343615..21a80f3 100644 > --- a/virtio/net.c > +++ b/virtio/net.c > @@ -730,6 +730,10 @@ static int set_net_param(struct kvm *kvm, struct virtio_net_params *p, > p->mq = atoi(val); > } else > die("Unknown network parameter %s", param); > + if (p->vhost && p->mq > 1) { > + p->mq = 1; > + pr_err("vhost does not support mq yet, overide mq to 1."); > + } > > return 0; > } >