• Vlastimil Babka's avatar
    mm: microoptimize zonelist operations · 05891fb0
    Vlastimil Babka authored
    next_zones_zonelist() returns a zoneref pointer, as well as a zone pointer
    via extra parameter.  Since the latter can be trivially obtained by
    dereferencing the former, the overhead of the extra parameter is
    unjustified.
    
    This patch thus removes the zone parameter from next_zones_zonelist().
    Both callers happen to be in the same header file, so it's simple to add
    the zoneref dereference inline.  We save some bytes of code size.
    
    add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-105 (-105)
    function                                     old     new   delta
    nr_free_zone_pages                           129     115     -14
    __alloc_pages_nodemask                      2300    2285     -15
    get_page_from_freelist                      2652    2576     -76
    
    add/remove: 0/0 grow/shrink: 1/0 up/down: 10/0 (10)
    function                                     old     new   delta
    try_to_compact_pages                         569     579     +10
    Signed-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    05891fb0
mmzone.h 39.8 KB