On Tue, Nov 22, 2016 at 8:11 AM, Jiri Pirko <j...@resnulli.us> wrote: > Tue, Nov 22, 2016 at 05:04:11PM CET, dan...@iogearbox.net wrote: >>Hmm, I don't think we want to have such an additional test in fast >>path for each and every classifier. Can we think of ways to avoid that? >> >>My question is, since we unlink individual instances from such tp-internal >>lists through RCU and release the instance through call_rcu() as well as >>the head (tp->root) via kfree_rcu() eventually, against what are we protecting >>setting RCU_INIT_POINTER(tp->root, NULL) in ->destroy() callback? Something >>not respecting grace period? > > If you call tp->ops->destroy in call_rcu, you don't have to set tp->root > to null.
We do need to respect the grace period if we touch the globally visible data structure tp in tcf_destroy(). Therefore Roi's patch is not fixing the right place. Also I don't know why you blame my commit, this problem should already exist prior to my commit, probably date back to John's RCU patches. I am working on a patch.