Eric Dumazet wrote: > Le mardi 08 juin 2010 à 16:52 +0200, Eric Dumazet a écrit : > >> Le mardi 08 juin 2010 à 16:29 +0200, Patrick McHardy a écrit : >> >>> On 04.06.2010 22:15, Eric Dumazet wrote: >>> >>>> 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@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html