Subject: Re: [PATCH] mm: compaction: Partially revert capture of suitable high-order page

From: Mel Gorman <[email-masked]>
Date: Mon, 14 Jan 2013 10:49:30 +0000

On Sat, Jan 12, 2013 at 09:07:33PM -0600, Simon Jeons wrote:
> On Fri, 2013-01-11 at 09:27 +0000, Mel Gorman wrote:
> > Eric Wong reported on 3.7 and 3.8-rc2 that ppoll() got stuck when waiting
> > for POLLIN on a local TCP socket. It was easier to trigger if there was disk
> > IO and dirty pages at the same time and he bisected it to commit 1fb3f8ca
> > "mm: compaction: capture a suitable high-order page immediately when it
> > is made available".
> > 
> > The intention of that patch was to improve high-order allocations under
> > memory pressure after changes made to reclaim in 3.6 drastically hurt
> > THP allocations but the approach was flawed. For Eric, the problem was
> > that page->pfmemalloc was not being cleared for captured pages leading to
> > a poor interaction with swap-over-NFS support causing the packets to be
> > dropped. However, I identified a few more problems with the patch including
> > the fact that it can increase contention on zone->lock in some cases which
> > could result in async direct compaction being aborted early.
> > 
> > In retrospect the capture patch took the wrong approach. What it should
> > have done is mark the pageblock being migrated as MIGRATE_ISOLATE if it
> > was allocating for THP and avoided races that way. While the patch was
> 
> Hi Mel,
> 
> Mark pageblock being migrated as MIGRATE_ISOLATE if it was allocating
> for THP and avoided races that way is a good idea. But why I can't see
> you do it in this patch?
> 

Because it is not what the patch does. Implementing that idea will take
time to do properly and cleanly with no guarantee it'll work well enough
to justify the complexity. Fixing the POLLIN bug was more important.

-- 
Mel Gorman
SUSE Labs

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email-masked].  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email-masked]"> [email-masked] </a>