On Mon, May 25, 2020 at 05:24:01PM +0200, Ahmed S. Darwish wrote: > Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Tue, May 19, 2020 at 11:45:24PM +0200, Ahmed S. Darwish wrote: > > > + WRITE_ONCE(lru_drain_gen, lru_drain_gen + 1); > > > + smp_wmb(); > > > > You can leave this smp_wmb() out and rely on the smp_mb() implied by > > queue_work_on()'s test_and_set_bit(). > > > > Won't this be too implicit? > > Isn't it possible that, over the years, queue_work_on() impementation > changes and the test_and_set_bit()/smp_mb() gets removed? > > If that happens, this commit will get *silently* broken and the local > CPU pages won't be drained. Add a comment to queue_work_on() that points here? That way people are aware.