Re: [PATCH RFC 1/1] mm, page_alloc: fix incorrect zone_statistics data
From: Mel Gorman
Date: Tue Dec 20 2016 - 08:10:48 EST
On Tue, Dec 20, 2016 at 10:18:14AM +0100, Michal Hocko wrote:
> On Mon 12-12-16 13:59:07, Jia He wrote:
> > In commit b9f00e147f27 ("mm, page_alloc: reduce branches in
> > zone_statistics"), it reconstructed codes to reduce the branch miss rate.
> > Compared with the original logic, it assumed if !(flag & __GFP_OTHER_NODE)
> > z->node would not be equal to preferred_zone->node. That seems to be
> > incorrect.
>
> I am sorry but I have hard time following the changelog. It is clear
> that you are trying to fix a missed NUMA_{HIT,OTHER} accounting
> but it is not really clear when such thing happens. You are adding
> preferred_zone->node check. preferred_zone is the first zone in the
> requested zonelist. So for the most allocations it is a node from the
> local node. But if something request an explicit numa node (without
> __GFP_OTHER_NODE which would be the majority I suspect) then we could
> indeed end up accounting that as a NUMA_MISS, NUMA_FOREIGN so the
> referenced patch indeed caused an unintended change of accounting AFAIU.
>
This is a similar concern to what I had. If the preferred zone, which is
the first valid usable zone, is not a "hit" for the statistics then I
don't know what "hit" is meant to mean.
--
Mel Gorman
SUSE Labs