Re: [v3.3-rc1 regression] TCP: too many of orphaned sockets

From: Glauber Costa
Date: Fri Jan 27 2012 - 11:28:03 EST


On 01/27/2012 06:35 PM, Glauber Costa wrote:
On 01/27/2012 06:22 PM, Ingo Molnar wrote:

* Ingo Molnar<mingo@xxxxxxx> wrote:

ok, i've bisected it, and the bad commit is:

3dc43e3e4d0b52197d3205214fe8f162f9e0c334 is the first bad commit
commit 3dc43e3e4d0b52197d3205214fe8f162f9e0c334
Author: Glauber Costa<glommer@xxxxxxxxxxxxx>
Date: Sun Dec 11 21:47:05 2011 +0000

per-netns ipv4 sysctl_tcp_mem

Might be related to this detail in the .config:

# CONFIG_PROC_SYSCTL is not set

So former tcp_init() code does not get run?

Thanks,

Ingo

Can you tell me if the following patch fixes your problem?

Update on this:

What really makes it break is CONFIG_SYSCTL.
CONFIG_PROC_SYSCTL selects that, so if you get the one, you
end up getting the other. (The config mingo provided lacks both)

Also, I believe there is no harm in initializing this unconditionally,
so instead of cluttering tcp_init() with #ifdef, I am proposing we just init it here, and then init it again in sysctl initialization. I don't
expect it to harm workload, since it is a one-shot.

Now, I am attaching my proposed final patch for this, but I can't really
generate a config without sysctl that boots okay for me.

Ingo, would you please confirm that this fixes the problem for you? If I'm mistaken, let me know and I'll get back to it ASAP.

Dave, once Ingo acks that it fixes the problem he says, I'll submit the patch formally.

Thanks.