[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <bcc6f761-9cc1-6a2c-8c8a-1006403d6822@sysgo.com>
Date: Tue, 23 May 2017 14:26:53 +0200
From: Roman Kapl <roman.kapl@...go.com>
To: David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH] net: set default value for somaxconn
On 05/22/2017 08:18 PM, David Miller wrote:
> From: Roman Kapl <roman.kapl@...go.com>
> Date: Mon, 22 May 2017 14:22:41 +0200
>
>> The default value for somaxconn is set in sysctl_core_net_init(), but this
>> function is not called when kernel is configured without CONFIG_SYSCTL.
>>
>> This results in the kernel not being able to accept TCP connections,
>> because the backlog has zero size. Usually, the user ends up with:
>> "TCP: request_sock_TCP: Possible SYN flooding on port 7. Dropping request. Check SNMP counters."
>>
>> Before ef547f2ac16 (tcp: remove max_qlen_log), the effects were less
>> severe, because the backlog was always at least eight slots long.
>>
>> Signed-off-by: Roman Kapl <roman.kapl@...go.com>
> I see the problem, but this changes behavior.
>
> Existing code will set somaxconn to the default value for every namespace
> that is created.
>
> But with you changes, any modification made to init_net's value will
> get inherited by any namespace created as a child thereafterwards.
Hmm, I can not find where somaxconn is inherited. But I see this needs
to be per-net.
>
> You really need to make this happen via pernet_operations, or even
> inside of setup_net().
I will create new pernet_operations in net_namespace.c, move the
somaxconn initialization there and send a new patch.
Thanks for comments, Roman Kapl
Powered by blists - more mailing lists