On Thu, 2016-09-08 at 22:24 -0700, Cong Wang wrote: > On Thu, Sep 8, 2016 at 8:35 AM, Eric Dumazet <eric.duma...@gmail.com> wrote: > > From: Eric Dumazet <eduma...@google.com> > > > > As reported by Cong Wang, I was lazy when I did initial RCU conversion > > of tc_mirred, as I thought I could avoid allocation/freeing of a > > parameter block. > > Quote from Eric Dumazet: > > https://www.mail-archive.com/netdev@vger.kernel.org/msg115482.html > > <Quote> > Well, I added a READ_ONCE() to read tcf_action once. > > Adding rcu here would mean adding a pointer and extra cache line, to > deref the values. > > IMHO the race here has no effect . You either read the old or new value. > </Quote> > > Me with facepalm... ;-)
Point is still valid. Show me a real case where it was a serious problem, instead of simply theoretical. tc_mirred + ifb patches allowed us to reach a milestone, removing the last contended spinlocks, and you are catching up with this one year later. I wont backport this fix in Google prod kernels, because there is absolutely no way we need it, and the extra memory cache line might hurt latencies. Since you did not write a fix on your side since June 17th, I presume you do not care that much.