[dpdk-dev] [PATCH] vhost: Check descriptor number for vector Rx

Ouyang Changchun changchun.ouyang at intel.com
Fri Oct 24 10:38:18 CEST 2014


For zero copy, it need check whether RX descriptor num meets the 
least requirement when using vector PMD Rx function, and give user 
more hints if it fails to meet the least requirement.

Signed-off-by: Changchun Ouyang <changchun.ouyang at intel.com>
---
 examples/vhost/main.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 291128e..87ab854 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -131,6 +131,10 @@
 #define RTE_TEST_RX_DESC_DEFAULT_ZCP 32   /* legacy: 32, DPDK virt FE: 128. */
 #define RTE_TEST_TX_DESC_DEFAULT_ZCP 64   /* legacy: 64, DPDK virt FE: 64.  */
 
+#ifdef RTE_IXGBE_INC_VECTOR
+#define VPMD_RX_BURST         32
+#endif
+
 /* Get first 4 bytes in mbuf headroom. */
 #define MBUF_HEADROOM_UINT32(mbuf) (*(uint32_t *)((uint8_t *)(mbuf) \
 		+ sizeof(struct rte_mbuf)))
@@ -792,6 +796,19 @@ us_vhost_parse_args(int argc, char **argv)
 		return -1;
 	}
 
+#ifdef RTE_IXGBE_INC_VECTOR
+	if ((zero_copy == 1) && (num_rx_descriptor <= VPMD_RX_BURST)) {
+		RTE_LOG(INFO, VHOST_PORT,
+			"The RX desc num: %d is too small for PMD to work\n"
+			"properly, please enlarge it to bigger than %d if\n"
+			"possible by the option: '--rx-desc-num <number>'\n"
+			"One alternative is disabling RTE_IXGBE_INC_VECTOR\n"
+			"in config file and rebuild the libraries.\n",
+			num_rx_descriptor, VPMD_RX_BURST);
+		return -1;
+	}
+#endif
+
 	return 0;
 }
 
-- 
1.8.4.2



More information about the dev mailing list