Re: [PATCH 3/8] Allow huge page allocations to use GFP_HIGH_MOVABLE

From: Mel Gorman
Date: Fri Jan 26 2007 - 15:45:14 EST


On Fri, 26 Jan 2007, Chris Friesen wrote:

Mel Gorman wrote:

Worse, the problem is to have high order contiguous blocks free at the time of allocation without reclaim or migration. If the allocations were not atomic, anti-fragmentation as it is today would be enough.

Has anyone looked at marking the buffers as "needs refilling" then kick off a kernel thread or something to do the allocations under GFP_KERNEL?

I haven't seen it being discussed although it's probably doable as an addition to the existing mempool mechanism. Anti-fragmentation would mean that the non-atomic GFP_KERNEL allocation had a chance of succeeding.

That way we avoid having to allocate the buffers with GFP_ATOMIC.


Unless the load was so high that the pool was getting depleted and memory under so much pressure that reclaim could not keep up. But yes, it's possible that GFP_ATOMIC allocations could be avoided the majority of times.

I seem to recall that the tulip driver used to do this. Is it just too complicated from a race condition standpoint?


It shouldn't be that complicated.

We currently see this issue on our systems, as we have older e1000 hardware with 9KB jumbo frames. After a while we just fail to allocate buffers and the system goes belly-up.


Can you describe a reliable way of triggering this problem? At best, I hear "on our undescribed workload, we sometimes see this problem" but not much in the way of details.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
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/