Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1455596 > unrolled thread

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

Started byGuenter Roeck <linux@roeck-us.net>
First post2016-08-03 05:00 +0200
Last post2016-08-09 18:20 +0200
Articles 6 — 3 participants

Back to article view | Back to linux.kernel


Contents

  "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save  and reset the address limit when entering an exception") Guenter Roeck <linux@roeck-us.net> - 2016-08-03 05:00 +0200
    Re: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM:  save and reset the address limit when entering an exception") Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-08-03 10:50 +0200
      Re: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM:  save and reset the address limit when entering an exception") Guenter Roeck <linux@roeck-us.net> - 2016-08-03 19:20 +0200
        Re: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM:  save and reset the address limit when entering an exception") Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-08-04 12:20 +0200
          Re: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception") Gregory CLEMENT <gregory.clement@free-electrons.com> - 2016-08-09 17:10 +0200
            Re: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM:  save and reset the address limit when entering an exception") Guenter Roeck <linux@roeck-us.net> - 2016-08-09 18:20 +0200

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

FromGuenter Roeck <linux@roeck-us.net>
Date2016-08-03 05:00 +0200
Subject"Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")
Message-ID<s1Uzv-4PA-13@gated-at.bofh.it>
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].

Bisect points to commit e6978e4bf1 ("ARM: save and reset the address limit when entering
an exception"). Some additional debugging shows lots of similar error returns from
strncpy_from_user(). For the error case resulting in the crash, the call chain
is as follows.

sys_mknod
   sys_mknodat()
     user_path_create()
       getname()
         getname_flags()
           strncpy_from_user()

Reverting the patch fixes the problem.

I don't see the problem with any other qemu arm test.

It looks like the kernel runs in exception context. My gut feeling is that qemu may be
to blame, but I am not really sure.

Any idea how to track this down ?

Thanks,
Guenter


---
[1] http://kerneltests.org/builders/qemu-arm-master/builds/615

[toc] | [next] | [standalone]


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

FromRussell King - ARM Linux <linux@armlinux.org.uk>
Date2016-08-03 10:50 +0200
SubjectRe: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")
Message-ID<s202d-eJ-13@gated-at.bofh.it>
In reply to#1455596
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		)


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

[toc] | [prev] | [next] | [standalone]


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

FromGuenter Roeck <linux@roeck-us.net>
Date2016-08-03 19:20 +0200
SubjectRe: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")
Message-ID<s27ZM-5m7-5@gated-at.bofh.it>
In reply to#1455702
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

[toc] | [prev] | [next] | [standalone]


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

FromRussell King - ARM Linux <linux@armlinux.org.uk>
Date2016-08-04 12:20 +0200
SubjectRe: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")
Message-ID<s2nUS-7xS-25@gated-at.bofh.it>
In reply to#1455909
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.

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

[toc] | [prev] | [next] | [standalone]


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

FromGregory CLEMENT <gregory.clement@free-electrons.com>
Date2016-08-09 17:10 +0200
SubjectRe: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")
Message-ID<s4gPg-NP-31@gated-at.bofh.it>
In reply to#1456295
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

-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

[toc] | [prev] | [next] | [standalone]


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

FromGuenter Roeck <linux@roeck-us.net>
Date2016-08-09 18:20 +0200
SubjectRe: "Failed to create /dev/root: -14" after commit e6978e4bf1 ("ARM: save and reset the address limit when entering an exception")
Message-ID<s4hV0-1tf-5@gated-at.bofh.it>
In reply to#1458835
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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web