On 9/25/22 16:33, John David Anglin wrote:
I believe this change is wrong and will reduce performance.
Yes, could be. That's why intentionally marked it RFC.
The TLB setup for a TMPALIAS flush is local to any given CPU. So, we should only need a local TLB purge.
Can those function theoretially be preempted? If so, could it be scheduled on another CPU where the TMPALIAS isn't flushed?
A local TLB purge doesn't require locking to serialize PxTLB broadcasts. It is also faster than a global TLB purges
True.
Indeed, the case that might be wrong is the one that uses pdtlb.
Which do you have in mind here?
It potentially needs serialization on SMP machines. See comment in pgtable.h.
One goal of that patch was to drop the CONFIG_PA20 ifdef case, because a 32-bit kernel could be compiled for PA8000 in which case the "pdtlb,l" will burn the machine. I'll send another patch which takes care of this without changing the local purges of pdtlb on 64bit CPUs. Helge