Re: [net-next PATCH 1/4] Revert "inet: limit length of fragment queue hash table bucket lists"
From: Eric Dumazet <hidden>
Date: 2013-05-02 15:16:44
On Thu, 2013-05-02 at 09:59 +0200, Jesper Dangaard Brouer wrote:
On Wed, 24 Apr 2013 17:00:30 -0700 Eric Dumazet [off-list ref] wrote:quoted
On Wed, 2013-04-24 at 17:48 +0200, Jesper Dangaard Brouer wrote:quoted
This reverts commit 5a3da1fe9561828d0ca7eca664b16ec2b9bf0055. The problem with commit 5a3da1fe (inet: limit length of fragment queue hash table bucket lists) is that, once we hit the hash depth limit (of 128), the we *keep* the existing frag queues, not allowing new frag queues to be created. Thus, an attacker can effectivly block handling of fragments for 30 sec (as each frag queue have a timeout of 30 sec)I do not think its good to revert this patch. It was a step in right direction.We need a revert, because we are too close to the merge window, and cannot complete the needed "steps" to make this patch safe, sorry.
Again, a limit of 128 is totally OK. Its in fact too big. 128 cache misses consume 5 us Allowing a chain being non limited is a more severe bug. Reverting will allow an attacker to consume all your cpu cycles. We changed INETFRAGS_HASHSZ to 1024, so 128*1024 max frags is already a very big limit. No matter what we do, we need to limit both : - Memory consumption - Cpu consumption For people willing to allow more memory to be used, the only way is to resize hash table, or using a bigger INETFRAGS_HASHSZ I do not think there is a hurry, current defrag code is already better than what we had years ago.