[dpdk-dev,v2,2/2] vhost: fix max queues

Message ID 1488364919-22897-2-git-send-email-yuanhan.liu@linux.intel.com (mailing list archive)
State Accepted, archived
Delegated to: Yuanhan Liu
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Yuanhan Liu March 1, 2017, 10:41 a.m. UTC
  0x8000 is the max virito-net queue pairs the virtio 1.0 spec claims to
support. While for vhost-user, it's a different story: the max vring
index could be passed by the vhost-user spec is 0xff, masked by the
VHOST_USER_VRING_IDX_MASK.

That said, the max queue pairs could vhost-user could supported is 0x80.
If user are asking more, I think the vhost-user need be extended.

Fixes: b09b198bfb5c ("vhost-user: announce queue number in message")

Cc: stable@dpdk.org
Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>
---
 lib/librte_vhost/vhost.h | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)
  

Comments

Yuanhan Liu March 22, 2017, 8:36 a.m. UTC | #1
On Wed, Mar 01, 2017 at 06:41:59PM +0800, Yuanhan Liu wrote:
> 0x8000 is the max virito-net queue pairs the virtio 1.0 spec claims to
> support. While for vhost-user, it's a different story: the max vring
> index could be passed by the vhost-user spec is 0xff, masked by the
> VHOST_USER_VRING_IDX_MASK.
> 
> That said, the max queue pairs could vhost-user could supported is 0x80.
> If user are asking more, I think the vhost-user need be extended.
> 
> Fixes: b09b198bfb5c ("vhost-user: announce queue number in message")
> 
> Cc: stable@dpdk.org
> Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com>

Both applied to dpdk-next-virtio.

	--yliu
  

Patch

diff --git a/lib/librte_vhost/vhost.h b/lib/librte_vhost/vhost.h
index 4391e62..d97df1d 100644
--- a/lib/librte_vhost/vhost.h
+++ b/lib/librte_vhost/vhost.h
@@ -110,24 +110,15 @@  struct vhost_virtqueue {
 	uint16_t                shadow_used_idx;
 } __rte_cache_aligned;
 
-/* Old kernels have no such macro defined */
+/* Old kernels have no such macros defined */
 #ifndef VIRTIO_NET_F_GUEST_ANNOUNCE
  #define VIRTIO_NET_F_GUEST_ANNOUNCE 21
 #endif
 
-
-/*
- * Make an extra wrapper for VIRTIO_NET_F_MQ and
- * VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX as they are
- * introduced since kernel v3.8. This makes our
- * code buildable for older kernel.
- */
-#ifdef VIRTIO_NET_F_MQ
- #define VHOST_MAX_QUEUE_PAIRS		VIRTIO_NET_CTRL_MQ_VQ_PAIRS_MAX
-#else
+#ifndef VIRTIO_NET_F_MQ
  #define VIRTIO_NET_F_MQ		22
- #define VHOST_MAX_QUEUE_PAIRS		0x8000
 #endif
+#define VHOST_MAX_QUEUE_PAIRS		0x80
 
 /*
  * Define virtio 1.0 for older kernels