lkml.org 
[lkml]   [2022]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 5/6] RDMA/rxe: Implement flush completion
    Date
    Introduce a new IB_UVERBS_WC_FLUSH code to tell userspace a FLUSH
    completion.

    Signed-off-by: Li Zhijian <lizhijian@fujitsu.com>
    ---
    drivers/infiniband/sw/rxe/rxe_comp.c | 4 +++-
    include/rdma/ib_verbs.h | 1 +
    include/uapi/rdma/ib_user_verbs.h | 1 +
    3 files changed, 5 insertions(+), 1 deletion(-)

    diff --git a/drivers/infiniband/sw/rxe/rxe_comp.c b/drivers/infiniband/sw/rxe/rxe_comp.c
    index fb0c008af78c..137ef9945da5 100644
    --- a/drivers/infiniband/sw/rxe/rxe_comp.c
    +++ b/drivers/infiniband/sw/rxe/rxe_comp.c
    @@ -104,6 +104,7 @@ static enum ib_wc_opcode wr_to_wc_opcode(enum ib_wr_opcode opcode)
    case IB_WR_LOCAL_INV: return IB_WC_LOCAL_INV;
    case IB_WR_REG_MR: return IB_WC_REG_MR;
    case IB_WR_BIND_MW: return IB_WC_BIND_MW;
    + case IB_WR_RDMA_FLUSH: return IB_WC_RDMA_FLUSH;

    default:
    return 0xff;
    @@ -263,7 +264,8 @@ static inline enum comp_state check_ack(struct rxe_qp *qp,
    */
    case IB_OPCODE_RC_RDMA_READ_RESPONSE_MIDDLE:
    if (wqe->wr.opcode != IB_WR_RDMA_READ &&
    - wqe->wr.opcode != IB_WR_RDMA_READ_WITH_INV) {
    + wqe->wr.opcode != IB_WR_RDMA_READ_WITH_INV &&
    + wqe->wr.opcode != IB_WR_RDMA_FLUSH) {
    wqe->status = IB_WC_FATAL_ERR;
    return COMPST_ERROR;
    }
    diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
    index 16db9eb3467a..832ea8113221 100644
    --- a/include/rdma/ib_verbs.h
    +++ b/include/rdma/ib_verbs.h
    @@ -980,6 +980,7 @@ const char *__attribute_const__ ib_wc_status_msg(enum ib_wc_status status);
    enum ib_wc_opcode {
    IB_WC_SEND = IB_UVERBS_WC_SEND,
    IB_WC_RDMA_WRITE = IB_UVERBS_WC_RDMA_WRITE,
    + IB_WC_RDMA_FLUSH = IB_UVERBS_WC_FLUSH,
    IB_WC_RDMA_READ = IB_UVERBS_WC_RDMA_READ,
    IB_WC_COMP_SWAP = IB_UVERBS_WC_COMP_SWAP,
    IB_WC_FETCH_ADD = IB_UVERBS_WC_FETCH_ADD,
    diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h
    index 4efa3d76d71d..d426609ad453 100644
    --- a/include/uapi/rdma/ib_user_verbs.h
    +++ b/include/uapi/rdma/ib_user_verbs.h
    @@ -476,6 +476,7 @@ enum ib_uverbs_wc_opcode {
    IB_UVERBS_WC_BIND_MW = 5,
    IB_UVERBS_WC_LOCAL_INV = 6,
    IB_UVERBS_WC_TSO = 7,
    + IB_UVERBS_WC_FLUSH = 8,
    };

    struct ib_uverbs_wc {
    --
    2.31.1
    \
     
     \ /
      Last update: 2022-08-05 09:50    [W:2.779 / U:0.212 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site