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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]