Re: [PATCH] parisc: use per-pagetable spinlock

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

 



On 2019-04-06 3:49 p.m., James Bottomley wrote:
> On Sat, 2019-04-06 at 15:36 -0400, Mikulas Patocka wrote:
>> Parisc uses a global spinlock to protect pagetable updates in the TLB
>> fault handlers. When multiple cores are taking TLB faults
>> simultaneously, the cache line containing the spinlock becomes a
>> bottleneck.
> You can't do this.  As the comment in cache.c says: the lock is to
> protect the merced bus, which runs between the CPUs on some systems. 
> That means it must be a single, global lock.  Of course, on systems
> without a merced bus, we don't need the lock at all, so runtime
> patching might be usable to fix that case.
To me, this looks like a good improvement.  It appears easy to adopt pgd_spinlock()
and other places where lock address is loaded for merced bus case.  Is anyone
actually using N class?

There are a couple of uses of pa_tlb_lock in pacache.S that are not updated.  These
only affect PA 1.x.  Was merced bus used on PA 1.x?  If not, then the locks could be
removed.

Dave

-- 
John David Anglin  dave.anglin@xxxxxxxx





[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux