From: santosh.shilimkar@ti•com (Santosh Shilimkar)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCH v2] ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized
Date: Thu, 21 Mar 2013 16:48:08 +0530 [thread overview]
Message-ID: <514AEC70.9010801@ti.com> (raw)
In-Reply-To: <1363863892-6810-1-git-send-email-rnayak@ti.com>
On Thursday 21 March 2013 04:34 PM, Rajendra Nayak wrote:
> clk inits on OMAP happen quite early, even before slab is available.
> The dependency comes from the fact that the timer init code starts to
> use clocks and hwmod and we need clocks to be initialized by then.
>
> There are various problems doing clk inits this early, one is,
> not being able to do dynamic clk registrations and hence the
> dependency on clk-private.h. The other is, inability to debug
> early kernel crashes without enabling DEBUG_LL and earlyprintk.
>
> Doing early clk init also exposed another instance of a kernel
> panic due to a BUG() when CONFIG_DEBUG_SLAB is enabled.
>
> [ 0.000000] Kernel BUG at c01174f8 [verbose debug info unavailable]
> [ 0.000000] Internal error: Oops - BUG: 0 [#1] SMP ARM
> [ 0.000000] Modules linked in:
> [ 0.000000] CPU: 0 Not tainted (3.9.0-rc1-12179-g72d48f9 #6)
> [ 0.000000] PC is at __kmalloc+0x1d4/0x248
> [ 0.000000] LR is at __clk_init+0x2e0/0x364
> [ 0.000000] pc : [<c01174f8>] lr : [<c0441f54>] psr: 600001d3
> [ 0.000000] sp : c076ff28 ip : c065cefc fp : c0441f54
> [ 0.000000] r10: 0000001c r9 : 000080d0 r8 : c076ffd4
> [ 0.000000] r7 : c074b578 r6 : c0794d88 r5 : 00000040 r4 : 00000000
> [ 0.000000] r3 : 00000000 r2 : c07cac70 r1 : 000080d0 r0 : 0000001c
> [ 0.000000] Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment kernel
> [ 0.000000] Control: 10c53c7d Table: 8000404a DAC: 00000017
> [ 0.000000] Process swapper (pid: 0, stack limit = 0xc076e240)
> [ 0.000000] Stack: (0xc076ff28 to 0xc0770000)
> [ 0.000000] ff20: 22222222 c0794ec8 c06546e8 00000000 00000040 c0794d88
> [ 0.000000] ff40: c074b578 c076ffd4 c07951c8 c076e000 00000000 c0441f54 c074b578 c076ffd4
> [ 0.000000] ff60: c0793828 00000040 c0794d88 c074b578 c076ffd4 c0776900 c076e000 c07272ac
> [ 0.000000] ff80: 2f800000 c074c968 c07f93d0 c0719780 c076ffa0 c076ff98 00000000 00000000
> [ 0.000000] ffa0: 00000000 00000000 00000000 00000001 c074cd6c c077b1ec 8000406a c0715724
> [ 0.000000] ffc0: 00000000 00000000 00000000 00000000 00000000 c074c968 10c53c7d c0776974
> [ 0.000000] ffe0: c074cd6c c077b1ec 8000406a 411fc092 00000000 80008074 00000000 00000000
> [ 0.000000] [<c01174f8>] (__kmalloc+0x1d4/0x248) from [<c0441f54>] (__clk_init+0x2e0/0x364)
> [ 0.000000] [<c0441f54>] (__clk_init+0x2e0/0x364) from [<c07272ac>] (omap4xxx_clk_init+0xbc/0x140)
> [ 0.000000] [<c07272ac>] (omap4xxx_clk_init+0xbc/0x140) from [<c0719780>] (setup_arch+0x15c/0x284)
> [ 0.000000] [<c0719780>] (setup_arch+0x15c/0x284) from [<c0715724>] (start_kernel+0x7c/0x334)
> [ 0.000000] [<c0715724>] (start_kernel+0x7c/0x334) from [<80008074>] (0x80008074)
> [ 0.000000] Code: e5883004 e1a00006 e28dd00c e8bd8ff0 (e7f001f2)
> [ 0.000000] ---[ end trace 1b75b31a2719ed1c ]---
> [ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
>
> It was a know issue, that slab allocations would fail when common
> clock core tries to cache parent pointers for mux clocks on OMAP,
> and hence a patch 'clk: Allow late cache allocation for clk->parents,
> commit 7975059d' was added to work this problem around.
> A BUG() within kmalloc() with CONFIG_DEBUG_SLAB enabled was completely
> overlooked causing this regression.
>
> More details on the issue reported can be found here,
> http://www.mail-archive.com/linux-omap at vger.kernel.org/msg85932.html
>
> With all these issues around clk inits happening way too early, it
> makes sense to atleast move them to a point where dynamic memory
> allocations are possible. So move them to a point just before the
> timer code starts using clocks and hwmod.
>
> This should atleast pave way for clk inits on OMAP moving to dynamic
> clock registrations instead of using the static macros defined in
> clk-private.h.
>
> The issue with kernel panic while CONFIG_DEBUG_SLAB is enabled
> was reported by Piotr Haber and Tony Lindgren and this patch
> fixes the reported issue as well.
>
> Reported-by: Piotr Haber <phaber@broadcom•com>
> Reported-by: Tony Lindgren <tony@atomide•com>
> Signed-off-by: Rajendra Nayak <rnayak@ti•com>
> ---
> applies on 3.9-rc3 and tested on omap4 pandaES, omap3 beagle XM,
> and am335x bone.
>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti•com>
next prev parent reply other threads:[~2013-03-21 11:18 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-21 11:04 [PATCH v2] ARM: OMAP: clocks: Delay clk inits atleast until slab is initialized Rajendra Nayak
2013-03-21 11:18 ` Santosh Shilimkar [this message]
2013-03-21 17:59 ` Mike Turquette
2013-03-27 4:57 ` Paul Walmsley
2013-03-27 16:50 ` Tony Lindgren
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=514AEC70.9010801@ti.com \
--to=santosh.shilimkar@ti$(echo .)com \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox