mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-05 08:26:59 +00:00
RDMA//rxe: Optimize send path in rxe_resp.c
Bypass calling check_rkey() in rxe_resp.c for non-rdma messages. Link: https://lore.kernel.org/r/20230530221334.89432-3-rpearsonhpe@gmail.com Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
parent
d11442c6bd
commit
2a129958bd
2 changed files with 13 additions and 2 deletions
|
@ -91,6 +91,9 @@ enum rxe_hdr_mask {
|
|||
RXE_READ_OR_ATOMIC_MASK = (RXE_READ_MASK | RXE_ATOMIC_MASK),
|
||||
RXE_WRITE_OR_SEND_MASK = (RXE_WRITE_MASK | RXE_SEND_MASK),
|
||||
RXE_READ_OR_WRITE_MASK = (RXE_READ_MASK | RXE_WRITE_MASK),
|
||||
RXE_RDMA_OP_MASK = (RXE_READ_MASK | RXE_WRITE_MASK |
|
||||
RXE_ATOMIC_WRITE_MASK | RXE_FLUSH_MASK |
|
||||
RXE_ATOMIC_MASK),
|
||||
};
|
||||
|
||||
#define OPCODE_NONE (-1)
|
||||
|
|
|
@ -387,7 +387,10 @@ static enum resp_states rxe_resp_check_length(struct rxe_qp *qp,
|
|||
}
|
||||
}
|
||||
|
||||
return RESPST_CHK_RKEY;
|
||||
if (pkt->mask & RXE_RDMA_OP_MASK)
|
||||
return RESPST_CHK_RKEY;
|
||||
else
|
||||
return RESPST_EXECUTE;
|
||||
}
|
||||
|
||||
/* if the reth length field is zero we can assume nothing
|
||||
|
@ -434,6 +437,10 @@ static enum resp_states check_rkey(struct rxe_qp *qp,
|
|||
enum resp_states state;
|
||||
int access = 0;
|
||||
|
||||
/* parse RETH or ATMETH header for first/only packets
|
||||
* for va, length, rkey, etc. or use current value for
|
||||
* middle/last packets.
|
||||
*/
|
||||
if (pkt->mask & (RXE_READ_OR_WRITE_MASK | RXE_ATOMIC_WRITE_MASK)) {
|
||||
if (pkt->mask & RXE_RETH_MASK)
|
||||
qp_resp_from_reth(qp, pkt);
|
||||
|
@ -454,7 +461,8 @@ static enum resp_states check_rkey(struct rxe_qp *qp,
|
|||
qp_resp_from_atmeth(qp, pkt);
|
||||
access = IB_ACCESS_REMOTE_ATOMIC;
|
||||
} else {
|
||||
return RESPST_EXECUTE;
|
||||
/* shouldn't happen */
|
||||
WARN_ON(1);
|
||||
}
|
||||
|
||||
/* A zero-byte read or write op is not required to
|
||||
|
|
Loading…
Reference in a new issue