Thread (54 messages) 54 messages, 9 authors, 2010-06-09

Re: [PATCH nf-next-2.6 2/2] conntrack: per_cpu untracking

From: Patrick McHardy <hidden>
Date: 2010-06-09 12:45:12
Also in: netfilter-devel

Eric Dumazet wrote:
Le mardi 08 juin 2010 à 16:52 +0200, Eric Dumazet a écrit :
  
quoted
Le mardi 08 juin 2010 à 16:29 +0200, Patrick McHardy a écrit :
    
quoted
On 04.06.2010 22:15, Eric Dumazet wrote:
      
quoted
NOTRACK makes all cpus share a cache line on nf_conntrack_untracked
twice per packet, slowing down performance.

This patch converts it to a per_cpu variable.

We assume same cpu is used for a given packet, entering and exiting the
NOTRACK state.
        
That doesn't seem to be a valid assumption, the conntrack entry is
attached to the skb and processing in the output path might get
preempted and rescheduled to a different CPU.
      
Thats unfortunate.

Ok, only choice then is to not change refcount on the untracked ct, and
keep a shared (read only after setup time) untrack structure.


    
Oh well, re-reading my patch, I dont see why I said this in Changelog :)

We lazily select the untrack structure in one cpu, then keep the pointer
to this untrack structure, attached to ct.

The (still atomic) increment / decrement of refcount is done on the
saved pointer, not on actual per_cpu structure.

So if a packet is rescheduled on a different CPU, second cpu will "only"
dirty cache line of other cpu, it probably almost never happens...
  
Indeed, you're right of course.
Thanks

[PATCH nf-next-2.6 2/2] conntrack: per_cpu untracking

NOTRACK makes all cpus share a cache line on nf_conntrack_untracked
twice per packet, slowing down performance.

This patch converts it to a per_cpu variable.
  
Applied, thanks Eric.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help