mirror of
https://github.com/torvalds/linux.git
synced 2024-12-02 17:11:33 +00:00
IB/hfi1: Add hfi1 post send tables
Add initial table for table driven post_send support. Reviewed-by: Jianxin Xiong <jianxin.xiong@intel.com> Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
afcf8f7647
commit
1ac57c50e9
@ -52,6 +52,7 @@
|
||||
#include <linux/seq_file.h>
|
||||
#include <rdma/rdma_vt.h>
|
||||
#include <rdma/rdmavt_qp.h>
|
||||
#include <rdma/ib_verbs.h>
|
||||
|
||||
#include "hfi.h"
|
||||
#include "qp.h"
|
||||
@ -115,6 +116,49 @@ static const u16 credit_table[31] = {
|
||||
32768 /* 1E */
|
||||
};
|
||||
|
||||
const struct rvt_operation_params hfi1_post_parms[RVT_OPERATION_MAX] = {
|
||||
[IB_WR_RDMA_WRITE] = {
|
||||
.length = sizeof(struct ib_rdma_wr),
|
||||
.qpt_support = BIT(IB_QPT_UC) | BIT(IB_QPT_RC),
|
||||
},
|
||||
|
||||
[IB_WR_RDMA_READ] = {
|
||||
.length = sizeof(struct ib_rdma_wr),
|
||||
.qpt_support = BIT(IB_QPT_RC),
|
||||
.flags = RVT_OPERATION_ATOMIC,
|
||||
},
|
||||
|
||||
[IB_WR_ATOMIC_CMP_AND_SWP] = {
|
||||
.length = sizeof(struct ib_atomic_wr),
|
||||
.qpt_support = BIT(IB_QPT_RC),
|
||||
.flags = RVT_OPERATION_ATOMIC | RVT_OPERATION_ATOMIC_SGE,
|
||||
},
|
||||
|
||||
[IB_WR_ATOMIC_FETCH_AND_ADD] = {
|
||||
.length = sizeof(struct ib_atomic_wr),
|
||||
.qpt_support = BIT(IB_QPT_RC),
|
||||
.flags = RVT_OPERATION_ATOMIC | RVT_OPERATION_ATOMIC_SGE,
|
||||
},
|
||||
|
||||
[IB_WR_RDMA_WRITE_WITH_IMM] = {
|
||||
.length = sizeof(struct ib_rdma_wr),
|
||||
.qpt_support = BIT(IB_QPT_UC) | BIT(IB_QPT_RC),
|
||||
},
|
||||
|
||||
[IB_WR_SEND] = {
|
||||
.length = sizeof(struct ib_send_wr),
|
||||
.qpt_support = BIT(IB_QPT_UD) | BIT(IB_QPT_SMI) | BIT(IB_QPT_GSI) |
|
||||
BIT(IB_QPT_UC) | BIT(IB_QPT_RC),
|
||||
},
|
||||
|
||||
[IB_WR_SEND_WITH_IMM] = {
|
||||
.length = sizeof(struct ib_send_wr),
|
||||
.qpt_support = BIT(IB_QPT_UD) | BIT(IB_QPT_SMI) | BIT(IB_QPT_GSI) |
|
||||
BIT(IB_QPT_UC) | BIT(IB_QPT_RC),
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
static void flush_tx_list(struct rvt_qp *qp)
|
||||
{
|
||||
struct hfi1_qp_priv *priv = qp->priv;
|
||||
|
@ -54,6 +54,8 @@
|
||||
|
||||
extern unsigned int hfi1_qp_table_size;
|
||||
|
||||
extern const struct rvt_operation_params hfi1_post_parms[];
|
||||
|
||||
/*
|
||||
* free_ahg - clear ahg from QP
|
||||
*/
|
||||
|
@ -1683,6 +1683,9 @@ int hfi1_register_ib_device(struct hfi1_devdata *dd)
|
||||
dd->verbs_dev.rdi.dparms.nports = dd->num_pports;
|
||||
dd->verbs_dev.rdi.dparms.npkeys = hfi1_get_npkeys(dd);
|
||||
|
||||
/* post send table */
|
||||
dd->verbs_dev.rdi.post_parms = hfi1_post_parms;
|
||||
|
||||
ppd = dd->pport;
|
||||
for (i = 0; i < dd->num_pports; i++, ppd++)
|
||||
rvt_init_port(&dd->verbs_dev.rdi,
|
||||
|
Loading…
Reference in New Issue
Block a user