Re: ppoll() stuck on POLLIN while TCP peer is sending
flat view
From: Eric Wong <hidden>
Date: 2013-01-09 21:29:10
Also in:
linux-mm, lkml
Mel Gorman [off-list ref] wrote:
When I looked at it for long enough I found a number of problems. Most affect timing but two serious issues are in there. One affects how long kswapd spends compacting versus reclaiming and the other increases lock contention meaning that async compaction can abort early. Both are serious and could explain why a driver would fail high-order allocations. Please try the following patch. However, even if it works the benefit of capture may be so marginal that partially reverting it and simplifying compaction.c is the better decision.
Btw, I'm still testing this patch with the "page->pfemalloc = false" change on top of it.
quoted hunk ↗ jump to hunk
diff --git a/mm/compaction.c b/mm/compaction.c index 6b807e4..03c82c0 100644 --- a/mm/compaction.c +++ b/mm/compaction.c@@ -857,7 +857,8 @@ static int compact_finished(struct zone *zone, } else { unsigned int order; for (order = cc->order; order < MAX_ORDER; order++) { - struct free_area *area = &zone->free_area[cc->order]; + struct free_area *area = &zone->free_area[order];
I noticed something like this hunk wasn't in your latest partial revert ([ref]) I admit I don't understand this code, but this jumped out at me. -- 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>