• Chuck Lever's avatar
    SUNRPC: Add svc_rqst_replace_page() API · 2f0f88f4
    Chuck Lever authored
    Replacing a page in rq_pages[] requires a get_page(), which is a
    bus-locked operation, and a put_page(), which can be even more
    costly.
    
    To reduce the cost of replacing a page in rq_pages[], batch the
    put_page() operations by collecting "freed" pages in a pagevec,
    and then release those pages when the pagevec is full. This
    pagevec is also emptied when each RPC completes.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    2f0f88f4
svc.c 41.6 KB