> On Jan 29, 2020, at 11:20 PM, Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote: > > I'm really not a fan of exposing the internals of a percpu_counter outside > the percpu_counter.h file. Why shouldn't this be fixed by putting the > READ_ONCE() inside percpu_counter_read()? It is because not all places suffer from a data race. For example, in __wb_update_bandwidth(), it was protected by a lock. I was a bit worry about blindly adding READ_ONCE() inside percpu_counter_read() might has unexpected side-effect. For example, it is unnecessary to have READ_ONCE() for a volatile variable. So, I thought just to keep the change minimal with a trade off by exposing a bit internal details as you mentioned. However, I had also copied the percpu maintainers to see if they have any preferences?