• Chuck Lever's avatar
    SUNRPC: Move svc_xprt_received() call sites · 82011c80
    Chuck Lever authored
    Currently, XPT_BUSY is not cleared until xpo_recvfrom returns.
    That effectively blocks the receipt and handling of the next RPC
    message until the current one has been taken off the transport.
    This strict ordering is a requirement for socket transports.
    
    For our kernel RPC/RDMA transport implementation, however, dequeuing
    an ingress message is nothing more than a list_del(). The transport
    can safely be marked un-busy as soon as that is done.
    
    To keep the changes simpler, this patch just moves the
    svc_xprt_received() call site from svc_handle_xprt() into the
    transports, so that the actual optimization can be done in a
    subsequent patch.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    82011c80
svc_xprt.c 38.4 KB