On Wed, Mar 31 2021 at 12:01, Mel Gorman wrote:
> On Wed, Mar 31, 2021 at 11:55:56AM +0200, Thomas Gleixner wrote:
> @@ -887,13 +887,11 @@ void cpu_vm_stats_fold(int cpu)
>  
>               pzstats = per_cpu_ptr(zone->per_cpu_zonestats, cpu);
>  
> -             preempt_disable();
>               for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
>                       if (pzstats->vm_stat_diff[i]) {
>                               int v;
>  
> -                             v = pzstats->vm_stat_diff[i];
> -                             pzstats->vm_stat_diff[i] = 0;
> +                             v = this_cpu_xchg(pzstats->vm_stat_diff[i], 0);

Confused. pzstats is not a percpu pointer. zone->per_cpu_zonestats is.

But @cpu is not necessarily the current CPU.

Thanks,

        tglx

Reply via email to