• M
    mm: fix remote numa hits statistics · 2df26639
    Michal Hocko 提交于
    Jia He has noticed that commit b9f00e14 ("mm, page_alloc: reduce
    branches in zone_statistics") has an unintentional side effect that
    remote node allocation requests are accounted as NUMA_MISS rathat than
    NUMA_HIT and NUMA_OTHER if such a request doesn't use __GFP_OTHER_NODE.
    
    There are many of these potentially because the flag is used very rarely
    while we have many users of __alloc_pages_node.
    
    Fix this by simply ignoring __GFP_OTHER_NODE (it can be removed in a
    follow up patch) and treat all allocations that were satisfied from the
    preferred zone's node as NUMA_HITS because this is the same node we
    requested the allocation from in most cases.  If this is not the local
    node then we just account it as NUMA_OTHER rather than NUMA_LOCAL.
    
    One downsize would be that an allocation request for a node which is
    outside of the mempolicy nodemask would be reported as a hit which is a
    bit weird but that was the case before b9f00e14 already.
    
    Fixes: b9f00e14 ("mm, page_alloc: reduce branches in zone_statistics")
    Link: http://lkml.kernel.org/r/20170102153057.9451-2-mhocko@kernel.orgSigned-off-by: NMichal Hocko <mhocko@suse.com>
    Reported-by: NJia He <hejianet@gmail.com>
    Reviewed-by: Vlastimil Babka <vbabka@suse.cz> # with cbmc[1] superpowers
    Acked-by: NMel Gorman <mgorman@suse.de>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Taku Izumi <izumi.taku@jp.fujitsu.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    2df26639
page_alloc.c 202.7 KB