• Chuck Lever's avatar
    SUNRPC: Count ingress RPC messages per svc_pool · f208e950
    Chuck Lever authored
    
    
    svc_xprt_enqueue() can be costly, since it involves selecting and
    waking up a process.
    
    More than one enqueue is done per incoming RPC. For example,
    svc_data_ready() enqueues, and so does svc_xprt_receive(). Also, if
    an RPC message requires more than one call to ->recvfrom() to
    receive it fully, each one of those calls does an enqueue.
    
    To get a sense of the average number of transport enqueue operations
    needed to process an incoming RPC message, re-use the "packets" pool
    stat. Track the number of complete RPC messages processed by each
    thread pool.
    Reviewed-by: default avatarJeff Layton <jlayton@redhat.com>
    Reviewed-by: default avatarNeilBrown <neilb@suse.de>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    f208e950
svc.c 42.7 KB