Thread (3 messages) flat view 3 messages, 2 authors, 2013-01-14

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

From: Mel Gorman <mgorman@suse.de>
Date: 2013-01-14 10:49:33
Also in: linux-mm, lkml

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:
quoted
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 majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help