[PATCH] arm: omap: ratelimit omap_l3_smx error log spam

Shilimkar, Santosh santosh.shilimkar at ti.com
Mon Aug 27 17:35:57 EDT 2012


On Mon, Aug 27, 2012 at 2:03 PM, Aaro Koskinen <aaro.koskinen at iki.fi> wrote:
>
> When booting kernel on RM-680/N950, the console is flooded with:
>
> [    6.894348] In-band Error seen by MPU  at address 0
> [    6.894348] ------------[ cut here ]------------
> [    6.894378] WARNING: at arch/arm/mach-omap2/omap_l3_smx.c:162
> omap3_l3_app_irq+0xd4/0x12c()
> [    6.894378] Modules linked in:
> [    6.894409] Backtrace:
> [    6.894409] [<c0012440>] (dump_backtrace+0x0/0x10c) from [<c02fb698>]
> (dump_stack+0x18/0x1c)
> [    6.894439]  r6:c002de58 r5:00000009 r4:00000000 r3:c0880180
> [    6.894470] [<c02fb680>] (dump_stack+0x0/0x1c) from [<c0039854>]
> (warn_slowpath_common+0x54/0x6c)
> [    6.894500] [<c0039800>] (warn_slowpath_common+0x0/0x6c) from
> [<c0039890>] (warn_slowpath_null+0x24/0x2c)
> [    6.894500]  r8:0000000a r7:00000000 r6:f8001400 r5:00000000
> r4:84001b00
> [    6.894500] r3:00000009
> [    6.894561] [<c003986c>] (warn_slowpath_null+0x0/0x2c) from
> [<c002de58>] (omap3_l3_app_irq+0xd4/0x12c)
> [    6.894561] [<c002dd84>] (omap3_l3_app_irq+0x0/0x12c) from [<c008561c>]
> (handle_irq_event_percpu+0x54/0x19c)
> [    6.894592]  r7:00000000 r6:00000000 r5:c082c710 r4:ef072340
> [    6.894622] [<c00855c8>] (handle_irq_event_percpu+0x0/0x19c) from
> [<c00857c4>] (handle_irq_event+0x60/0x80)
> [    6.894653] [<c0085764>] (handle_irq_event+0x0/0x80) from [<c0088300>]
> (handle_level_irq+0xb4/0x134)
> [    6.894653]  r5:c082c710 r4:c082c6c0
> [    6.894683] [<c008824c>] (handle_level_irq+0x0/0x134) from [<c0084e18>]
> (generic_handle_irq+0x2c/0x44)
> [    6.894683]  r6:ef02c000 r5:c0829014 r4:c0841e18 r3:c008824c
> [    6.894744] [<c0084dec>] (generic_handle_irq+0x0/0x44) from
> [<c000f228>] (handle_IRQ+0x54/0xb8)
> [    6.894744] [<c000f1d4>] (handle_IRQ+0x0/0xb8) from [<c000873c>]
> (omap3_intc_handle_irq+0x68/0x7c)
> [    6.894775]  r8:c08415cc r7:0000000a r6:c0898c38 r5:ef02de88
> r4:fa200000
> [    6.894775] r3:00000000
> [    6.894805] [<c00086d4>] (omap3_intc_handle_irq+0x0/0x7c) from
> [<c0302e80>] (__irq_svc+0x40/0x54)
> [    6.894836] Exception stack(0xef02de88 to 0xef02ded0)
> [    6.894836] de80:                   f0048000 00000000 00007000 00000000
> 0000 3035 f004bfca
> [    6.894866] dea0: 00000000 00000000 c08415cc c0898140 ef02c000 ef02def4
> ef02 def8 ef02ded0
> [    6.894866] dec0: c042b1dc c0016efc 20000013 ffffffff
> [    6.894897]  r7:ef02debc r6:ffffffff r5:20000013 r4:c0016efc
> [    6.894927] [<c0016ed0>] (_memset_io+0x0/0x50) from [<c042b1dc>]
> (omap_sram_init+0x228/0x56c)
> [    6.894927]  r8:c0445cf4 r7:c0417208 r6:c0898140 r5:c0899840
> r4:c0899a3c
> [    6.894927] r3:f004f000
> [    6.894989] [<c042afb4>] (omap_sram_init+0x0/0x56c) from [<c041f01c>]
> (omap_sdrc_init+0x18/0xb8)
> [    6.894989]  r6:c0898140 r5:c0899840 r4:c0899840 r3:0005e601
> [    6.895019] [<c041f004>] (omap_sdrc_init+0x0/0xb8) from [<c0427e38>]
> (rm680_init+0x34/0xc0)
> [    6.895050]  r5:c04518e0 r4:c0875da0
> [    6.895080] [<c0427e04>] (rm680_init+0x0/0xc0) from [<c0419934>]
> (customize_machine+0x24/0x30)
> [    6.895080]  r5:00000003 r4:00000000
> [    6.895111] [<c0419910>] (customize_machine+0x0/0x30) from [<c00088e0>]
> (do_one_initcall+0x11c/0x184)
> [    6.895141] [<c00087c4>] (do_one_initcall+0x0/0x184) from [<c041799c>]
> (kernel_init+0x100/0x1c4)
> [    6.895141] [<c041789c>] (kernel_init+0x0/0x1c4) from [<c003ef18>]
> (do_exit+0x0/0x794)
> [    6.895172] ---[ end trace 1b75b31a271a0d00 ]---
>
> This is repeated maybe a thousand times. While the root cause remains
> unknown (they seem to occur during SDRC and DMA init), the errors should
> be at least ratelimited so that user will also have chance to see other
> boot messages.
>
> Signed-off-by: Aaro Koskinen <aaro.koskinen at iki.fi>
> ---
>  arch/arm/mach-omap2/omap_l3_smx.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_l3_smx.c
> b/arch/arm/mach-omap2/omap_l3_smx.c
> index acc2164..e3b4948 100644
> --- a/arch/arm/mach-omap2/omap_l3_smx.c
> +++ b/arch/arm/mach-omap2/omap_l3_smx.c
> @@ -155,11 +155,11 @@ static irqreturn_t omap3_l3_block_irq(struct
> omap3_l3 *l3,
>         u8 multi = error & L3_ERROR_LOG_MULTI;
>         u32 address = omap3_l3_decode_addr(error_addr);
>
> -       pr_err("%s seen by %s %s at address %x\n",
> +       pr_err_ratelimited("%s seen by %s %s at address %x\n",
>                         omap3_l3_code_string(code),
>                         omap3_l3_initiator_string(initid),
>                         multi ? "Multiple Errors" : "", address);
> -       WARN_ON(1);
> +       WARN_ON_ONCE(1);
>
The issue needs to be fixed instead of WARN_ON_ONCE() and then
just moving ahead. Interconnect in bad states is really bad state and you
won't have reliable operations post that on SOC.

Regards
Santosh



More information about the linux-arm-kernel mailing list