Re: [PATCH v2 -mm 1/3] mm: reclaim at order 0 when compaction isenabled

From: Rik van Riel
Date: Wed Jan 25 2012 - 21:13:07 EST


On 01/25/2012 05:16 PM, Andrea Arcangeli wrote:
On Wed, Jan 25, 2012 at 10:27:28AM -0500, Rik van Riel wrote:
On 01/25/2012 10:00 AM, Mel Gorman wrote:
On Tue, Jan 24, 2012 at 01:21:36PM -0500, Rik van Riel wrote:
When built with CONFIG_COMPACTION, kswapd does not try to free
contiguous pages.

balance_pgdat() gets its order from wakeup_kswapd(). This does not apply
to THP because kswapd does not get woken for THP but it should be woken
up for allocations like jumbo frames or order-1.

In the kernel I run at home, I wake up kswapd for THP
as well. This is a larger change, which Andrea asked
me to delay submitting upstream for a bit.

So far there seem to be no ill effects. I'll continue
watching for them.

The only problem we had last time when we managed to add compaction in
kswapd upstream, was a problem of that too high kswapd wakeup
frequency that kept kswapd spinning at 100% load and destroying
specsfs performance. It may have been a fundamental problem of
compaction not being worthwhile to run to generate jumbo frames
because the cost of migrating memory, copying, flushing ptes

I suspect the problem was much simpler back then. Kswapd
invoked compaction inside the loop, instead of outside the
loop, and there was no throttling at all.

About THP, it may not give problems for THP because the allocation
rate is much slower.

I'm still quite afraid that compaction in kswapd waken by jumbo frames
may not work well,

THP allocations may be slower, but jumbo frames get freed
again quickly. We do not have to compact memory for every
few jumbo frame allocations, only when the number of packets
in flight is going up...

You are right that it should be tested, though :)

I will look into that.

--
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/