DPDK rings must have a power-of-two size.
Signed-off-by: Daniele Di Proietto <[email protected]>
---
lib/netdev-dpdk.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index b45e367..c1b644a 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -125,6 +125,7 @@ static const struct rte_eth_txconf tx_conf = {
enum { MAX_RX_QUEUE_LEN = 192 };
enum { MAX_TX_QUEUE_LEN = 384 };
+enum { DPDK_RING_SIZE = 256 }; /* Must be a power of 2 */
enum { DRAIN_TSC = 200000ULL };
static int rte_eal_init_ret = ENODEV;
@@ -1236,7 +1237,7 @@ dpdk_ring_create(const char dev_name[], unsigned int
port_no,
return -err;
}
- ivshmem->cring_tx = rte_ring_create(ring_name, MAX_RX_QUEUE_LEN, SOCKET0,
0);
+ ivshmem->cring_tx = rte_ring_create(ring_name, DPDK_RING_SIZE, SOCKET0, 0);
if (ivshmem->cring_tx == NULL) {
rte_free(ivshmem);
return ENOMEM;
@@ -1247,7 +1248,7 @@ dpdk_ring_create(const char dev_name[], unsigned int
port_no,
return -err;
}
- ivshmem->cring_rx = rte_ring_create(ring_name, MAX_RX_QUEUE_LEN, SOCKET0,
0);
+ ivshmem->cring_rx = rte_ring_create(ring_name, DPDK_RING_SIZE, SOCKET0, 0);
if (ivshmem->cring_rx == NULL) {
rte_free(ivshmem);
return ENOMEM;
--
2.0.0
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev