• Chuck Lever's avatar
    svcrdma: Fewer calls to wake_up() in Send completion handler · 6c8c84f5
    Chuck Lever authored
    Because wake_up() takes an IRQ-safe lock, it can be expensive,
    especially to call inside of a single-threaded completion handler.
    What's more, the Send wait queue almost never has waiters, so
    most of the time, this is an expensive no-op.
    
    As always, the goal is to reduce the average overhead of each
    completion, because a transport's completion handlers are single-
    threaded on one CPU core. This change reduces CPU utilization of
    the Send completion thread by 2-3% on my server.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Reviewed-By: default avatarTom Talpey <tom@talpey.com>
    6c8c84f5
svc_rdma_rw.c 30.5 KB