• Chuck Lever's avatar
    svcrdma: Single-stage RDMA Read · 7d81ee87
    Chuck Lever authored
    Currently the generic RPC server layer calls svc_rdma_recvfrom()
    twice to retrieve an RPC message that uses Read chunks. I'm not
    exactly sure why this design was chosen originally.
    
    Instead, let's wait for the Read chunk completion inline in the
    first call to svc_rdma_recvfrom().
    
    The goal is to eliminate some page allocator churn.
    rdma_read_complete() replaces pages in the second svc_rqst by
    calling put_page() repeatedly while the upper layer waits for the
    request to be constructed, which adds unnecessary NFS WRITE round-
    trip latency.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Reviewed-by: default avatarTom Talpey <tom@talpey.com>
    7d81ee87
svc_rdma_recvfrom.c 25.8 KB