Home
last modified time | relevance | path

Searched refs:srq (Results 1 – 25 of 56) sorted by relevance

123

/linux/drivers/infiniband/hw/mthca/
H A Dmthca_srq.c74 static void *get_wqe(struct mthca_srq *srq, int n) in get_wqe() argument
76 if (srq->is_direct) in get_wqe()
77 return srq->queue.direct.buf + (n << srq->wqe_shift); in get_wqe()
79 return srq->queue.page_list[(n << srq->wqe_shift) >> PAGE_SHIFT].buf + in get_wqe()
80 ((n << srq->wqe_shift) & (PAGE_SIZE - 1)); in get_wqe()
99 struct mthca_srq *srq, in mthca_tavor_init_srq_context() argument
108 context->wqe_base_ds = cpu_to_be64(1 << (srq->wqe_shift - 4)); in mthca_tavor_init_srq_context()
110 context->lkey = cpu_to_be32(srq->mr.ibmr.lkey); in mthca_tavor_init_srq_context()
120 struct mthca_srq *srq, in mthca_arbel_init_srq_context() argument
134 max = srq->max; in mthca_arbel_init_srq_context()
[all …]
H A Dmthca_dev.h248 struct mthca_array srq; member
496 struct mthca_srq *srq);
502 struct ib_srq_attr *attr, struct mthca_srq *srq,
504 void mthca_free_srq(struct mthca_dev *dev, struct mthca_srq *srq);
507 int mthca_query_srq(struct ib_srq *srq, struct ib_srq_attr *srq_attr);
511 void mthca_free_srq_wqe(struct mthca_srq *srq, u32 wqe_addr);
512 int mthca_tavor_post_srq_recv(struct ib_srq *srq, const struct ib_recv_wr *wr,
514 int mthca_arbel_post_srq_recv(struct ib_srq *srq, const struct ib_recv_wr *wr,
H A Dmthca_cq.c274 struct mthca_srq *srq) in mthca_cq_clean() argument
306 if (srq && is_recv_cqe(cqe)) in mthca_cq_clean()
307 mthca_free_srq_wqe(srq, be32_to_cpu(cqe->wqe)); in mthca_cq_clean()
539 } else if ((*cur_qp)->ibqp.srq) { in mthca_poll_one()
540 struct mthca_srq *srq = to_msrq((*cur_qp)->ibqp.srq); in mthca_poll_one() local
543 wqe_index = wqe >> srq->wqe_shift; in mthca_poll_one()
544 entry->wr_id = srq->wrid[wqe_index]; in mthca_poll_one()
545 mthca_free_srq_wqe(srq, wqe); in mthca_poll_one()
H A Dmthca_provider.c398 struct mthca_srq *srq = to_msrq(ibsrq); in mthca_create_srq() local
416 srq->mr.ibmr.lkey = ucmd.lkey; in mthca_create_srq()
417 srq->db_index = ucmd.db_index; in mthca_create_srq()
421 &init_attr->attr, srq, udata); in mthca_create_srq()
430 if (context && ib_copy_to_udata(udata, &srq->srqn, sizeof(__u32))) { in mthca_create_srq()
431 mthca_free_srq(to_mdev(ibsrq->device), srq); in mthca_create_srq()
440 static int mthca_destroy_srq(struct ib_srq *srq, struct ib_udata *udata) in mthca_destroy_srq() argument
442 mthca_free_srq(to_mdev(srq->device), to_msrq(srq)); in mthca_destroy_srq()
450 mthca_unmap_user_db(to_mdev(srq->device), &context->uar, in mthca_destroy_srq()
451 context->db_tab, to_msrq(srq)->db_index); in mthca_destroy_srq()
/linux/drivers/infiniband/sw/rdmavt/
H A Dsrq.c38 struct rvt_srq *srq = ibsrq_to_rvtsrq(ibsrq); in rvt_create_srq() local
54 srq->rq.size = srq_init_attr->attr.max_wr + 1; in rvt_create_srq()
55 srq->rq.max_sge = srq_init_attr->attr.max_sge; in rvt_create_srq()
56 sz = sizeof(struct ib_sge) * srq->rq.max_sge + in rvt_create_srq()
58 if (rvt_alloc_rq(&srq->rq, srq->rq.size * sz, in rvt_create_srq()
69 u32 s = sizeof(struct rvt_rwq) + srq->rq.size * sz; in rvt_create_srq()
71 srq->ip = rvt_create_mmap_info(dev, s, udata, srq->rq.wq); in rvt_create_srq()
72 if (IS_ERR(srq->ip)) { in rvt_create_srq()
73 ret = PTR_ERR(srq->ip); in rvt_create_srq()
77 ret = ib_copy_to_udata(udata, &srq->ip->offset, in rvt_create_srq()
[all …]
H A DMakefile12 rc.o srq.o trace.o
/linux/drivers/infiniband/hw/cxgb4/
H A Dt4.h425 static inline u32 t4_srq_avail(struct t4_srq *srq) in t4_srq_avail() argument
427 return srq->size - 1 - srq->in_use; in t4_srq_avail()
430 static inline void t4_srq_produce(struct t4_srq *srq, u8 len16) in t4_srq_produce() argument
432 srq->in_use++; in t4_srq_produce()
433 if (++srq->pidx == srq->size) in t4_srq_produce()
434 srq->pidx = 0; in t4_srq_produce()
435 srq->wq_pidx += DIV_ROUND_UP(len16 * 16, T4_EQ_ENTRY_SIZE); in t4_srq_produce()
436 if (srq->wq_pidx >= srq->size * T4_RQ_NUM_SLOTS) in t4_srq_produce()
437 srq->wq_pidx %= srq->size * T4_RQ_NUM_SLOTS; in t4_srq_produce()
438 srq->queue[srq->size].status.host_pidx = srq->pidx; in t4_srq_produce()
[all …]
H A Dcq.c462 static void post_pending_srq_wrs(struct t4_srq *srq) in post_pending_srq_wrs() argument
467 while (srq->pending_in_use) { in post_pending_srq_wrs()
468 pwr = &srq->pending_wrs[srq->pending_cidx]; in post_pending_srq_wrs()
469 srq->sw_rq[srq->pidx].wr_id = pwr->wr_id; in post_pending_srq_wrs()
470 srq->sw_rq[srq->pidx].valid = 1; in post_pending_srq_wrs()
474 srq->cidx, srq->pidx, srq->wq_pidx, in post_pending_srq_wrs()
475 srq->in_use, srq->size, in post_pending_srq_wrs()
478 c4iw_copy_wr_to_srq(srq, &pwr->wqe, pwr->len16); in post_pending_srq_wrs()
479 t4_srq_consume_pending_wr(srq); in post_pending_srq_wrs()
480 t4_srq_produce(srq, pwr->len16); in post_pending_srq_wrs()
[all …]
H A Dqp.c1338 static void defer_srq_wr(struct t4_srq *srq, union t4_recv_wr *wqe, in defer_srq_wr() argument
1341 struct t4_srq_pending_wr *pwr = &srq->pending_wrs[srq->pending_pidx]; in defer_srq_wr()
1344 __func__, srq->cidx, srq->pidx, srq->wq_pidx, in defer_srq_wr()
1345 srq->in_use, srq->ooo_count, in defer_srq_wr()
1346 (unsigned long long)wr_id, srq->pending_cidx, in defer_srq_wr()
1347 srq->pending_pidx, srq->pending_in_use); in defer_srq_wr()
1351 t4_srq_produce_pending_wr(srq); in defer_srq_wr()
1358 struct c4iw_srq *srq; in c4iw_post_srq_recv() local
1365 srq = to_c4iw_srq(ibsrq); in c4iw_post_srq_recv()
1366 spin_lock_irqsave(&srq->lock, flag); in c4iw_post_srq_recv()
[all …]
/linux/drivers/infiniband/core/
H A Duverbs_std_types_srq.c14 struct ib_srq *srq = uobject->object; in uverbs_free_srq() local
17 enum ib_srq_type srq_type = srq->srq_type; in uverbs_free_srq()
20 ret = ib_destroy_srq_user(srq, &attrs->driver_udata); in uverbs_free_srq()
46 struct ib_srq *srq; in UVERBS_HANDLER() local
107 srq = ib_create_srq_user(pd, &attr, obj, &attrs->driver_udata); in UVERBS_HANDLER()
108 if (IS_ERR(srq)) { in UVERBS_HANDLER()
109 ret = PTR_ERR(srq); in UVERBS_HANDLER()
113 obj->uevent.uobject.object = srq; in UVERBS_HANDLER()
131 &srq->ext.xrc.srq_num, in UVERBS_HANDLER()
132 sizeof(srq->ext.xrc.srq_num)); in UVERBS_HANDLER()
H A Dnldev.c811 static int fill_res_srq_qps(struct sk_buff *msg, struct ib_srq *srq) in fill_res_srq_qps() argument
824 rt = &srq->device->res[RDMA_RESTRACK_QP]; in fill_res_srq_qps()
831 if (!qp->srq || (qp->srq->res.id != srq->res.id)) { in fill_res_srq_qps()
871 struct ib_srq *srq = container_of(res, struct ib_srq, res); in fill_res_srq_entry() local
872 struct ib_device *dev = srq->device; in fill_res_srq_entry()
874 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_SRQN, srq->res.id)) in fill_res_srq_entry()
877 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_TYPE, srq->srq_type)) in fill_res_srq_entry()
880 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_PDN, srq->pd->res.id)) in fill_res_srq_entry()
883 if (ib_srq_has_cq(srq->srq_type)) { in fill_res_srq_entry()
885 srq->ext.cq->res.id)) in fill_res_srq_entry()
[all …]
/linux/drivers/infiniband/hw/mlx5/
H A Dsrq.h48 void (*event)(struct mlx5_core_srq *srq, enum mlx5_event e);
58 int mlx5_cmd_create_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq,
60 int mlx5_cmd_destroy_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq);
61 int mlx5_cmd_query_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq,
63 int mlx5_cmd_arm_srq(struct mlx5_ib_dev *dev, struct mlx5_core_srq *srq,
/linux/drivers/infiniband/hw/irdma/
H A Duk.c176 __le64 *irdma_srq_get_next_recv_wqe(struct irdma_srq_uk *srq, u32 *wqe_idx) in irdma_srq_get_next_recv_wqe() argument
181 if (IRDMA_RING_FULL_ERR(srq->srq_ring)) in irdma_srq_get_next_recv_wqe()
184 IRDMA_ATOMIC_RING_MOVE_HEAD(srq->srq_ring, *wqe_idx, ret_code); in irdma_srq_get_next_recv_wqe()
189 srq->srwqe_polarity = !srq->srwqe_polarity; in irdma_srq_get_next_recv_wqe()
191 wqe = srq->srq_base[*wqe_idx * (srq->wqe_size_multiplier)].elem; in irdma_srq_get_next_recv_wqe()
422 int irdma_uk_srq_post_receive(struct irdma_srq_uk *srq, in irdma_uk_srq_post_receive() argument
430 if (srq->max_srq_frag_cnt < info->num_sges) in irdma_uk_srq_post_receive()
433 wqe = irdma_srq_get_next_recv_wqe(srq, &wqe_idx); in irdma_uk_srq_post_receive()
438 srq->wqe_ops.iw_set_fragment(wqe, 0, info->sg_list, in irdma_uk_srq_post_receive()
439 srq->srwqe_polarity); in irdma_uk_srq_post_receive()
[all …]
/linux/drivers/net/
H A Deql.c264 static int eql_enslave(struct net_device *dev, slaving_request_t __user *srq);
265 static int eql_emancipate(struct net_device *dev, slaving_request_t __user *srq);
416 slaving_request_t srq; in eql_enslave() local
418 if (copy_from_user(&srq, srqp, sizeof (slaving_request_t))) in eql_enslave()
421 slave_dev = __dev_get_by_name(&init_net, srq.slave_name); in eql_enslave()
436 s->priority = srq.priority; in eql_enslave()
437 s->priority_bps = srq.priority; in eql_enslave()
438 s->priority_Bps = srq.priority / 8; in eql_enslave()
458 slaving_request_t srq; in eql_emancipate() local
461 if (copy_from_user(&srq, srqp, sizeof (slaving_request_t))) in eql_emancipate()
[all …]
/linux/drivers/infiniband/sw/rxe/
H A Drxe_qp.c128 if (rxe_qp_chk_cap(rxe, cap, !!init->srq)) in rxe_qp_chk_init()
382 if (!qp->srq) { in rxe_qp_init_resp()
406 struct rxe_srq *srq = init->srq ? to_rsrq(init->srq) : NULL; in rxe_qp_from_init() local
412 if (srq) in rxe_qp_from_init()
413 rxe_get(srq); in rxe_qp_from_init()
418 qp->srq = srq; in rxe_qp_from_init()
450 qp->srq = NULL; in rxe_qp_from_init()
452 if (srq) in rxe_qp_from_init()
453 rxe_put(srq); in rxe_qp_from_init()
468 init->srq = qp->ibqp.srq; in rxe_qp_to_init()
[all …]
/linux/drivers/infiniband/sw/siw/
H A Dsiw_qp_rx.c333 struct siw_srq *srq; in siw_rqe_get() local
338 srq = qp->srq; in siw_rqe_get()
339 if (srq) { in siw_rqe_get()
340 spin_lock_irqsave(&srq->lock, flags); in siw_rqe_get()
341 if (unlikely(!srq->num_rqe)) in siw_rqe_get()
344 rqe = &srq->recvq[srq->rq_get % srq->num_rqe]; in siw_rqe_get()
378 if (srq) in siw_rqe_get()
379 spin_unlock_irqrestore(&srq->lock, flags); in siw_rqe_get()
382 if (!srq) { in siw_rqe_get()
385 if (srq->armed) { in siw_rqe_get()
[all …]
/linux/drivers/infiniband/hw/hns/
H A Dhns_roce_hw_v2.c1043 static void *get_srq_wqe_buf(struct hns_roce_srq *srq, u32 n) in get_srq_wqe_buf() argument
1045 return hns_roce_buf_offset(srq->buf_mtr.kmem, n << srq->wqe_shift); in get_srq_wqe_buf()
1054 static void hns_roce_free_srq_wqe(struct hns_roce_srq *srq, u32 wqe_index) in hns_roce_free_srq_wqe() argument
1057 spin_lock(&srq->lock); in hns_roce_free_srq_wqe()
1059 bitmap_clear(srq->idx_que.bitmap, wqe_index, 1); in hns_roce_free_srq_wqe()
1060 srq->idx_que.tail++; in hns_roce_free_srq_wqe()
1062 spin_unlock(&srq->lock); in hns_roce_free_srq_wqe()
1065 static int hns_roce_srqwq_overflow(struct hns_roce_srq *srq) in hns_roce_srqwq_overflow() argument
1067 struct hns_roce_idx_que *idx_que = &srq->idx_que; in hns_roce_srqwq_overflow()
1069 return idx_que->head - idx_que->tail >= srq->wqe_cnt; in hns_roce_srqwq_overflow()
[all …]
/linux/drivers/infiniband/hw/ocrdma/
H A Docrdma_hw.c756 ib_evt.element.srq = &qp->srq->ibsrq; in ocrdma_dispatch_ibevent()
762 ib_evt.element.srq = &qp->srq->ibsrq; in ocrdma_dispatch_ibevent()
790 if (qp->srq->ibsrq.event_handler) in ocrdma_dispatch_ibevent()
791 qp->srq->ibsrq.event_handler(&ib_evt, in ocrdma_dispatch_ibevent()
792 qp->srq->ibsrq. in ocrdma_dispatch_ibevent()
916 if (qp->srq) in _ocrdma_qp_buddy_cq_handler()
2113 if (!qp->srq) { in ocrdma_flush_qp()
2356 if (!attrs->srq) { in ocrdma_get_create_qp_rsp()
2399 if (attrs->srq) { in ocrdma_mbx_create_qp()
2400 struct ocrdma_srq *srq = get_ocrdma_srq(attrs->srq); in ocrdma_mbx_create_qp() local
[all …]
/linux/drivers/infiniband/hw/bnxt_re/
H A Dib_verbs.c1180 if (!qp->qplib_qp.srq) { in bnxt_re_init_user_qp()
1451 if (init_attr->srq) { in bnxt_re_init_rq_attr()
1452 struct bnxt_re_srq *srq; in bnxt_re_init_rq_attr() local
1454 srq = container_of(init_attr->srq, struct bnxt_re_srq, ib_srq); in bnxt_re_init_rq_attr()
1455 qplqp->srq = &srq->qplib_srq; in bnxt_re_init_rq_attr()
2022 struct bnxt_re_srq *srq = container_of(ib_srq, struct bnxt_re_srq, in bnxt_re_destroy_srq() local
2024 struct bnxt_re_dev *rdev = srq->rdev; in bnxt_re_destroy_srq()
2025 struct bnxt_qplib_srq *qplib_srq = &srq->qplib_srq; in bnxt_re_destroy_srq()
2033 free_page((unsigned long)srq->uctx_srq_page); in bnxt_re_destroy_srq()
2034 hash_del(&srq->hash_entry); in bnxt_re_destroy_srq()
[all …]
/linux/include/rdma/
H A Dib_cm.h116 unsigned int srq:1; member
131 unsigned int srq:1; member
369 u8 srq; member
393 u8 srq; member
/linux/drivers/infiniband/hw/vmw_pvrdma/
H A Dpvrdma_main.c376 struct pvrdma_srq *srq; in pvrdma_srq_event() local
381 srq = dev->srq_tbl[srqn % dev->dsr->caps.max_srq]; in pvrdma_srq_event()
383 srq = NULL; in pvrdma_srq_event()
384 if (srq) in pvrdma_srq_event()
385 refcount_inc(&srq->refcnt); in pvrdma_srq_event()
388 if (srq && srq->ibsrq.event_handler) { in pvrdma_srq_event()
389 struct ib_srq *ibsrq = &srq->ibsrq; in pvrdma_srq_event()
393 e.element.srq = ibsrq; in pvrdma_srq_event()
397 if (srq) { in pvrdma_srq_event()
398 if (refcount_dec_and_test(&srq->refcnt)) in pvrdma_srq_event()
[all …]
/linux/drivers/infiniband/ulp/ipoib/
H A Dipoib_cm.c104 ret = ib_post_srq_recv(priv->cm.srq, &priv->cm.rx_wr, NULL); in ipoib_cm_post_receive_srq()
257 .srq = priv->cm.srq, in ipoib_cm_create_rx_qp()
436 rep.srq = ipoib_cm_has_srq(dev); in ipoib_cm_send_rep()
1063 .srq = priv->cm.srq, in ipoib_cm_create_tx_qp()
1115 req.srq = ipoib_cm_has_srq(dev); in ipoib_cm_send_req()
1563 priv->cm.srq = ib_create_srq(priv->pd, &srq_init_attr); in ipoib_cm_create_srq()
1564 if (IS_ERR(priv->cm.srq)) { in ipoib_cm_create_srq()
1565 if (PTR_ERR(priv->cm.srq) != -EOPNOTSUPP) in ipoib_cm_create_srq()
1567 priv->ca->name, PTR_ERR(priv->cm.srq)); in ipoib_cm_create_srq()
1568 priv->cm.srq = NULL; in ipoib_cm_create_srq()
[all …]
/linux/drivers/net/ethernet/mellanox/mlx4/
H A Dresource_tracker.c113 struct res_srq *srq; member
455 dev->quotas.srq = dev->caps.num_srqs - dev->caps.reserved_srqs; in mlx4_init_quotas()
466 dev->quotas.srq = in mlx4_init_quotas()
1705 enum res_srq_states state, struct res_srq **srq) in srq_res_start_move_to() argument
1731 if (srq) in srq_res_start_move_to()
1732 *srq = r; in srq_res_start_move_to()
2717 int srq = (be32_to_cpu(qpc->srqn) >> 24) & 1; in qp_get_mtt_size() local
2729 rq_size = (srq|rss|xrc) ? 0 : (1 << (log_rq_size + log_rq_stride + 4)); in qp_get_mtt_size()
2964 struct res_srq *srq; in mlx4_RST2INIT_QP_wrapper() local
3004 err = get_res(dev, slave, srqn, RES_SRQ, &srq); in mlx4_RST2INIT_QP_wrapper()
[all …]
/linux/drivers/infiniband/hw/mlx4/
H A DMakefile4 mlx4_ib-y := ah.o cq.o doorbell.o mad.o main.o mr.o qp.o srq.o mcg.o cm.o alias_GUID.o sysfs.o
/linux/drivers/net/ethernet/chelsio/cxgb4/
H A DMakefile9 cxgb4_uld.o srq.o sched.o cxgb4_filter.o cxgb4_tc_u32.o \

123