Andrew Morton wrote:
Where as resource pool is exactly opposite of mempool, where each
time it looks for an object in the pool and if it exist then we
return that object else we try to get the memory for OS while
scheduling the work to grow the pool objects. In fact, the work
is schedule to grow the pool when the low threshold point is hit.
I realise all that. But I'd have thought that the mempool approach is
actually better: use the page allocator and only deplete your reserve pool
when the page allocator fails.
the problem with that is that if anything downstream from the iommu
layer ALSO needs memory, we've now eaten up the last free page and
things go splat.
in terms of deadlock avoidance... I wonder if we need something
similar to the swap token; once a process dips into the emergency
pool, it becomes the only one that gets to use this pool, so that it's
entire chain of allocations will succeed, rather than each process
only getting halfway through...
But yeah it's minute details and you can argue either way is the right
approach.
You can even argue for the old highmem.c approach; go into half the
pool before going to the VM, then to kmalloc() and if that fails dip
into the second half of the pool.
-
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]