diff mbox

[linux-next,bisected,1945bc45] build brakes for PowerPC BE configuration on LPAR

Message ID 20170504204112.130d7735@roar.ozlabs.ibm.com (mailing list archive)
State Accepted
Commit 6102c005a71b4a7a6433d43b887662fb0780746d
Headers show

Commit Message

Nicholas Piggin May 4, 2017, 10:41 a.m. UTC
On Thu, 04 May 2017 14:54:19 +0530
Abdul Haleem <abdhalee@linux.vnet.ibm.com> wrote:

> Hi,
> 
> linux-next build fails on BE config with next-20170424 onwards
> 
> the patch https://lkml.org/lkml/2017/4/20/994  fixes a similar issue
> with kvm guest build failure.
> 
> arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
> (0xffffffffffff8280 is not between 0x0000000000000000 and
> 0x000000000000ffff)
> make[1]: *** [arch/powerpc/kernel/head_64.o] Error 1
> 
> Bisection resulted with the below bad commit.
> 
> commit 1945bc4549e5cb1f9aa873ec29191aa54dc851d
> Author: Nicholas Piggin <npiggin@gmail.com>
> Date:   Wed Apr 19 23:05:47 2017 +1000
> 
>     powerpc/64s: Fix POWER9 machine check handler from stop state
> 
>     Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
>     Reviewed-by: Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com>
>     Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
>     Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> 
>  arch/powerpc/include/asm/reg.h       |  1 +
>  arch/powerpc/kernel/exceptions-64s.S | 79 ++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
>  arch/powerpc/kernel/idle_book3s.S    | 25 +++++++++++++++++++++++++
>  3 files changed, 70 insertions(+), 35 deletions(-)
> 
> the BE configuration file is attached.
> 

Thanks for the report. I wouldn't reproduce it with this config. I
suspect the following patch should fix it, can you test?

powerpc/64s: Fix unnecessary machine check handler relocation branch

Similarly to 2563a70c3b ("powerpc/64s: Remove unnecessary relocation
branch from idle handler"), the machine check handler has a BRANCH_TO
from relocated to relocated code, which is unnecessary.

It has also caused build errors with some toolchains:

  arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
  arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
  (0xffffffffffff8280 is not between 0x0000000000000000 and
  0x000000000000ffff)

Fixes: 1945bc4549 ("powerpc/64s: Fix POWER9 machine check handler from stop state")
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/kernel/exceptions-64s.S | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

Comments

Abdul Haleem May 5, 2017, 4:10 a.m. UTC | #1
On Thu, 2017-05-04 at 20:41 +1000, Nicholas Piggin wrote:
> On Thu, 04 May 2017 14:54:19 +0530
> Abdul Haleem <abdhalee@linux.vnet.ibm.com> wrote:
> 
> > Hi,
> > 
> > linux-next build fails on BE config with next-20170424 onwards
> > 
> > the patch https://lkml.org/lkml/2017/4/20/994  fixes a similar issue
> > with kvm guest build failure.
> > 
> > arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> > arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
> > (0xffffffffffff8280 is not between 0x0000000000000000 and
> > 0x000000000000ffff)
> > make[1]: *** [arch/powerpc/kernel/head_64.o] Error 1
> > 
> > Bisection resulted with the below bad commit.
> > 
> > commit 1945bc4549e5cb1f9aa873ec29191aa54dc851d
> > Author: Nicholas Piggin <npiggin@gmail.com>
> > Date:   Wed Apr 19 23:05:47 2017 +1000
> > 
> >     powerpc/64s: Fix POWER9 machine check handler from stop state
> > 
> >     Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
> >     Reviewed-by: Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com>
> >     Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> >     Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> > 
> >  arch/powerpc/include/asm/reg.h       |  1 +
> >  arch/powerpc/kernel/exceptions-64s.S | 79 ++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
> >  arch/powerpc/kernel/idle_book3s.S    | 25 +++++++++++++++++++++++++
> >  3 files changed, 70 insertions(+), 35 deletions(-)
> > 
> > the BE configuration file is attached.
> > 
> 
> Thanks for the report. I wouldn't reproduce it with this config. I
> suspect the following patch should fix it, can you test?
> 
> powerpc/64s: Fix unnecessary machine check handler relocation branch
> 
> Similarly to 2563a70c3b ("powerpc/64s: Remove unnecessary relocation
> branch from idle handler"), the machine check handler has a BRANCH_TO
> from relocated to relocated code, which is unnecessary.
> 
> It has also caused build errors with some toolchains:
> 
>   arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
>   arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
>   (0xffffffffffff8280 is not between 0x0000000000000000 and
>   0x000000000000ffff)
> 
> Fixes: 1945bc4549 ("powerpc/64s: Fix POWER9 machine check handler from stop state")
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
>  arch/powerpc/kernel/exceptions-64s.S | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
> index 3840a7700285..ef72065f684c 100644
> --- a/arch/powerpc/kernel/exceptions-64s.S
> +++ b/arch/powerpc/kernel/exceptions-64s.S
> @@ -391,9 +391,7 @@ EXC_COMMON_BEGIN(machine_check_handle_early)
>  	 */
>  	BEGIN_FTR_SECTION
>  	rlwinm.	r11,r12,47-31,30,31
> -	beq-	4f
> -	BRANCH_TO_COMMON(r10, machine_check_idle_common)
> -4:
> +	bne	machine_check_idle_common
>  	END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
>  #endif
> 

Machine Builds and boots fine, Thanks for the patch :-)

Reported-and-tested-by : Abdul Haleem <abdhalee@linux.vnet.ibm.com>
Nicholas Piggin May 5, 2017, 6:40 a.m. UTC | #2
On Fri, 05 May 2017 09:40:10 +0530
Abdul Haleem <abdhalee@linux.vnet.ibm.com> wrote:

> On Thu, 2017-05-04 at 20:41 +1000, Nicholas Piggin wrote:
> > On Thu, 04 May 2017 14:54:19 +0530
> > Abdul Haleem <abdhalee@linux.vnet.ibm.com> wrote:
> >   
> > > Hi,
> > > 
> > > linux-next build fails on BE config with next-20170424 onwards
> > > 
> > > the patch https://lkml.org/lkml/2017/4/20/994  fixes a similar issue
> > > with kvm guest build failure.
> > > 
> > > arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> > > arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
> > > (0xffffffffffff8280 is not between 0x0000000000000000 and
> > > 0x000000000000ffff)
> > > make[1]: *** [arch/powerpc/kernel/head_64.o] Error 1
> > > 
> > > Bisection resulted with the below bad commit.
> > > 
> > > commit 1945bc4549e5cb1f9aa873ec29191aa54dc851d
> > > Author: Nicholas Piggin <npiggin@gmail.com>
> > > Date:   Wed Apr 19 23:05:47 2017 +1000
> > > 
> > >     powerpc/64s: Fix POWER9 machine check handler from stop state
> > > 
> > >     Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
> > >     Reviewed-by: Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com>
> > >     Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > >     Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> > > 
> > >  arch/powerpc/include/asm/reg.h       |  1 +
> > >  arch/powerpc/kernel/exceptions-64s.S | 79 ++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
> > >  arch/powerpc/kernel/idle_book3s.S    | 25 +++++++++++++++++++++++++
> > >  3 files changed, 70 insertions(+), 35 deletions(-)
> > > 
> > > the BE configuration file is attached.
> > >   
> > 
> > Thanks for the report. I wouldn't reproduce it with this config. I
> > suspect the following patch should fix it, can you test?
> > 
> > powerpc/64s: Fix unnecessary machine check handler relocation branch
> > 
> > Similarly to 2563a70c3b ("powerpc/64s: Remove unnecessary relocation
> > branch from idle handler"), the machine check handler has a BRANCH_TO
> > from relocated to relocated code, which is unnecessary.
> > 
> > It has also caused build errors with some toolchains:
> > 
> >   arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> >   arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
> >   (0xffffffffffff8280 is not between 0x0000000000000000 and
> >   0x000000000000ffff)
> > 
> > Fixes: 1945bc4549 ("powerpc/64s: Fix POWER9 machine check handler from stop state")
> > Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> > ---
> >  arch/powerpc/kernel/exceptions-64s.S | 4 +---
> >  1 file changed, 1 insertion(+), 3 deletions(-)
> > 
> > diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
> > index 3840a7700285..ef72065f684c 100644
> > --- a/arch/powerpc/kernel/exceptions-64s.S
> > +++ b/arch/powerpc/kernel/exceptions-64s.S
> > @@ -391,9 +391,7 @@ EXC_COMMON_BEGIN(machine_check_handle_early)
> >  	 */
> >  	BEGIN_FTR_SECTION
> >  	rlwinm.	r11,r12,47-31,30,31
> > -	beq-	4f
> > -	BRANCH_TO_COMMON(r10, machine_check_idle_common)
> > -4:
> > +	bne	machine_check_idle_common
> >  	END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
> >  #endif
> >   
> 
> Machine Builds and boots fine, Thanks for the patch :-)
> 
> Reported-and-tested-by : Abdul Haleem <abdhalee@linux.vnet.ibm.com>
> 

Okay, thanks for testing. I've tested the MCE-from-idle wakeup path in
the simulator with this patch and that still seems to work fine.

Thanks,
Nick
Michael Ellerman May 15, 2017, 5:06 a.m. UTC | #3
On Thu, 2017-05-04 at 10:41:12 UTC, Nicholas Piggin wrote:
> On Thu, 04 May 2017 14:54:19 +0530
> Abdul Haleem <abdhalee@linux.vnet.ibm.com> wrote:
> 
> > Hi,
> > 
> > linux-next build fails on BE config with next-20170424 onwards
> > 
> > the patch https://lkml.org/lkml/2017/4/20/994  fixes a similar issue
> > with kvm guest build failure.
> > 
> > arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> > arch/powerpc/kernel/exceptions-64s.S:395: Error: operand out of range
> > (0xffffffffffff8280 is not between 0x0000000000000000 and
> > 0x000000000000ffff)
> > make[1]: *** [arch/powerpc/kernel/head_64.o] Error 1
> > 
> > Bisection resulted with the below bad commit.
> > 
> > commit 1945bc4549e5cb1f9aa873ec29191aa54dc851d
> > Author: Nicholas Piggin <npiggin@gmail.com>
> > Date:   Wed Apr 19 23:05:47 2017 +1000
> > 
> >     powerpc/64s: Fix POWER9 machine check handler from stop state
> > 
> >     Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
> >     Reviewed-by: Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com>
> >     Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> >     Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> > 
> >  arch/powerpc/include/asm/reg.h       |  1 +
> >  arch/powerpc/kernel/exceptions-64s.S | 79 ++++++++++++++++++++++++++++++++++++++++++++-----------------------------------
> >  arch/powerpc/kernel/idle_book3s.S    | 25 +++++++++++++++++++++++++
> >  3 files changed, 70 insertions(+), 35 deletions(-)
> > 
> > the BE configuration file is attached.
> > 

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/6102c005a71b4a7a6433d43b887662

cheers
diff mbox

Patch

diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 3840a7700285..ef72065f684c 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -391,9 +391,7 @@  EXC_COMMON_BEGIN(machine_check_handle_early)
 	 */
 	BEGIN_FTR_SECTION
 	rlwinm.	r11,r12,47-31,30,31
-	beq-	4f
-	BRANCH_TO_COMMON(r10, machine_check_idle_common)
-4:
+	bne	machine_check_idle_common
 	END_FTR_SECTION_IFSET(CPU_FTR_HVMODE | CPU_FTR_ARCH_206)
 #endif