All of lore.kernel.org
 help / color / mirror / Atom feed
From: dirk.behme@de.bosch.com (Dirk Behme)
To: linux-arm-kernel@lists.infradead.org
Subject: i.MX6 Solo: maxcpus=1 vs. nosmp: Warning from smp_twd.c?
Date: Thu, 14 Feb 2013 15:10:43 +0100	[thread overview]
Message-ID: <511CF063.3010200@de.bosch.com> (raw)

Hi,

working on a i.MX6 Solo SoC (one Cortex A9 core) we are usually booting 
with maxcpus=1 a kernel built with CONFIG_NR_CPUS=4. This is done to be 
able to boot the same kernel on the Solo and Quad version of that SoC.

Now, we tried to switch from 'maxcpus=1' to 'nosmp'. With 'nosmp' we get 
the warning [1] in the boot messages. This isn't there with 'maxcpus=1'.

Is it a good idea to use 'nosmp' instead of 'maxcpus=1' on a single 
Cortex A9 SoC?

Looking into the warning, it's the result of setup_max_cpus being 0 in 
case of 'nosmp' (and being 1 in case of 'maxcpus=1'). So with 'nosmp' 
the function local_timer_register()

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/arm/kernel/smp.c;h=84f4cbf652e58b3acfea846ad1cad9ddbee72d95;hb=refs/heads/master#l514

returns -ENXIO (== -6).

Is this the intended behaviour for 'nosmp' resulting in below boot warning?

The call stack is

    imx6q_timer_init()
-> twd_local_timer_of_register()()
-> twd_local_timer_common_register()
-> local_timer_register()  (returns -ENXIO due to setup_max_cpus == 0)

Best regards

Dirk

[1]
...
sched_clock: 32 bits at 49MHz, resolution 20ns, wraps every 86767ms
------------[ cut here ]------------
WARNING: at arch/arm/kernel/smp_twd.c:345 
twd_local_timer_of_register+0x7c/0x90()
twd_local_timer_of_register failed (-6)
Modules linked in:
Backtrace:
[<80011f14>] (dump_backtrace+0x0/0x10c) from [<8044dd30>] 
(dump_stack+0x18/0x1c)
  r7:805e9f58 r6:805ba84c r5:80539331 r4:00000159
[<8044dd18>] (dump_stack+0x0/0x1c) from [<80020fbc>] 
(warn_slowpath_common+0x54/0x6c)
[<80020f68>] (warn_slowpath_common+0x0/0x6c) from [<80021078>] 
(warn_slowpath_fmt+0x38/0x40)
  r9:412fc09a r8:8fffffff r7:ffffffff r6:00000001 r5:80633b8c
r4:80b32da8
[<80021040>] (warn_slowpath_fmt+0x0/0x40) from [<805ba84c>] 
(twd_local_timer_of_register+0x7c/0x90)
  r3:fffffffa r2:8053934b
[<805ba7d0>] (twd_local_timer_of_register+0x0/0x90) from [<805c0bec>] 
(imx6q_timer_init+0x18/0x4c)
  r5:80633800 r4:8053b701
[<805c0bd4>] (imx6q_timer_init+0x0/0x4c) from [<805ba4e8>] 
(time_init+0x28/0x38)
  r5:80633800 r4:805dc0f4
[<805ba4c0>] (time_init+0x0/0x38) from [<805b6854>] 
(start_kernel+0x1a0/0x310)
[<805b66b4>] (start_kernel+0x0/0x310) from [<10008044>] (0x10008044)
  r8:1000406a r7:805f3f8c r6:805dc0c4 r5:805f0518 r4:10c5387d
---[ end trace 1b75b31a2719ed1c ]---
CPU identified as i.MX6S/DL, silicon rev 1.0
...

             reply	other threads:[~2013-02-14 14:10 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-14 14:10 Dirk Behme [this message]
2013-02-14 14:37 ` i.MX6 Solo: maxcpus=1 vs. nosmp: Warning from smp_twd.c? Russell King - ARM Linux
2013-02-15  9:25   ` Dirk Behme
2013-02-18  2:50   ` Shawn Guo
2013-02-21  7:16     ` Dirk Behme
2013-02-21  7:29       ` Shawn Guo
2013-02-14 14:40 ` Fabio Estevam
2013-02-14 14:47   ` Dirk Behme

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=511CF063.3010200@de.bosch.com \
    --to=dirk.behme@de.bosch.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.