[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20090218.135512.104648058.davem@davemloft.net>
Date: Wed, 18 Feb 2009 13:55:12 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: kaber@...sh.net
Cc: shemminger@...tta.com, rick.jones2@...com, dada1@...mosbay.com,
netdev@...r.kernel.org, netfilter-devel@...r.kernel.org
Subject: Re: [RFT 4/4] netfilter: Get rid of central rwlock in tcp
conntracking
From: Patrick McHardy <kaber@...sh.net>
Date: Wed, 18 Feb 2009 10:56:45 +0100
> Stephen Hemminger wrote:
>
> > @@ -50,6 +50,7 @@ struct ip_ct_tcp_state {
> > struct ip_ct_tcp
> > {
> > + spinlock_t lock;
> > struct ip_ct_tcp_state seen[2]; /* connection parameters per direction */
> > u_int8_t state; /* state of the connection (enum tcp_conntrack) */
> > /* For detecting stale connections */
>
> Eric already posted a patch to use an array of locks, which is
> a better approach IMO since it keeps the size of the conntrack
> entries down.
Just as a side note, we generally frown upon the
hash-array-of-spinlocks approach to scalability.
If you need proof that in the long term it's suboptimal, note that:
1) this is Solaris's approach to locking scalability :-)
2) every such case in the kernel eventually gets transformed into
RCU, a tree/trie based scheme, or some combination of the two
So maybe for now it's ok, but keep in mind that eventually
this is certain to change. :)
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists