On Wed, 11 Jan 2023, Marcelo Tosatti wrote: > OK, can replace this_cpu operations with this_cpu_ptr + standard C operators > (and in fact can do that for interrupt disabled functions as well, that > is CONFIG_HAVE_CMPXCHG_LOCAL not defined). > > Is that it? No that was hyperthetical. I do not know how to get out of this dilemma. We surely want to keep fast vmstat operations working. The fundamental issue that causes the vmstat discrepancies is likely that the fast this_cpu ops can increment the counter on any random cpu and that this is the reason you get vmstat discrepancies. Give up the assumption that an increment of a this_cpu counter on a specific cpu means that something occurred on that specific cpu. Maybe that will get you on a path to resolve the issues you are seeing.