In dealing with a 2.2 kernel, I'm seeing what appears to be a
kmalloc(GFP_KERNEL) failing to allocate memory because the buffer cache
is using most of available RAM. There are about 5k allocations of about
2k each, done in a loop in an ioctl case (so it is in process context).
It looks like about 3MB of them succeed before one fails.
Is this hypothesis reasonable or not? Why?
According to LDD, GFP_KERNEL will try to swap to get memory if
needed--If that is the case, why would it fail to get memory from the
buffer cache?
What is the correct way to allocate a large number of (relatively) small
buffers? Did this change between 2.2 and 2.4?
TIA,
Eli
--------------------. Real Users find the one combination of bizarre
Eli Carter \ input values that shuts down the system for days.
eli.carter(a)inet.com `-------------------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/