Re: Memory management woes - order 1 allocation failures

From: Mel Gorman
Date: Tue Mar 02 2010 - 12:26:28 EST


On Mon, Mar 01, 2010 at 10:42:50AM +0900, KOSAKI Motohiro wrote:
> > AFAICT, even in the worst case, the latter call-site is well below 4K.
> > I have no idea of the tty one.
>
> afaik, tty_buffer_request_room() try to expand its buffer size for efficiency. but Its failure
> doesn't cause any user visible failure. probably we can mark it as NOWARN.
>
> In worst case, maximum tty buffer size is 64K, it can make allocation failure easily.
>
> Alan, Can you please tell us your mention?
>

(Added Greg as current tty maintainer)

For reasons that are not particularly clear to me, tty_buffer_alloc() is
called far more frequently in 2.6.33 than in 2.6.24. I instrumented the
function to print out the size of the buffers allocated, booted under
qemu and would just "cat /bin/ls" to see what buffers were allocated.
2.6.33 allocates loads, including high-order allocations. 2.6.24
appeared to allocate once and keep silent.

While there have been snags recently with respect to high-order
allocation failures in recent kernels, this might be one of the cases
where it's due to subsystems requesting high-order allocations more.

Anyone familiar with tty that might make a guess as to why it allocates
more aggressively?

--
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/