diff mbox

"Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")

Message ID 20160803083822.GI1041@n2100.armlinux.org.uk
State New, archived
Headers show

Commit Message

Russell King - ARM Linux admin Aug. 3, 2016, 8:38 a.m. UTC
On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
> Hi,
> 
> I see the following crash when running a qemu arm 'kzm' runtime test with
> the current mainline.
>...
> Failed to create /dev/root: -14
> 
> [ followed by panic ]
> 
> A complete log file is at [1].

I think it's because of those undefined instructions you're hitting
with the hw-breakpoint code... can you try the patch below please?

 arch/arm/kernel/entry-armv.S | 1 +
 1 file changed, 1 insertion(+)

Comments

Guenter Roeck Aug. 3, 2016, 3:07 p.m. UTC | #1
On 08/03/2016 01:38 AM, Russell King - ARM Linux wrote:
> On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
>> Hi,
>>
>> I see the following crash when running a qemu arm 'kzm' runtime test with
>> the current mainline.
>> ...
>> Failed to create /dev/root: -14
>>
>> [ followed by panic ]
>>
>> A complete log file is at [1].
>
> I think it's because of those undefined instructions you're hitting
> with the hw-breakpoint code... can you try the patch below please?
>
>   arch/arm/kernel/entry-armv.S | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
> index bc5f50799d75..9f157e7c51e7 100644
> --- a/arch/arm/kernel/entry-armv.S
> +++ b/arch/arm/kernel/entry-armv.S
> @@ -295,6 +295,7 @@ __und_svc_fault:
>   	bl	__und_fault
>
>   __und_svc_finish:
> +	get_thread_info tsk
>   	ldr	r5, [sp, #S_PSR]		@ Get SVC cpsr
>   	svc_exit r5				@ return from exception
>    UNWIND(.fnend		)
>

Yes, that fixes the problem.

Assuming you'll create a patch:

Tested-by: Guenter Roeck <linux@roeck-us.net>

Does that need to be addressed in qemu, or is it a Linux bug ?

Thanks,
Guenter
Russell King - ARM Linux admin Aug. 4, 2016, 10:07 a.m. UTC | #2
On Wed, Aug 03, 2016 at 08:07:02AM -0700, Guenter Roeck wrote:
> On 08/03/2016 01:38 AM, Russell King - ARM Linux wrote:
> >On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
> >>Hi,
> >>
> >>I see the following crash when running a qemu arm 'kzm' runtime test with
> >>the current mainline.
> >>...
> >>Failed to create /dev/root: -14
> >>
> >>[ followed by panic ]
> >>
> >>A complete log file is at [1].
> >
> >I think it's because of those undefined instructions you're hitting
> >with the hw-breakpoint code... can you try the patch below please?
> >
> >  arch/arm/kernel/entry-armv.S | 1 +
> >  1 file changed, 1 insertion(+)
> >
> >diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
> >index bc5f50799d75..9f157e7c51e7 100644
> >--- a/arch/arm/kernel/entry-armv.S
> >+++ b/arch/arm/kernel/entry-armv.S
> >@@ -295,6 +295,7 @@ __und_svc_fault:
> >  	bl	__und_fault
> >
> >  __und_svc_finish:
> >+	get_thread_info tsk
> >  	ldr	r5, [sp, #S_PSR]		@ Get SVC cpsr
> >  	svc_exit r5				@ return from exception
> >   UNWIND(.fnend		)
> >
> 
> Yes, that fixes the problem.
> 
> Assuming you'll create a patch:
> 
> Tested-by: Guenter Roeck <linux@roeck-us.net>
> 
> Does that need to be addressed in qemu, or is it a Linux bug ?

It's a Linux bug provoked by qemu not implementing the hardware
breakpoints.  Well worth fixing in Linux.
Gregory CLEMENT Aug. 9, 2016, 3:06 p.m. UTC | #3
Hi Russell King,
 
 On jeu., août 04 2016, Russell King - ARM Linux <linux@armlinux.org.uk> wrote:

> On Wed, Aug 03, 2016 at 08:07:02AM -0700, Guenter Roeck wrote:
>> On 08/03/2016 01:38 AM, Russell King - ARM Linux wrote:
>> >On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
>> >>Hi,
>> >>
>> >>I see the following crash when running a qemu arm 'kzm' runtime test with
>> >>the current mainline.
>> >>...
>> >>Failed to create /dev/root: -14
>> >>
>> >>[ followed by panic ]
>> >>
>> >>A complete log file is at [1].
>> >
>> >I think it's because of those undefined instructions you're hitting
>> >with the hw-breakpoint code... can you try the patch below please?
>> >
>> >  arch/arm/kernel/entry-armv.S | 1 +
>> >  1 file changed, 1 insertion(+)
>> >
>> >diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
>> >index bc5f50799d75..9f157e7c51e7 100644
>> >--- a/arch/arm/kernel/entry-armv.S
>> >+++ b/arch/arm/kernel/entry-armv.S
>> >@@ -295,6 +295,7 @@ __und_svc_fault:
>> >  	bl	__und_fault
>> >
>> >  __und_svc_finish:
>> >+	get_thread_info tsk
>> >  	ldr	r5, [sp, #S_PSR]		@ Get SVC cpsr
>> >  	svc_exit r5				@ return from exception
>> >   UNWIND(.fnend		)
>> >
>> 
>> Yes, that fixes the problem.
>> 
>> Assuming you'll create a patch:
>> 
>> Tested-by: Guenter Roeck <linux@roeck-us.net>
>> 
>> Does that need to be addressed in qemu, or is it a Linux bug ?
>
> It's a Linux bug provoked by qemu not implementing the hardware
> breakpoints.  Well worth fixing in Linux.

The Armada XP base platform were hit by the same bug as we can see on
kernlci:
https://storage.kernelci.org/mainline/v4.8-rc1/arm-mvebu_v7_defconfig/lab-baylibre-seattle/boot-armada-xp-openblocks-ax3-4.html

Your patch solves the issue too.

Will you push this patch for v4.8-rc2 ?

Also I wonder if it is something expected to have this issue on a "real"
hardware.

You can also add my:
Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>

Thanks,

Gregory

>
> -- 
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
> according to speedtest.net.
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Guenter Roeck Aug. 9, 2016, 4:12 p.m. UTC | #4
On Tue, Aug 09, 2016 at 05:06:51PM +0200, Gregory CLEMENT wrote:
> Hi Russell King,
>  
>  On jeu., août 04 2016, Russell King - ARM Linux <linux@armlinux.org.uk> wrote:
> 
> > On Wed, Aug 03, 2016 at 08:07:02AM -0700, Guenter Roeck wrote:
> >> On 08/03/2016 01:38 AM, Russell King - ARM Linux wrote:
> >> >On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
> >> >>Hi,
> >> >>
> >> >>I see the following crash when running a qemu arm 'kzm' runtime test with
> >> >>the current mainline.
> >> >>...
> >> >>Failed to create /dev/root: -14
> >> >>
> >> >>[ followed by panic ]
> >> >>
> >> >>A complete log file is at [1].
> >> >
> >> >I think it's because of those undefined instructions you're hitting
> >> >with the hw-breakpoint code... can you try the patch below please?
> >> >
> >> >  arch/arm/kernel/entry-armv.S | 1 +
> >> >  1 file changed, 1 insertion(+)
> >> >
> >> >diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
> >> >index bc5f50799d75..9f157e7c51e7 100644
> >> >--- a/arch/arm/kernel/entry-armv.S
> >> >+++ b/arch/arm/kernel/entry-armv.S
> >> >@@ -295,6 +295,7 @@ __und_svc_fault:
> >> >  	bl	__und_fault
> >> >
> >> >  __und_svc_finish:
> >> >+	get_thread_info tsk
> >> >  	ldr	r5, [sp, #S_PSR]		@ Get SVC cpsr
> >> >  	svc_exit r5				@ return from exception
> >> >   UNWIND(.fnend		)
> >> >
> >> 
> >> Yes, that fixes the problem.
> >> 
> >> Assuming you'll create a patch:
> >> 
> >> Tested-by: Guenter Roeck <linux@roeck-us.net>
> >> 
> >> Does that need to be addressed in qemu, or is it a Linux bug ?
> >
> > It's a Linux bug provoked by qemu not implementing the hardware
> > breakpoints.  Well worth fixing in Linux.
> 
> The Armada XP base platform were hit by the same bug as we can see on
> kernlci:
> https://storage.kernelci.org/mainline/v4.8-rc1/arm-mvebu_v7_defconfig/lab-baylibre-seattle/boot-armada-xp-openblocks-ax3-4.html
> 
> Your patch solves the issue too.
> 
> Will you push this patch for v4.8-rc2 ?
> 
> Also I wonder if it is something expected to have this issue on a "real"
> hardware.
> 

It would be expected if hardware breakpoint implementation is optional
and not all real CPUs implement it.

Guenter
Kevin Hilman Aug. 10, 2016, 11:34 p.m. UTC | #5
On Tue, Aug 9, 2016 at 10:06 AM, Gregory CLEMENT
<gregory.clement@free-electrons.com> wrote:
> Hi Russell King,
>
>  On jeu., août 04 2016, Russell King - ARM Linux <linux@armlinux.org.uk> wrote:
>
>> On Wed, Aug 03, 2016 at 08:07:02AM -0700, Guenter Roeck wrote:
>>> On 08/03/2016 01:38 AM, Russell King - ARM Linux wrote:
>>> >On Tue, Aug 02, 2016 at 07:51:45PM -0700, Guenter Roeck wrote:
>>> >>Hi,
>>> >>
>>> >>I see the following crash when running a qemu arm 'kzm' runtime test with
>>> >>the current mainline.
>>> >>...
>>> >>Failed to create /dev/root: -14
>>> >>
>>> >>[ followed by panic ]
>>> >>
>>> >>A complete log file is at [1].
>>> >
>>> >I think it's because of those undefined instructions you're hitting
>>> >with the hw-breakpoint code... can you try the patch below please?
>>> >
>>> >  arch/arm/kernel/entry-armv.S | 1 +
>>> >  1 file changed, 1 insertion(+)
>>> >
>>> >diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
>>> >index bc5f50799d75..9f157e7c51e7 100644
>>> >--- a/arch/arm/kernel/entry-armv.S
>>> >+++ b/arch/arm/kernel/entry-armv.S
>>> >@@ -295,6 +295,7 @@ __und_svc_fault:
>>> >    bl      __und_fault
>>> >
>>> >  __und_svc_finish:
>>> >+   get_thread_info tsk
>>> >    ldr     r5, [sp, #S_PSR]                @ Get SVC cpsr
>>> >    svc_exit r5                             @ return from exception
>>> >   UNWIND(.fnend            )
>>> >
>>>
>>> Yes, that fixes the problem.
>>>
>>> Assuming you'll create a patch:
>>>
>>> Tested-by: Guenter Roeck <linux@roeck-us.net>
>>>
>>> Does that need to be addressed in qemu, or is it a Linux bug ?
>>
>> It's a Linux bug provoked by qemu not implementing the hardware
>> breakpoints.  Well worth fixing in Linux.
>
> The Armada XP base platform were hit by the same bug as we can see on
> kernlci:
> https://storage.kernelci.org/mainline/v4.8-rc1/arm-mvebu_v7_defconfig/lab-baylibre-seattle/boot-armada-xp-openblocks-ax3-4.html
>
> Your patch solves the issue too.
>
> Will you push this patch for v4.8-rc2 ?
>
> Also I wonder if it is something expected to have this issue on a "real"
> hardware.
>
> You can also add my:
> Tested-by: Gregory CLEMENT <gregory.clement@free-electrons.com>

I also tested this fixes the boot issue on Armada XP.

Tested-by: Kevin Hilman <khilman@baylibre.com>

Kevin
Russell King - ARM Linux admin Aug. 10, 2016, 11:43 p.m. UTC | #6
On Wed, Aug 10, 2016 at 06:34:22PM -0500, Kevin Hilman wrote:
> I also tested this fixes the boot issue on Armada XP.
> 
> Tested-by: Kevin Hilman <khilman@baylibre.com>

It should be in the current linux-next.  I'll send them on in the
usual way over the weekend for -rc2, with your ack for this one.

Thanks.
Kevin Hilman Aug. 11, 2016, 12:46 a.m. UTC | #7
On Wed, Aug 10, 2016 at 6:43 PM, Russell King - ARM Linux
<linux@armlinux.org.uk> wrote:
> On Wed, Aug 10, 2016 at 06:34:22PM -0500, Kevin Hilman wrote:
>> I also tested this fixes the boot issue on Armada XP.
>>
>> Tested-by: Kevin Hilman <khilman@baylibre.com>
>
> It should be in the current linux-next.  I'll send them on in the
> usual way over the weekend for -rc2, with your ack for this one.

Also, I noticed your for-next branch is going through boot testing
right now in my kernelci lab, and I see it passed on the Armada XP, so
that's more evidence for the fix.

Thanks,

Kevin
diff mbox

Patch

diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index bc5f50799d75..9f157e7c51e7 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -295,6 +295,7 @@  __und_svc_fault:
 	bl	__und_fault
 
 __und_svc_finish:
+	get_thread_info tsk
 	ldr	r5, [sp, #S_PSR]		@ Get SVC cpsr
 	svc_exit r5				@ return from exception
  UNWIND(.fnend		)