On Thu, Oct 11, 2018 at 08:24:49AM -0700, Eric Dumazet wrote: > On Thu, Oct 11, 2018 at 8:02 AM Eric Dumazet <eduma...@google.com> wrote: > > > > On Thu, Oct 11, 2018 at 3:45 AM Peter Zijlstra <pet...@infradead.org> wrote: > > > > > > Eric reported that a sequence count loop using this_cpu_read() got > > > optimized out. This is wrong, this_cpu_read() must imply READ_ONCE() > > > because the interface is IRQ-safe, therefore an interrupt can have > > > changed the per-cpu value. > > > > > > Fixes: 59eaef78bfea ("x86/tsc: Remodel cyc2ns to use seqcount_latch()") > > > Reported-by: Eric Dumazet <eduma...@google.com> > > > Signed-off-by: Peter Zijlstra (Intel) <pet...@infradead.org> > > > > > > Acked-by: Eric Dumazet <eduma...@google.com> > > Actually the Fixes: tag seems funky. > > Bug was not added by 59eaef78bfea > > Your patch probably needs to be backported to older versions of linux, > just to be safe, since > we might have other places where authors relied on this_cpu_read() > semantic (different than this_cpu_read_stable())
Right; it goes back a long long way... is: 7c3576d261ce ("[PATCH] i386: Convert PDA into the percpu section") early enough? That introduces percpu_from_op(), but arguably the pda_from_op() it replaces was buggy already.