• Chuck Lever's avatar
    svcrdma: Post the Reply chunk and Send WR together · 10e6fc10
    Chuck Lever authored
    Reduce the doorbell and Send completion rates when sending RPC/RDMA
    replies that have Reply chunks. NFS READDIR procedures typically
    return their result in a Reply chunk, for example.
    
    Instead of calling ib_post_send() to post the Write WRs for the
    Reply chunk, and then calling it again to post the Send WR that
    conveys the transport header, chain the Write WRs to the Send WR
    and call ib_post_send() only once.
    
    Thanks to the Send Queue completion ordering rules, when the Send
    WR completes, that guarantees that Write WRs posted before it have
    also completed successfully. Thus all Write WRs for the Reply chunk
    can remain unsignaled. Instead of handling a Write completion and
    then a Send completion, only the Send completion is seen, and it
    handles clean up for both the Writes and the Send.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    10e6fc10
svc_rdma_rw.c 31.3 KB