Eric Dumazet wrote: > [PATCH] netfilter: per netns nf_conntrack_cachep > > nf_conntrack_cachep is currently shared by all netns instances, but > because of SLAB_DESTROY_BY_RCU special semantics, this is wrong. > > If we use a shared slab cache, one object can instantly flight between > one hash table (netns ONE) to another one (netns TWO), and concurrent > reader (doing a lookup in netns ONE, 'finding' an object of netns TWO) > can be fooled without notice, because no RCU grace period has to be > observed between object freeing and its reuse. > > We dont have this problem with UDP/TCP slab caches because TCP/UDP > hashtables are global to the machine (and each object has a pointer to > its netns). > > If we use per netns conntrack hash tables, we also *must* use per netns > conntrack slab caches, to guarantee an object can not escape from one > namespace to another one. Applied with the discussed change to allocate a unique name (attached again for reference), thanks Eric.