diff options
author | Benoît Ganne <bganne@cisco.com> | 2019-04-03 16:03:37 +0200 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2019-04-05 18:46:38 +0000 |
commit | dc195d68456cd931260cfb5100f2ead46b63b080 (patch) | |
tree | 9a3e992bcfdbaefc7705ab8270767a28c49f33bb /src/plugins/rdma/device.c | |
parent | fa7512e18de19cced700ec615d91ffbc481d1fd9 (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.c | 7 |
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 */ |