• Chuck Lever's avatar
    xprtrdma: Use an llist to manage free rpcrdma_reps · b0b227f0
    Chuck Lever authored
    rpcrdma_rep objects are removed from their free list by only a
    single thread: the Receive completion handler. Thus that free list
    can be converted to an llist, where a single-threaded consumer and
    a multi-threaded producer (rpcrdma_buffer_put) can both access the
    llist without the need for any serialization.
    
    This eliminates spin lock contention between the Receive completion
    handler and rpcrdma_buffer_get, and makes the rep consumer wait-
    free.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    b0b227f0
verbs.c 38.1 KB