• Chuck Lever's avatar
    SUNRPC: set rq_page_end differently · ab836264
    Chuck Lever authored
    Patch series "SUNRPC consumer for the bulk page allocator"
    
    This patch set and the measurements below are based on yesterday's
    bulk allocator series:
    
      git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-bulk-rebase-v5r9
    
    The patches change SUNRPC to invoke the array-based bulk allocator
    instead of alloc_page().
    
    The micro-benchmark results are promising.  I ran a mixture of 256KB
    reads and writes over NFSv3.  The server's kernel is built with KASAN
    enabled, so the comparison is exaggerated but I believe it is still
    valid.
    
    I instrumented svc_recv() to measure the latency of each call to
    svc_alloc_arg() and report it via a trace point.  The following results
    are averages across the trace events.
    
      Single page: 25.007 us per call over 532,571 calls
      Bulk list:    6.258 us per call over 517,034 calls
      Bulk array:   4.590 us per call over 517,442 calls
    
    This patch (of 2)
    
    Refactor:
    
    I'm about to use the loop variable @i for something else.
    
    As far as the "i++" is concerned, that is a post-increment. The
    value of @i is not used subsequently, so the increment operator
    is unnecessary and can be removed.
    
    Also note that nfsd_read_actor() was renamed nfsd_splice_actor()
    by commit cf8208d0 ("sendfile: convert nfsd to
    splice_direct_to_actor()").
    
    Link: https://lkml.kernel.org/r/20210325114228.27719-7-mgorman@techsingularity.netSigned-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
    Reviewed-by: default avatarAlexander Lobakin <alobakin@pm.me>
    Cc: Alexander Duyck <alexander.duyck@gmail.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: David Miller <davem@davemloft.net>
    Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
    Cc: Jesper Dangaard Brouer <brouer@redhat.com>
    Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    ab836264
svc_xprt.c 38.4 KB