Messages in this thread | | | Date | Fri, 12 Sep 2008 21:37:52 +0100 | From | Mel Gorman <> | Subject | Re: [PATCH] Mark the correct zone as full when scanning zonelists |
| |
On (12/09/08 10:10), KAMEZAWA Hiroyuki didst pronounce: > On Thu, 11 Sep 2008 14:41:55 -0700 > Andrew Morton <akpm@linux-foundation.org> wrote: > > > On Thu, 11 Sep 2008 22:25:51 +0100 > > Mel Gorman <mel@csn.ul.ie> wrote: > > > > > The for_each_zone_zonelist() uses a struct zoneref *z cursor when scanning > > > zonelists to keep track of where in the zonelist it is. The zoneref that > > > is returned corresponds to the the next zone that is to be scanned, not > > > the current one as it originally thought of as an opaque list. > > > > > > When the page allocator is scanning a zonelist, it marks zones that it > > > temporarily full zones to eliminate near-future scanning attempts. > > > > That sentence needs help. > > > Hmm, should we rename > > next_zone_zonelist() => get_appropriate_zone_from_list() > > or some better name ? >
Maybe as a separate patch, but to be honest the name still makes sense to me but I'm biased.
> > > It uses > > > the zoneref for the marking and consequently the incorrect zone gets marked > > > full. This leads to a suitable zone being skipped in the mistaken belief > > > it is full. This patch corrects the problem by changing zoneref to be the > > > current zone being scanned instead of the next one. > > > > Applicable to 2.6.26 as well, yes? > > > Maybe yes. But it's better to show where this patch really fixes. > Is this a fix for misunderstanding usage of zoneref in > mm/page_alloc.c::get_page_from_freelist() ? > > == here ?== > if (NUMA_BUILD) > zlc_mark_zone_full(zonelist, z); >
I spelled this out a bit better hopefully in the updated changelog.
Thanks
-- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab
| |