| /linux/drivers/infiniband/hw/mthca/ |
| H A D | mthca_srq.c | 74 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 D | mthca_dev.h | 248 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 D | mthca_cq.c | 274 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()
|
| /linux/drivers/infiniband/hw/cxgb4/ |
| H A D | t4.h | 425 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 …]
|
| /linux/drivers/infiniband/hw/mlx5/ |
| H A D | srq.h | 48 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/core/ |
| H A D | verbs.c | 1075 struct ib_srq *srq; in ib_create_srq_user() local 1078 srq = rdma_zalloc_drv_obj(pd->device, ib_srq); in ib_create_srq_user() 1079 if (!srq) in ib_create_srq_user() 1082 srq->device = pd->device; in ib_create_srq_user() 1083 srq->pd = pd; in ib_create_srq_user() 1084 srq->event_handler = srq_init_attr->event_handler; in ib_create_srq_user() 1085 srq->srq_context = srq_init_attr->srq_context; in ib_create_srq_user() 1086 srq->srq_type = srq_init_attr->srq_type; in ib_create_srq_user() 1087 srq->uobject = uobject; in ib_create_srq_user() 1089 if (ib_srq_has_cq(srq->srq_type)) { in ib_create_srq_user() [all …]
|
| H A D | nldev.c | 846 static int fill_res_srq_qps(struct sk_buff *msg, struct ib_srq *srq) in fill_res_srq_qps() argument 859 rt = &srq->device->res[RDMA_RESTRACK_QP]; in fill_res_srq_qps() 866 if (!qp->srq || (qp->srq->res.id != srq->res.id)) { in fill_res_srq_qps() 906 struct ib_srq *srq = container_of(res, struct ib_srq, res); in fill_res_srq_entry() local 907 struct ib_device *dev = srq->device; in fill_res_srq_entry() 909 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_SRQN, srq->res.id)) in fill_res_srq_entry() 912 if (nla_put_u8(msg, RDMA_NLDEV_ATTR_RES_TYPE, srq->srq_type)) in fill_res_srq_entry() 915 if (nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_PDN, srq->pd->res.id)) in fill_res_srq_entry() 918 if (ib_srq_has_cq(srq->srq_type)) { in fill_res_srq_entry() 920 srq->ext.cq->res.id)) in fill_res_srq_entry() [all …]
|
| /linux/drivers/infiniband/hw/bnxt_re/ |
| H A D | uapi.c | 260 struct bnxt_re_srq *srq; in UVERBS_HANDLER() local 266 srq = container_of(res_uobj->object, struct bnxt_re_srq, ib_srq); in UVERBS_HANDLER() 267 if (!srq->toggle_entry) in UVERBS_HANDLER() 269 mmap_offset = rdma_user_mmap_get_offset(&srq->toggle_entry->rdma_entry); in UVERBS_HANDLER() 272 kref_get(&srq->toggle_entry->rdma_entry.ref); in UVERBS_HANDLER() 273 toggle_entry = srq->toggle_entry; in UVERBS_HANDLER() 314 struct bnxt_re_srq *srq; in UVERBS_HANDLER() local 319 srq = container_of(res_uobj->object, struct bnxt_re_srq, ib_srq); in UVERBS_HANDLER() 320 if (srq->toggle_entry) in UVERBS_HANDLER() 322 rdma_user_mmap_get_offset(&srq->toggle_entry->rdma_entry); in UVERBS_HANDLER() [all …]
|
| H A D | main.c | 1272 struct bnxt_re_srq *srq; in bnxt_re_fill_res_srq_entry() local 1278 srq = container_of(ib_srq, struct bnxt_re_srq, ib_srq); in bnxt_re_fill_res_srq_entry() 1280 if (rdma_nl_put_driver_u32_hex(msg, "wqe_size", srq->qplib_srq.wqe_size)) in bnxt_re_fill_res_srq_entry() 1282 if (rdma_nl_put_driver_u32_hex(msg, "max_wqe", srq->qplib_srq.max_wqe)) in bnxt_re_fill_res_srq_entry() 1284 if (rdma_nl_put_driver_u32_hex(msg, "max_sge", srq->qplib_srq.max_sge)) in bnxt_re_fill_res_srq_entry() 1286 if (rdma_nl_put_driver_u32_hex(msg, "srq_limit", srq->qplib_srq.threshold)) in bnxt_re_fill_res_srq_entry() 1300 struct bnxt_re_srq *srq; in bnxt_re_fill_res_srq_entry_raw() local 1304 srq = container_of(ib_srq, struct bnxt_re_srq, ib_srq); in bnxt_re_fill_res_srq_entry_raw() 1305 rdev = srq->rdev; in bnxt_re_fill_res_srq_entry_raw() 1319 srq->qplib_srq.id, len, data); in bnxt_re_fill_res_srq_entry_raw() [all …]
|
| /linux/drivers/net/ |
| H A D | eql.c | 264 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 D | rxe_verbs.c | 391 struct rxe_srq *srq = to_rsrq(ibsrq); in rxe_create_srq() local 417 err = rxe_add_to_pool(&rxe->srq_pool, srq); in rxe_create_srq() 424 srq->pd = pd; in rxe_create_srq() 426 err = rxe_srq_from_init(rxe, srq, init, udata, uresp); in rxe_create_srq() 428 rxe_dbg_srq(srq, "create srq failed, err = %d\n", err); in rxe_create_srq() 435 cleanup_err = rxe_cleanup(srq); in rxe_create_srq() 437 rxe_err_srq(srq, "cleanup failed, err = %d\n", cleanup_err); in rxe_create_srq() 447 struct rxe_srq *srq = to_rsrq(ibsrq); in rxe_modify_srq() local 458 err = rxe_srq_chk_attr(rxe, srq, attr, mask); in rxe_modify_srq() 460 rxe_dbg_srq(srq, "bad init attributes\n"); in rxe_modify_srq() [all …]
|
| /linux/drivers/infiniband/sw/siw/ |
| H A D | siw_qp_rx.c | 333 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/ocrdma/ |
| H A D | ocrdma_hw.c | 756 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/include/rdma/ |
| H A D | ib_cm.h | 116 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 D | pvrdma_main.c | 376 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/net/ethernet/mellanox/mlx4/ |
| H A D | resource_tracker.c | 113 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 …]
|
| H A D | Makefile | 6 srq.o resource_tracker.o crdump.o
|
| /linux/drivers/infiniband/hw/mlx4/ |
| H A D | Makefile | 4 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/infiniband/sw/rdmavt/ |
| H A D | Makefile | 12 rc.o srq.o trace.o
|
| H A D | rc.c | 56 if (qp->ibqp.srq) { in rvt_compute_aeth()
|
| /linux/drivers/net/ethernet/chelsio/cxgb4/ |
| H A D | Makefile | 9 cxgb4_uld.o srq.o sched.o cxgb4_filter.o cxgb4_tc_u32.o \
|
| H A D | srq.c | 58 struct srq_data *s = adap->srq; in do_srq_table_rpl()
|
| /linux/drivers/nvme/target/ |
| H A D | rdma.c | 128 struct ib_srq *srq; member 504 ret = ib_post_srq_recv(cmd->nsrq->srq, &cmd->wr, NULL); in nvmet_rdma_post_recv() 1081 ib_destroy_srq(nsrq->srq); in nvmet_rdma_destroy_srq() 1105 struct ib_srq *srq; in nvmet_rdma_init_srq() local 1116 srq = ib_create_srq(ndev->pd, &srq_attr); in nvmet_rdma_init_srq() 1117 if (IS_ERR(srq)) { in nvmet_rdma_init_srq() 1118 ret = PTR_ERR(srq); in nvmet_rdma_init_srq() 1128 nsrq->srq = srq; in nvmet_rdma_init_srq() 1143 ib_destroy_srq(srq); in nvmet_rdma_init_srq() 1309 qp_attr.srq = queue->nsrq->srq; in nvmet_rdma_create_queue_ib()
|
| /linux/drivers/infiniband/hw/qedr/ |
| H A D | main.c | 651 struct qedr_srq *srq; in qedr_affiliated_event() local 756 srq = xa_load(&dev->srqs, srq_id); in qedr_affiliated_event() 757 if (srq) { in qedr_affiliated_event() 758 ibsrq = &srq->ibsrq; in qedr_affiliated_event() 761 event.element.srq = ibsrq; in qedr_affiliated_event() 771 DP_NOTICE(dev, "SRQ event %d on handle %p\n", e_code, srq); in qedr_affiliated_event()
|
| /linux/include/linux/mlx4/ |
| H A D | device.h | 833 int srq; member 928 } __packed srq; member 1159 struct mlx4_mtt *mtt, u64 db_rec, struct mlx4_srq *srq); 1160 void mlx4_srq_free(struct mlx4_dev *dev, struct mlx4_srq *srq); 1161 int mlx4_srq_arm(struct mlx4_dev *dev, struct mlx4_srq *srq, int limit_watermark); 1162 int mlx4_srq_query(struct mlx4_dev *dev, struct mlx4_srq *srq, int *limit_watermark);
|