Re: [PATCH 2/6] mm/page_alloc: Convert per-cpu list protection to local_lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 31 2021 at 19:42, Thomas Gleixner wrote:
> 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.

@cpu _is_ definitely NOT the current CPU as this is invoked from the
hotplug callback _after_ @cpu went dead. @cpu is dead and wont update
these things concurrently. So I'm even more confused :)

Thanks,

        tglx






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux