Subject: Re: [PATCH] tcp: md5 signature check scaling

From: Stephen Hemminger <[email-masked]>
Date: Wed, 27 Oct 2010 08:56:03 -0700

On Wed, 27 Oct 2010 16:52:30 +0400
Dmitry Popov <[email-masked]> wrote:

> From: Dmitry Popov <[email-masked]>
> 
> TCP MD5 signature checking without socket lock.
> 
> Each tcp_sock has 2 RCU-protected arrays (tcp[46]_md5sig_info) of
> tcp[46]_md5sig_key address-key pairs.
> Each key (tcp_md5sig_key) has kref struct so that there is no need to
> lock the whole array to work with one key.
> 
> MD5 functions were rewritten according to above statement and hash
> check (tcp_v4_inbound_md5_hash) was moved before socket lock.
> 
> Signed-off-by: Dmitry Popov <[email-masked]>

You traded locking for ref counting which may not be as big
a win as your think.

Also, the overhead of RCU here might impact tests that involve
lots of socket creation and destruction.

--