Re: Regression from 2.6.36

From: Andrew Morton
Date: Tue Apr 12 2011 - 18:50:18 EST


On Thu, 07 Apr 2011 17:36:26 +0200
Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote:

> Le jeudi 07 avril 2011 __ 23:27 +0800, Changli Gao a __crit :
>
> > azurlt, would you please test the patch attached? Thanks.
> >
>
> Yes of course, I meant to reverse the patch
>
> (use kmalloc() under PAGE_SIZE, vmalloc() for 'big' allocs)
>
>
> Dont fallback to vmalloc if kmalloc() fails.
>
>
> if (size <= PAGE_SIZE)
> return kmalloc(size, GFP_KERNEL);
> else
> return vmalloc(size);
>

It's somewhat unclear (to me) what caused this regression.

Is it because the kernel is now doing large kmalloc()s for the fdtable,
and this makes the page allocator go nuts trying to satisfy high-order
page allocation requests?

Is it because the kernel now will usually free the fdtable
synchronously within the rcu callback, rather than deferring this to a
workqueue?

The latter seems unlikely, so I'm thinking this was a case of
high-order-allocations-considered-harmful?

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