• Mel Gorman's avatar
    mm/page_alloc: rename alloced to allocated · cb66bede
    Mel Gorman authored
    Patch series "Introduce a bulk order-0 page allocator with two in-tree users", v6.
    
    This series introduces a bulk order-0 page allocator with sunrpc and the
    network page pool being the first users.  The implementation is not
    efficient as semantics needed to be ironed out first.  If no other
    semantic changes are needed, it can be made more efficient.  Despite that,
    this is a performance-related for users that require multiple pages for an
    operation without multiple round-trips to the page allocator.  Quoting the
    last patch for the high-speed networking use-case
    
                Kernel          XDP stats       CPU     pps           Delta
                Baseline        XDP-RX CPU      total   3,771,046       n/a
                List            XDP-RX CPU      total   3,940,242    +4.49%
                Array           XDP-RX CPU      total   4,249,224   +12.68%
    
    Via the SUNRPC traces of svc_alloc_arg()
    
    	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
    
    Both potential users in this series are corner cases (NFS and high-speed
    networks) so it is unlikely that most users will see any benefit in the
    short term.  Other potential other users are batch allocations for page
    cache readahead, fault around and SLUB allocations when high-order pages
    are unavailable.  It's unknown how much benefit would be seen by
    converting multiple page allocation calls to a single batch or what
    difference it may make to headline performance.
    
    Light testing of my own running dbench over NFS passed.  Chuck and Jesper
    conducted their own tests and details are included in the changelogs.
    
    Patch 1 renames a variable name that is particularly unpopular
    
    Patch 2 adds a bulk page allocator
    
    Patch 3 adds an array-based version of the bulk allocator
    
    Patches 4-5 adds micro-optimisations to the implementation
    
    Patches 6-7 SUNRPC user
    
    Patches 8-9 Network page_pool user
    
    This patch (of 9):
    
    Review feedback of the bulk allocator twice found problems with "alloced"
    being a counter for pages allocated.  The naming was based on the API name
    "alloc" and was based on the idea that verbal communication about malloc
    tends to use the fake word "malloced" instead of the fake word mallocated.
    To be consistent, this preparation patch renames alloced to allocated in
    rmqueue_bulk so the bulk allocator and per-cpu allocator use similar names
    when the bulk allocator is introduced.
    
    Link: https://lkml.kernel.org/r/20210325114228.27719-1-mgorman@techsingularity.net
    Link: https://lkml.kernel.org/r/20210325114228.27719-2-mgorman@techsingularity.netSigned-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
    Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
    Reviewed-by: default avatarAlexander Lobakin <alobakin@pm.me>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Cc: Chuck Lever <chuck.lever@oracle.com>
    Cc: Jesper Dangaard Brouer <brouer@redhat.com>
    Cc: Christoph Hellwig <hch@infradead.org>
    Cc: Alexander Duyck <alexander.duyck@gmail.com>
    Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
    Cc: David Miller <davem@davemloft.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    cb66bede
page_alloc.c 251 KB