• Chuck Lever's avatar
    SUNRPC: Separate buffer pointers for RPC Call and Reply messages · 68778945
    Chuck Lever authored
    For xprtrdma, the RPC Call and Reply buffers are involved in real
    I/O operations.
    
    To start with, the DMA direction of the I/O for a Call is opposite
    that of a Reply.
    
    In the current arrangement, the Reply buffer address is on a
    four-byte alignment just past the call buffer. Would be friendlier
    on some platforms if that was at a DMA cache alignment instead.
    
    Because the current arrangement allocates a single memory region
    which contains both buffers, the RPC Reply buffer often contains a
    page boundary in it when the Call buffer is large enough (which is
    frequent).
    
    It would be a little nicer for setting up DMA operations (and
    possible registration of the Reply buffer) if the two buffers were
    separated, well-aligned, and contained as few page boundaries as
    possible.
    
    Now, I could just pad out the single memory region used for the pair
    of buffers. But frequently that would mean a lot of unused space to
    ensure the Reply buffer did not have a page boundary.
    
    Add a separate pointer to rpc_rqst that points right to the RPC
    Reply buffer. This makes no difference to xprtsock, but it will help
    xprtrdma in subsequent patches.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    68778945
transport.c 22.4 KB