Messages in this thread | | | Date | Mon, 20 Oct 2014 11:26:56 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH 4/5] mm, compaction: always update cached scanner positions |
| |
On 10/07/2014 11:33 AM, Vlastimil Babka wrote: > Compaction caches the migration and free scanner positions between compaction > invocations, so that the whole zone gets eventually scanned and there is no > bias towards the initial scanner positions at the beginning/end of the zone. > > The cached positions are continuously updated as scanners progress and the > updating stops as soon as a page is successfully isolated. The reasoning > behind this is that a pageblock where isolation succeeded is likely to succeed > again in near future and it should be worth revisiting it. > > However, the downside is that potentially many pages are rescanned without > successful isolation. At worst, there might be a page where isolation from LRU > succeeds but migration fails (potentially always). So upon encountering this > page, cached position would always stop being updated for no good reason. > It might have been useful to let such page be rescanned with sync compaction > after async one failed, but this is now handled by caching scanner position > for async and sync mode separately since commit 35979ef33931 ("mm, compaction: > add per-zone migration pfn cache for async compaction"). > > After this patch, cached positions are updated unconditionally. In > stress-highalloc benchmark, this has decreased the numbers of scanned pages > by few percent, without affecting allocation success rates. > > Signed-off-by: Vlastimil Babka <vbabka@suse.cz> > Cc: Minchan Kim <minchan@kernel.org> > Cc: Mel Gorman <mgorman@suse.de> > Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> > Cc: Michal Nazarewicz <mina86@mina86.com> > Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> > Cc: Christoph Lameter <cl@linux.com> > Cc: Rik van Riel <riel@redhat.com> > Cc: David Rientjes <rientjes@google.com>
Acked-by: Rik van Riel <riel@redhat.com>
| |