• Chuck Lever's avatar
    xprtrdma: Allocate and map transport header buffers at connect time · b78de1dc
    Chuck Lever authored
    Currently the underlying RDMA device is chosen at transport set-up
    time. But it will soon be at connect time instead.
    
    The maximum size of a transport header is based on device
    capabilities. Thus transport header buffers have to be allocated
    _after_ the underlying device has been chosen (via address and route
    resolution); ie, in the connect worker.
    
    Thus, move the allocation of transport header buffers to the connect
    worker, after the point at which the underlying RDMA device has been
    chosen.
    
    This also means the RDMA device is available to do a DMA mapping of
    these buffers at connect time, instead of in the hot I/O path. Make
    that optimization as well.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    b78de1dc
rpc_rdma.c 40.2 KB