On Thu, 15 Dec 2011 13:34:32 +0400
Glauber Costa<glommer@xxxxxxxxxxxxx> wrote:
Walking the proto_list holds a read_lock, which prevents us from doing
allocations. Splitting the tcp create function into create + init is
good, but it is not enough since create_files will do allocations as well
(dentry ones, mostly).
Since this does not involve any protocol state, I propose we call the tcp
functions explicitly from memcontrol.c
With this, we lose by now the ability of doing cgroup memcontrol for
protocols that are loaded as modules. But at least the ones I have in mind
won't really need it (tcp_ipv6 being the only one, but it uses the same data
structures as tcp_ipv4). So I believe this to be the simpler solution to this
problem.
Signed-off-by: Glauber Costa<glommer@xxxxxxxxxxxxx>
CC: Hiroyouki Kamezawa<kamezawa.hiroyu@xxxxxxxxxxxxxx>
CC: David S. Miller<davem@xxxxxxxxxxxxx>
CC: Eric Dumazet<eric.dumazet@xxxxxxxxx>
CC: Stephen Rothwell<sfr@xxxxxxxxxxxxxxxx>
Could you remake the patch onto the 'latest' linux-next ?
As Dave mentioned, some bandaids are already applied and this patch hunks.