linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] parisc: Remove PTE load and fault check from L2_ptep macro
@ 2018-09-26  3:21 Guenter Roeck
  2018-09-26 12:09 ` John David Anglin
  0 siblings, 1 reply; 3+ messages in thread
From: Guenter Roeck @ 2018-09-26  3:21 UTC (permalink / raw)
  To: John David Anglin; +Cc: jejb, Helge Deller, linux-parisc, linux-kernel

Hi,

On Sun, Sep 23, 2018 at 10:55:18AM -0400, John David Anglin wrote:
> This change removes the PTE load and present check from the L2_ptep
> macro.  The load and check for kernel pages is now done in the tlb_lock
> macro.  This avoids a double load and check for user pages.  The load
> and check for user pages is now done inside the lock so the fault
> handler can't be called while the entry is being updated.
> 

This patch causes my parisc qemu tests to fail.
Unfortunately I don't have any useful log output; the failure
is silent. Reverting the patch fixes the problem.

Guenter

> Signed-off-by: John David Anglin <dave.anglin@bell.net>
> Signed-off-by: Helge Deller <deller@gmx.de>
> ---
>  arch/parisc/kernel/entry.S | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
> index eeee1d2c4b8e..3371472379a6 100644
> --- a/arch/parisc/kernel/entry.S
> +++ b/arch/parisc/kernel/entry.S
> @@ -431,8 +431,6 @@
>  	extru		\va,31-PAGE_SHIFT,ASM_BITS_PER_PTE,\index
>  	dep		%r0,31,PAGE_SHIFT,\pmd  /* clear offset */
>  	shladd		\index,BITS_PER_PTE_ENTRY,\pmd,\pmd /* pmd is now pte */
> -	LDREG		%r0(\pmd),\pte
> -	bb,>=,n		\pte,_PAGE_PRESENT_BIT,\fault
>  	.endm
>  
>  	/* Look up PTE in a 3-Level scheme.
> @@ -463,7 +461,7 @@
>  	L2_ptep		\pgd,\pte,\index,\va,\fault
>  	.endm
>  
> -	/* Acquire pa_tlb_lock lock and recheck page is still present. */
> +	/* Acquire pa_tlb_lock lock and check page is present. */
>  	.macro		tlb_lock	spc,ptp,pte,tmp,tmp1,fault
>  #ifdef CONFIG_SMP
>  	cmpib,COND(=),n	0,\spc,2f
> @@ -472,10 +470,12 @@
>  	cmpib,COND(=)	0,\tmp1,1b
>  	nop
>  	LDREG		0(\ptp),\pte
> -	bb,<,n		\pte,_PAGE_PRESENT_BIT,2f
> +	bb,<,n		\pte,_PAGE_PRESENT_BIT,3f
>  	b		\fault
>  	stw		 \spc,0(\tmp)
> -2:
> +2:	LDREG		0(\ptp),\pte
> +	bb,>=,n		\pte,_PAGE_PRESENT_BIT,\fault
> +3:
>  #endif
>  	.endm
>  
> -- 
> 2.7.4

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

* Re: [PATCH] parisc: Remove PTE load and fault check from L2_ptep macro
  2018-09-26  3:21 [PATCH] parisc: Remove PTE load and fault check from L2_ptep macro Guenter Roeck
@ 2018-09-26 12:09 ` John David Anglin
  2018-09-26 13:29   ` Guenter Roeck
  0 siblings, 1 reply; 3+ messages in thread
From: John David Anglin @ 2018-09-26 12:09 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: jejb, Helge Deller, linux-parisc, linux-kernel

Hi,

On 2018-09-25 11:21 PM, Guenter Roeck wrote:
> This patch causes my parisc qemu tests to fail.
> Unfortunately I don't have any useful log output; the failure
> is silent. Reverting the patch fixes the problem.
Can you be more specific on how to run these tests?

Dave

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


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

* Re: [PATCH] parisc: Remove PTE load and fault check from L2_ptep macro
  2018-09-26 12:09 ` John David Anglin
@ 2018-09-26 13:29   ` Guenter Roeck
  0 siblings, 0 replies; 3+ messages in thread
From: Guenter Roeck @ 2018-09-26 13:29 UTC (permalink / raw)
  To: John David Anglin; +Cc: jejb, Helge Deller, linux-parisc, linux-kernel

On 09/26/2018 05:09 AM, John David Anglin wrote:
> Hi,
> 
> On 2018-09-25 11:21 PM, Guenter Roeck wrote:
>> This patch causes my parisc qemu tests to fail.
>> Unfortunately I don't have any useful log output; the failure
>> is silent. Reverting the patch fixes the problem.
> Can you be more specific on how to run these tests?
> 
> Dave
> 

Sorry. Please see

https://github.com/groeck/linux-build-test/tree/master/rootfs/parisc

My tests enable a number of device and debug options on top of defconfig.
Those are not necessary, though. The problem can be reproduced with defconfig.

With the initrd available from there, and with an image built using 'defconfig',
run

qemu-system-hppa \
	-kernel vmlinux -no-reboot \
	-initrd rootfs.cpio.gz \
	-append 'rdinit=/sbin/init console=ttyS0,115200' \
	-nographic -monitor null

I tested with qemu 2.12 and 3.0. Using "arch/parisc/boot/bzImage" as kernel
image does not make a difference.

Note: The initrd auto-reboots. To avoid that, add "noreboot" as additional
command line option.

Hope this helps,

Guenter

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

end of thread, other threads:[~2018-09-26 13:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-26  3:21 [PATCH] parisc: Remove PTE load and fault check from L2_ptep macro Guenter Roeck
2018-09-26 12:09 ` John David Anglin
2018-09-26 13:29   ` Guenter Roeck

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).