linux-parisc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
@ 2022-09-25 18:57 Helge Deller
  2022-09-25 20:02 ` John David Anglin
  0 siblings, 1 reply; 7+ messages in thread
From: Helge Deller @ 2022-09-25 18:57 UTC (permalink / raw)
  To: linux-parisc, James Bottomley, John David Anglin

Allow usage of CPU-local tlb purges in pacache.S on PA2.0 machines only.

Signed-off-by: Helge Deller <deller@gmx.de>

diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
index 9a0018f1f42c..7c23fcb737a9 100644
--- a/arch/parisc/kernel/pacache.S
+++ b/arch/parisc/kernel/pacache.S
@@ -31,6 +31,12 @@
 	.section .text.hot
 	.align	16

+#ifdef CONFIG_PA20
+#define ALT_COND_PACACHE	ALT_COND_ALWAYS
+#else
+#define ALT_COND_PACACHE	ALT_COND_NO_SMP
+#endif
+
 ENTRY_CFI(flush_tlb_all_local)
 	/*
 	 * The pitlbe and pdtlbe instructions should only be used to
@@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)

 	/* Purge any old translations */

-#ifdef CONFIG_PA20
-	pdtlb,l		%r0(%r28)
-	pdtlb,l		%r0(%r29)
-#else
 0:	pdtlb		%r0(%r28)
 1:	pdtlb		%r0(%r29)
-	ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
-	ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
-#endif
+	ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
+	ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)

 #ifdef CONFIG_64BIT
 	/* PA8x00 CPUs can consume 2 loads or 1 store per cycle.
@@ -670,12 +671,8 @@ ENTRY_CFI(clear_user_page_asm)

 	/* Purge any old translation */

-#ifdef CONFIG_PA20
-	pdtlb,l		%r0(%r28)
-#else
 0:	pdtlb		%r0(%r28)
-	ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
-#endif
+	ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)

 #ifdef CONFIG_64BIT
 	ldi		(PAGE_SIZE / 128), %r1
@@ -736,12 +733,8 @@ ENTRY_CFI(flush_dcache_page_asm)

 	/* Purge any old translation */

-#ifdef CONFIG_PA20
-	pdtlb,l		%r0(%r28)
-#else
 0:	pdtlb		%r0(%r28)
-	ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
-#endif
+	ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)

 88:	ldil		L%dcache_stride, %r1
 	ldw		R%dcache_stride(%r1), r31
@@ -785,12 +778,8 @@ ENTRY_CFI(purge_dcache_page_asm)

 	/* Purge any old translation */

-#ifdef CONFIG_PA20
-	pdtlb,l		%r0(%r28)
-#else
 0:	pdtlb		%r0(%r28)
-	ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
-#endif
+	ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)

 88:	ldil		L%dcache_stride, %r1
 	ldw		R%dcache_stride(%r1), r31
@@ -837,17 +826,11 @@ ENTRY_CFI(flush_icache_page_asm)
 	 * have a flat address space, it's not clear which TLB will be
 	 * used.  So, we purge both entries.  */

-#ifdef CONFIG_PA20
-	pdtlb,l		%r0(%r28)
-1:	pitlb,l         %r0(%sr4,%r28)
-	ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SPLIT_TLB, INSN_NOP)
-#else
 0:	pdtlb		%r0(%r28)
 1:	pitlb           %r0(%sr4,%r28)
-	ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
-	ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
+	ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
+	ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
 	ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SPLIT_TLB, INSN_NOP)
-#endif

 88:	ldil		L%icache_stride, %r1
 	ldw		R%icache_stride(%r1), %r31

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
  2022-09-25 18:57 [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines Helge Deller
@ 2022-09-25 20:02 ` John David Anglin
  2022-09-25 20:11   ` Helge Deller
  0 siblings, 1 reply; 7+ messages in thread
From: John David Anglin @ 2022-09-25 20:02 UTC (permalink / raw)
  To: Helge Deller, linux-parisc, James Bottomley

On 2022-09-25 2:57 p.m., Helge Deller wrote:
> +#ifdef CONFIG_PA20
> +#define ALT_COND_PACACHE	ALT_COND_ALWAYS
> +#else
> +#define ALT_COND_PACACHE	ALT_COND_NO_SMP
> +#endif
> +
>   ENTRY_CFI(flush_tlb_all_local)
>   	/*
>   	 * The pitlbe and pdtlbe instructions should only be used to
> @@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)
>
>   	/* Purge any old translations */
>
> -#ifdef CONFIG_PA20
> -	pdtlb,l		%r0(%r28)
> -	pdtlb,l		%r0(%r29)
> -#else
>   0:	pdtlb		%r0(%r28)
>   1:	pdtlb		%r0(%r29)
> -	ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
> -	ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
> -#endif
> +	ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
> +	ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
This doesn't look correct.  If ALT_COND_PACACHE is defined as ALT_COND_NO_SMP, the pdtlb
instructions will be converted to pdtlb,l instructions when running UP.  These are not supported
on PA 1.1.  When running SMP, we have pdtlb purges.  For these, we need bus serialization.

These also don't look correct:

#define pdtlb(sr, addr) asm volatile("pdtlb 0(%%sr%0,%1)" \
                         ALTERNATIVE(ALT_COND_NO_SMP, INSN_PxTLB) \
                         : : "i"(sr), "r" (addr) : "memory")
#define pitlb(sr, addr) asm volatile("pitlb 0(%%sr%0,%1)" \
                         ALTERNATIVE(ALT_COND_NO_SMP, INSN_PxTLB) \
                         ALTERNATIVE(ALT_COND_NO_SPLIT_TLB, INSN_NOP) \
                         : : "i"(sr), "r" (addr) : "memory")

We only have local purge on PA 2.0 machines.

Dave

-- 
John David Anglin  dave.anglin@bell.net


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
  2022-09-25 20:02 ` John David Anglin
@ 2022-09-25 20:11   ` Helge Deller
  2022-09-25 20:28     ` John David Anglin
  0 siblings, 1 reply; 7+ messages in thread
From: Helge Deller @ 2022-09-25 20:11 UTC (permalink / raw)
  To: John David Anglin, linux-parisc, James Bottomley

On 9/25/22 22:02, John David Anglin wrote:
> On 2022-09-25 2:57 p.m., Helge Deller wrote:
>> +#ifdef CONFIG_PA20
>> +#define ALT_COND_PACACHE    ALT_COND_ALWAYS
>> +#else
>> +#define ALT_COND_PACACHE    ALT_COND_NO_SMP
>> +#endif
>> +
>>   ENTRY_CFI(flush_tlb_all_local)
>>       /*
>>        * The pitlbe and pdtlbe instructions should only be used to
>> @@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)
>>
>>       /* Purge any old translations */
>>
>> -#ifdef CONFIG_PA20
>> -    pdtlb,l        %r0(%r28)
>> -    pdtlb,l        %r0(%r29)
>> -#else
>>   0:    pdtlb        %r0(%r28)
>>   1:    pdtlb        %r0(%r29)
>> -    ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>> -    ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>> -#endif
>> +    ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
>> +    ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
> This doesn't look correct.  If ALT_COND_PACACHE is defined as ALT_COND_NO_SMP, the pdtlb
> instructions will be converted to pdtlb,l instructions when running UP.  These are not supported
> on PA 1.1. 

Your concern is correct, but there is an additonal check in the alternative-coding,
which prevents enabling the local flag if we're not running on a PA2.0 CPU.
So, those ALTERNATIVE() macros will only apply on PA2.0 machines.

> When running SMP, we have pdtlb purges.  For these, we need bus serialization.
> 
> These also don't look correct:
> 
> #define pdtlb(sr, addr) asm volatile("pdtlb 0(%%sr%0,%1)" \
>                          ALTERNATIVE(ALT_COND_NO_SMP, INSN_PxTLB) \
>                          : : "i"(sr), "r" (addr) : "memory")
> #define pitlb(sr, addr) asm volatile("pitlb 0(%%sr%0,%1)" \
>                          ALTERNATIVE(ALT_COND_NO_SMP, INSN_PxTLB) \
>                          ALTERNATIVE(ALT_COND_NO_SPLIT_TLB, INSN_NOP) \
>                          : : "i"(sr), "r" (addr) : "memory")
> 
> We only have local purge on PA 2.0 machines.

Same as above.

Helge

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
  2022-09-25 20:11   ` Helge Deller
@ 2022-09-25 20:28     ` John David Anglin
  2022-09-27 20:06       ` Helge Deller
  0 siblings, 1 reply; 7+ messages in thread
From: John David Anglin @ 2022-09-25 20:28 UTC (permalink / raw)
  To: Helge Deller, linux-parisc, James Bottomley

On 2022-09-25 4:11 p.m., Helge Deller wrote:
> n 9/25/22 22:02, John David Anglin wrote:
>> On 2022-09-25 2:57 p.m., Helge Deller wrote:
>>> +#ifdef CONFIG_PA20
>>> +#define ALT_COND_PACACHE    ALT_COND_ALWAYS
>>> +#else
>>> +#define ALT_COND_PACACHE    ALT_COND_NO_SMP
>>> +#endif
>>> +
>>>   ENTRY_CFI(flush_tlb_all_local)
>>>       /*
>>>        * The pitlbe and pdtlbe instructions should only be used to
>>> @@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)
>>>
>>>       /* Purge any old translations */
>>>
>>> -#ifdef CONFIG_PA20
>>> -    pdtlb,l        %r0(%r28)
>>> -    pdtlb,l        %r0(%r29)
>>> -#else
>>>   0:    pdtlb        %r0(%r28)
>>>   1:    pdtlb        %r0(%r29)
>>> -    ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>> -    ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>> -#endif
>>> +    ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>> +    ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
>> This doesn't look correct.  If ALT_COND_PACACHE is defined as ALT_COND_NO_SMP, the pdtlb
>> instructions will be converted to pdtlb,l instructions when running UP.  These are not supported
>> on PA 1.1. 
>
> Your concern is correct, but there is an additonal check in the alternative-coding,
> which prevents enabling the local flag if we're not running on a PA2.0 CPU.
> So, those ALTERNATIVE() macros will only apply on PA2.0 machines.
You are correct.  Missed that.

That only leaves the bus serialization issue when pdtlb is used on an SMP machine.

Dave


-- 
John David Anglin  dave.anglin@bell.net


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
  2022-09-25 20:28     ` John David Anglin
@ 2022-09-27 20:06       ` Helge Deller
  2022-09-27 22:06         ` John David Anglin
  0 siblings, 1 reply; 7+ messages in thread
From: Helge Deller @ 2022-09-27 20:06 UTC (permalink / raw)
  To: John David Anglin, linux-parisc, James Bottomley

On 9/25/22 22:28, John David Anglin wrote:
> On 2022-09-25 4:11 p.m., Helge Deller wrote:
>> n 9/25/22 22:02, John David Anglin wrote:
>>> On 2022-09-25 2:57 p.m., Helge Deller wrote:
>>>> +#ifdef CONFIG_PA20
>>>> +#define ALT_COND_PACACHE    ALT_COND_ALWAYS
>>>> +#else
>>>> +#define ALT_COND_PACACHE    ALT_COND_NO_SMP
>>>> +#endif
>>>> +
>>>>   ENTRY_CFI(flush_tlb_all_local)
>>>>       /*
>>>>        * The pitlbe and pdtlbe instructions should only be used to
>>>> @@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)
>>>>
>>>>       /* Purge any old translations */
>>>>
>>>> -#ifdef CONFIG_PA20
>>>> -    pdtlb,l        %r0(%r28)
>>>> -    pdtlb,l        %r0(%r29)
>>>> -#else
>>>>   0:    pdtlb        %r0(%r28)
>>>>   1:    pdtlb        %r0(%r29)
>>>> -    ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>>> -    ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>>> -#endif
>>>> +    ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>>> +    ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>> This doesn't look correct.  If ALT_COND_PACACHE is defined as ALT_COND_NO_SMP, the pdtlb
>>> instructions will be converted to pdtlb,l instructions when running UP.  These are not supported
>>> on PA 1.1.
>>
>> Your concern is correct, but there is an additonal check in the alternative-coding,
>> which prevents enabling the local flag if we're not running on a PA2.0 CPU.
>> So, those ALTERNATIVE() macros will only apply on PA2.0 machines.
> You are correct.  Missed that.
>
> That only leaves the bus serialization issue when pdtlb is used on an SMP machine.

I think we are Ok with what's in the kernel already.

According to arch/parisc/include/asm/pgtable.h:

* This is for the serialization of PxTLB broadcasts. At least on the N class
  * systems, only one PxTLB inter processor broadcast can be active at any one
  * time on the Merced bus. */
extern spinlock_t pa_tlb_flush_lock;
#if defined(CONFIG_64BIT) && defined(CONFIG_SMP)
extern int pa_serialize_tlb_flushes;
#else
#define pa_serialize_tlb_flushes        (0)
#endif

we currently do TLB serialization on 64-bit machines with a 64-bit kernel only.
N-class machines are 64-bit-only machines which can't run a 32-bit kernel.
So, 32-bit SMP kernels (which don't have serialization for PxTLB flushes)
don't seem to be affected.

Helge

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
  2022-09-27 20:06       ` Helge Deller
@ 2022-09-27 22:06         ` John David Anglin
  2022-09-28  9:25           ` Helge Deller
  0 siblings, 1 reply; 7+ messages in thread
From: John David Anglin @ 2022-09-27 22:06 UTC (permalink / raw)
  To: Helge Deller, linux-parisc, James Bottomley

On 2022-09-27 4:06 p.m., Helge Deller wrote:
> On 9/25/22 22:28, John David Anglin wrote:
>> On 2022-09-25 4:11 p.m., Helge Deller wrote:
>>> n 9/25/22 22:02, John David Anglin wrote:
>>>> On 2022-09-25 2:57 p.m., Helge Deller wrote:
>>>>> +#ifdef CONFIG_PA20
>>>>> +#define ALT_COND_PACACHE    ALT_COND_ALWAYS
>>>>> +#else
>>>>> +#define ALT_COND_PACACHE    ALT_COND_NO_SMP
>>>>> +#endif
>>>>> +
>>>>>   ENTRY_CFI(flush_tlb_all_local)
>>>>>       /*
>>>>>        * The pitlbe and pdtlbe instructions should only be used to
>>>>> @@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)
>>>>>
>>>>>       /* Purge any old translations */
>>>>>
>>>>> -#ifdef CONFIG_PA20
>>>>> -    pdtlb,l        %r0(%r28)
>>>>> -    pdtlb,l        %r0(%r29)
>>>>> -#else
>>>>>   0:    pdtlb        %r0(%r28)
>>>>>   1:    pdtlb        %r0(%r29)
>>>>> -    ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>>>> -    ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>>>> -#endif
>>>>> +    ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>>>> +    ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>>> This doesn't look correct.  If ALT_COND_PACACHE is defined as ALT_COND_NO_SMP, the pdtlb
>>>> instructions will be converted to pdtlb,l instructions when running UP.  These are not supported
>>>> on PA 1.1.
>>>
>>> Your concern is correct, but there is an additonal check in the alternative-coding,
>>> which prevents enabling the local flag if we're not running on a PA2.0 CPU.
>>> So, those ALTERNATIVE() macros will only apply on PA2.0 machines.
>> You are correct.  Missed that.
>>
>> That only leaves the bus serialization issue when pdtlb is used on an SMP machine.
>
> I think we are Ok with what's in the kernel already.
>
> According to arch/parisc/include/asm/pgtable.h:
>
> * This is for the serialization of PxTLB broadcasts. At least on the N class
>  * systems, only one PxTLB inter processor broadcast can be active at any one
>  * time on the Merced bus. */
> extern spinlock_t pa_tlb_flush_lock;
> #if defined(CONFIG_64BIT) && defined(CONFIG_SMP)
> extern int pa_serialize_tlb_flushes;
> #else
> #define pa_serialize_tlb_flushes        (0)
> #endif
>
> we currently do TLB serialization on 64-bit machines with a 64-bit kernel only.
> N-class machines are 64-bit-only machines which can't run a 32-bit kernel.
> So, 32-bit SMP kernels (which don't have serialization for PxTLB flushes)
> don't seem to be affected.
I don't know enough to be certain. I know the c8000/rp3440 with the Itanium/zx1 CPU/memory
bus needs serialization (tried removing lock).  I suspect all machines with Runway or Runway+
CPU/memory buses need serialization.

https://www.openpa.net/bus.html#runway

The openpa site says there are some PA-7200 machines (e.g., D class)  with this bus.  They would be 32-bit only.

Dave

-- 
John David Anglin  dave.anglin@bell.net


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines
  2022-09-27 22:06         ` John David Anglin
@ 2022-09-28  9:25           ` Helge Deller
  0 siblings, 0 replies; 7+ messages in thread
From: Helge Deller @ 2022-09-28  9:25 UTC (permalink / raw)
  To: John David Anglin, linux-parisc, James Bottomley

On 9/28/22 00:06, John David Anglin wrote:
> On 2022-09-27 4:06 p.m., Helge Deller wrote:
>> On 9/25/22 22:28, John David Anglin wrote:
>>> On 2022-09-25 4:11 p.m., Helge Deller wrote:
>>>> n 9/25/22 22:02, John David Anglin wrote:
>>>>> On 2022-09-25 2:57 p.m., Helge Deller wrote:
>>>>>> +#ifdef CONFIG_PA20
>>>>>> +#define ALT_COND_PACACHE    ALT_COND_ALWAYS
>>>>>> +#else
>>>>>> +#define ALT_COND_PACACHE    ALT_COND_NO_SMP
>>>>>> +#endif
>>>>>> +
>>>>>>   ENTRY_CFI(flush_tlb_all_local)
>>>>>>       /*
>>>>>>        * The pitlbe and pdtlbe instructions should only be used to
>>>>>> @@ -539,15 +545,10 @@ ENTRY_CFI(copy_user_page_asm)
>>>>>>
>>>>>>       /* Purge any old translations */
>>>>>>
>>>>>> -#ifdef CONFIG_PA20
>>>>>> -    pdtlb,l        %r0(%r28)
>>>>>> -    pdtlb,l        %r0(%r29)
>>>>>> -#else
>>>>>>   0:    pdtlb        %r0(%r28)
>>>>>>   1:    pdtlb        %r0(%r29)
>>>>>> -    ALTERNATIVE(0b, 0b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>>>>> -    ALTERNATIVE(1b, 1b+4, ALT_COND_NO_SMP, INSN_PxTLB)
>>>>>> -#endif
>>>>>> +    ALTERNATIVE(0b, 0b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>>>>> +    ALTERNATIVE(1b, 1b+4, ALT_COND_PACACHE, INSN_PxTLB)
>>>>> This doesn't look correct.  If ALT_COND_PACACHE is defined as ALT_COND_NO_SMP, the pdtlb
>>>>> instructions will be converted to pdtlb,l instructions when running UP.  These are not supported
>>>>> on PA 1.1.
>>>>
>>>> Your concern is correct, but there is an additonal check in the alternative-coding,
>>>> which prevents enabling the local flag if we're not running on a PA2.0 CPU.
>>>> So, those ALTERNATIVE() macros will only apply on PA2.0 machines.
>>> You are correct.  Missed that.
>>>
>>> That only leaves the bus serialization issue when pdtlb is used on an SMP machine.
>>
>> I think we are Ok with what's in the kernel already.
>>
>> According to arch/parisc/include/asm/pgtable.h:
>>
>> * This is for the serialization of PxTLB broadcasts. At least on the N class
>>  * systems, only one PxTLB inter processor broadcast can be active at any one
>>  * time on the Merced bus. */
>> extern spinlock_t pa_tlb_flush_lock;
>> #if defined(CONFIG_64BIT) && defined(CONFIG_SMP)
>> extern int pa_serialize_tlb_flushes;
>> #else
>> #define pa_serialize_tlb_flushes        (0)
>> #endif
>>
>> we currently do TLB serialization on 64-bit machines with a 64-bit kernel only.
>> N-class machines are 64-bit-only machines which can't run a 32-bit kernel.
>> So, 32-bit SMP kernels (which don't have serialization for PxTLB flushes)
>> don't seem to be affected.

> I don't know enough to be certain. I know the c8000/rp3440 with the Itanium/zx1 CPU/memory
> bus needs serialization (tried removing lock).  I suspect all machines with Runway or Runway+
> CPU/memory buses need serialization.
> https://www.openpa.net/bus.html#runway

Yes, but those all run only 64-bit kernels.

> The openpa site says there are some PA-7200 machines (e.g., D class)  with this bus.  They would be 32-bit only.

I don't have PA-7x00 SMP machines, but a J5000 (https://www.openpa.net/systems/hp-visualize_j5000_j5600_j7000_j7600.html)
with Astro memory/Runway controller on which I can try the 32-bit SMP kernel again.

Helge

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-09-28  9:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-25 18:57 [PATCH][RFC] parisc: Use local tlb purges only on PA2.0 machines Helge Deller
2022-09-25 20:02 ` John David Anglin
2022-09-25 20:11   ` Helge Deller
2022-09-25 20:28     ` John David Anglin
2022-09-27 20:06       ` Helge Deller
2022-09-27 22:06         ` John David Anglin
2022-09-28  9:25           ` Helge Deller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).