aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/rdma/device.c
diff options
context:
space:
mode:
authorBenoît Ganne <bganne@cisco.com>2019-04-03 16:03:37 +0200
committerDamjan Marion <dmarion@me.com>2019-04-05 18:46:38 +0000
commitdc195d68456cd931260cfb5100f2ead46b63b080 (patch)
tree9a3e992bcfdbaefc7705ab8270767a28c49f33bb /src/plugins/rdma/device.c
parentfa7512e18de19cced700ec615d91ffbc481d1fd9 (diff)
rdma: more batching, compile rdma-core in release mode
rx: add batching for WC processing and release tx: improve batching for WC submission and processing rdma-core: compile in release mode to remove assert() Change-Id: I5fb8736db36b50f8b758cd688100477b67e72d80 Signed-off-by: Benoît Ganne <bganne@cisco.com>
Diffstat (limited to 'src/plugins/rdma/device.c')
-rw-r--r--src/plugins/rdma/device.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/rdma/device.c b/src/plugins/rdma/device.c
index 4098d3c8bb2..09816644e72 100644
--- a/src/plugins/rdma/device.c
+++ b/src/plugins/rdma/device.c
@@ -268,11 +268,11 @@ rdma_rxq_init (vlib_main_t * vm, rdma_device_t * rd, u16 qid, u32 n_desc)
return clib_error_return_unix (0, "Create CQ Failed");
memset (&qpia, 0, sizeof (qpia));
- qpia.qp_type = IBV_QPT_RAW_PACKET;
qpia.send_cq = rxq->cq;
qpia.recv_cq = rxq->cq;
qpia.cap.max_recv_wr = n_desc;
qpia.cap.max_recv_sge = 1;
+ qpia.qp_type = IBV_QPT_RAW_PACKET;
if ((rxq->qp = ibv_create_qp (rd->pd, &qpia)) == 0)
return clib_error_return_unix (0, "Queue Pair create failed");
@@ -309,11 +309,12 @@ rdma_txq_init (vlib_main_t * vm, rdma_device_t * rd, u16 qid, u32 n_desc)
return clib_error_return_unix (0, "Create CQ Failed");
memset (&qpia, 0, sizeof (qpia));
- qpia.qp_type = IBV_QPT_RAW_PACKET;
qpia.send_cq = txq->cq;
qpia.recv_cq = txq->cq;
qpia.cap.max_send_wr = n_desc;
qpia.cap.max_send_sge = 1;
+ qpia.qp_type = IBV_QPT_RAW_PACKET;
+ qpia.sq_sig_all = 1;
if ((txq->qp = ibv_create_qp (rd->pd, &qpia)) == 0)
return clib_error_return_unix (0, "Queue Pair create failed");
@@ -430,7 +431,7 @@ rdma_create_if (vlib_main_t * vm, rdma_create_if_args_t * args)
pool_get_zero (rm->devices, rd);
rd->dev_instance = rd - rm->devices;
- rd->per_interface_next_index = ~0;
+ rd->per_interface_next_index = VNET_DEVICE_INPUT_NEXT_ETHERNET_INPUT;
rd->name = vec_dup (args->name);
/* check if device exist and if it is bound to mlx5_core */