All of lore.kernel.org
 help / color / mirror / Atom feed
* BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
@ 2013-03-25 10:52 Hector Palacios
  2013-03-25 12:10 ` Marek Vasut
  2013-03-25 19:31   ` Fabio Estevam
  0 siblings, 2 replies; 8+ messages in thread
From: Hector Palacios @ 2013-03-25 10:52 UTC (permalink / raw)
  To: linux-kernel; +Cc: Fabio Estevam, Marek Vasut

Hello,

I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000 (kernel 
v3.8) with:

	arecord -M -f cd sound.wav --duration 10

and got a scheduler message:

[  789.041847] [sched_delayed] sched: RT throttling activated

The system then becomes nearly unresponsive and after some seconds the kernel 
complains of a soft lockup.

[  904.211821] BUG: soft lockup - CPU#0 stuck for 22s! [mdev:279]
[  904.217693] Modules linked in:
[  904.220776] irq event stamp: 1576636
[  904.224363] hardirqs last  enabled at (1576635): [<c000ee28>] __irq_svc+0x48/0x54
[  904.231903] hardirqs last disabled at (1576636): [<c000ee14>] __irq_svc+0x34/0x54
[  904.239422] softirqs last  enabled at (1575782): [<c0026138>] __do_softirq+0x13c/0x220
[  904.247388] softirqs last disabled at (1575771): [<c002630c>] irq_exit+0x8c/0x94
[  904.254821]
[  904.256328] Pid: 279, comm:                 mdev
[  904.260967] CPU: 0    Not tainted  (3.8.0-00041-gbdf34c0-dirty #49)
[  904.267272] PC is at cpu_arm926_switch_mm+0x8/0x20
[  904.272089] LR is at flush_old_exec+0x340/0x5c0
[  904.276644] pc : [<c001a5c8>]    lr : [<c00da6a0>]    psr: 00000013
[  904.276644] sp : c6f73e60  ip : 00000000  fp : c0634c10
[  904.288138] r10: c779dd20  r9 : c77ac654  r8 : c779d5a0
[  904.293378] r7 : c6f0ac00  r6 : c77ac400  r5 : c6f72000  r4 : c779dd20
[  904.299918] r3 : 60000013  r2 : 00000000  r1 : c779d5a0  r0 : 46f7c000
[  904.306461] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  904.313613] Control: 0005317f  Table: 46f78000  DAC: 00000015
[  904.319427] [<c001510c>] (unwind_backtrace+0x0/0xf4) from [<c006c4a8>] 
(watchdog_timer_fn+0x124/0x160)
[  904.328795] [<c006c4a8>] (watchdog_timer_fn+0x124/0x160) from [<c0042784>] 
(__run_hrtimer+0x7c/0x1e8)
[  904.338061] [<c0042784>] (__run_hrtimer+0x7c/0x1e8) from [<c0042c9c>] 
(hrtimer_interrupt+0x110/0x310)
[  904.347329] [<c0042c9c>] (hrtimer_interrupt+0x110/0x310) from [<c001ab80>] 
(mxs_timer_interrupt+0x1c/0x2
8)
[  904.357033] [<c001ab80>] (mxs_timer_interrupt+0x1c/0x28) from [<c006cb38>] 
(handle_irq_event_percpu+0x5c
/0x26c)
[  904.367169] [<c006cb38>] (handle_irq_event_percpu+0x5c/0x26c) from [<c006cd84>] 
(handle_irq_event+0x3c/0
x5c)
[  904.377039] [<c006cd84>] (handle_irq_event+0x3c/0x5c) from [<c006f3b0>] 
(handle_level_irq+0x8c/0x118)
[  904.386300] [<c006f3b0>] (handle_level_irq+0x8c/0x118) from [<c006cacc>] 
(generic_handle_irq+0x28/0x30)
[  904.395741] [<c006cacc>] (generic_handle_irq+0x28/0x30) from [<c001009c>] 
(handle_IRQ+0x30/0x84)
[  904.404568] [<c001009c>] (handle_IRQ+0x30/0x84) from [<c00086ec>] 
(icoll_handle_irq+0x30/0x44)
[  904.413220] [<c00086ec>] (icoll_handle_irq+0x30/0x44) from [<c000ee24>] 
(__irq_svc+0x44/0x54)
[  904.421761] Exception stack(0xc6f73e18 to 0xc6f73e60)
[  904.426834] 3e00:                                                       46f7c000 
c779d5a0
[  904.435043] 3e20: 00000000 60000013 c779dd20 c6f72000 c77ac400 c6f0ac00 c779d5a0 
c77ac654
[  904.443250] 3e40: c779dd20 c0634c10 00000000 c6f73e60 c00da6a0 c001a5c8 00000013 
ffffffff
[  904.451472] [<c000ee24>] (__irq_svc+0x44/0x54) from [<c001a5c8>] 
(cpu_arm926_switch_mm+0x8/0x20)
[  904.460298] [<c001a5c8>] (cpu_arm926_switch_mm+0x8/0x20) from [<c6e740c0>] (0xc6e740c0)
[  936.211821] BUG: soft lockup - CPU#0 stuck for 21s! [arecord:264]
[  936.217952] Modules linked in:
[  936.221038] irq event stamp: 6749868
[  936.224624] hardirqs last  enabled at (6749867): [<c000ee28>] __irq_svc+0x48/0x54
[  936.232163] hardirqs last disabled at (6749868): [<c000ee14>] __irq_svc+0x34/0x54
[  936.239681] softirqs last  enabled at (6749012): [<c0026138>] __do_softirq+0x13c/0x220
[  936.247644] softirqs last disabled at (6748999): [<c002630c>] irq_exit+0x8c/0x94
[  936.255077]
[  936.256586] Pid: 264, comm:              arecord
[  936.261223] CPU: 0    Not tainted  (3.8.0-00041-gbdf34c0-dirty #49)
[  936.267528] PC is at cpu_arm926_switch_mm+0x8/0x20
[  936.272352] LR is at T.1273+0xf4/0x150
[  936.276125] pc : [<c001a5c8>]    lr : [<c004c9d4>]    psr: 00000013
[  936.276125] sp : c6ed1d98  ip : 00000000  fp : c6ed1dc4
[  936.287618] r10: c0455e0c  r9 : c6ec91e0  r8 : 00000001
[  936.292857] r7 : c7430000  r6 : 00000000  r5 : c062e870  r4 : c6ed0000
[  936.299398] r3 : c6ec91e0  r2 : 20000013  r1 : c6ec91e0  r0 : 46ec4000
[  936.305942] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  936.313092] Control: 0005317f  Table: 4776c000  DAC: 00000015
[  936.318906] [<c001510c>] (unwind_backtrace+0x0/0xf4) from [<c006c4a8>] 
(watchdog_timer_fn+0x124/0x160)
[  936.328273] [<c006c4a8>] (watchdog_timer_fn+0x124/0x160) from [<c0042784>] 
(__run_hrtimer+0x7c/0x1e8)
[  936.337539] [<c0042784>] (__run_hrtimer+0x7c/0x1e8) from [<c0042c9c>] 
(hrtimer_interrupt+0x110/0x310)
[  936.346806] [<c0042c9c>] (hrtimer_interrupt+0x110/0x310) from [<c001ab80>] 
(mxs_timer_interrupt+0x1c/0x2
8)
[  936.356509] [<c001ab80>] (mxs_timer_interrupt+0x1c/0x28) from [<c006cb38>] 
(handle_irq_event_percpu+0x5c
/0x26c)
[  936.366647] [<c006cb38>] (handle_irq_event_percpu+0x5c/0x26c) from [<c006cd84>] 
(handle_irq_event+0x3c/0
x5c)
[  936.376519] [<c006cd84>] (handle_irq_event+0x3c/0x5c) from [<c006f3b0>] 
(handle_level_irq+0x8c/0x118)
[  936.385781] [<c006f3b0>] (handle_level_irq+0x8c/0x118) from [<c006cacc>] 
(generic_handle_irq+0x28/0x30)
[  936.395222] [<c006cacc>] (generic_handle_irq+0x28/0x30) from [<c001009c>] 
(handle_IRQ+0x30/0x84)
[  936.404050] [<c001009c>] (handle_IRQ+0x30/0x84) from [<c00086ec>] 
(icoll_handle_irq+0x30/0x44)
[  936.412701] [<c00086ec>] (icoll_handle_irq+0x30/0x44) from [<c000ee24>] 
(__irq_svc+0x44/0x54)
[  936.421243] Exception stack(0xc6ed1d50 to 0xc6ed1d98)
[  936.426320] 1d40:                                     46ec4000 c6ec91e0 20000013 
c6ec91e0
[  936.434527] 1d60: c6ed0000 c062e870 00000000 c7430000 00000001 c6ec91e0 c0455e0c 
c6ed1dc4
[  936.442727] 1d80: 00000000 c6ed1d98 c004c9d4 c001a5c8 00000013 ffffffff
[  936.449389] [<c000ee24>] (__irq_svc+0x44/0x54) from [<c001a5c8>] 
(cpu_arm926_switch_mm+0x8/0x20)
[  936.458217] [<c001a5c8>] (cpu_arm926_switch_mm+0x8/0x20) from [<c6e303c0>] (0xc6e303c0)

The system does not completely die but it is extremely slow and almost unusable,
I checked that the mxs-saif interrupt (184) counter suddenly increased very quickly 
(from 288 to 45427 in one second, 94471 the next second, and so on).
I was wondering if this happens in other platforms using this codec or if it is an MXS 
issue only.

Best regards,
-- 
Héctor Palacios

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
  2013-03-25 10:52 BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000 Hector Palacios
@ 2013-03-25 12:10 ` Marek Vasut
  2013-03-25 15:25   ` Shawn Guo
  2013-03-25 19:31   ` Fabio Estevam
  1 sibling, 1 reply; 8+ messages in thread
From: Marek Vasut @ 2013-03-25 12:10 UTC (permalink / raw)
  To: Hector Palacios; +Cc: linux-kernel, Fabio Estevam, shawn.guo

Dear Hector Palacios,

CCing Shawn, this might also explain the touchscreen issue.

> Hello,
> 
> I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
> (kernel v3.8) with:
> 
> 	arecord -M -f cd sound.wav --duration 10
> 
> and got a scheduler message:
> 
> [  789.041847] [sched_delayed] sched: RT throttling activated
> 
> The system then becomes nearly unresponsive and after some seconds the
> kernel complains of a soft lockup.
> 
> [  904.211821] BUG: soft lockup - CPU#0 stuck for 22s! [mdev:279]
> [  904.217693] Modules linked in:
> [  904.220776] irq event stamp: 1576636
> [  904.224363] hardirqs last  enabled at (1576635): [<c000ee28>]
> __irq_svc+0x48/0x54 [  904.231903] hardirqs last disabled at (1576636):
> [<c000ee14>] __irq_svc+0x34/0x54 [  904.239422] softirqs last  enabled at
> (1575782): [<c0026138>] __do_softirq+0x13c/0x220 [  904.247388] softirqs
> last disabled at (1575771): [<c002630c>] irq_exit+0x8c/0x94 [  904.254821]
> [  904.256328] Pid: 279, comm:                 mdev
> [  904.260967] CPU: 0    Not tainted  (3.8.0-00041-gbdf34c0-dirty #49)
> [  904.267272] PC is at cpu_arm926_switch_mm+0x8/0x20
> [  904.272089] LR is at flush_old_exec+0x340/0x5c0
> [  904.276644] pc : [<c001a5c8>]    lr : [<c00da6a0>]    psr: 00000013
> [  904.276644] sp : c6f73e60  ip : 00000000  fp : c0634c10
> [  904.288138] r10: c779dd20  r9 : c77ac654  r8 : c779d5a0
> [  904.293378] r7 : c6f0ac00  r6 : c77ac400  r5 : c6f72000  r4 : c779dd20
> [  904.299918] r3 : 60000013  r2 : 00000000  r1 : c779d5a0  r0 : 46f7c000
> [  904.306461] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment
> user [  904.313613] Control: 0005317f  Table: 46f78000  DAC: 00000015
> [  904.319427] [<c001510c>] (unwind_backtrace+0x0/0xf4) from [<c006c4a8>]
> (watchdog_timer_fn+0x124/0x160)
> [  904.328795] [<c006c4a8>] (watchdog_timer_fn+0x124/0x160) from
> [<c0042784>] (__run_hrtimer+0x7c/0x1e8)
> [  904.338061] [<c0042784>] (__run_hrtimer+0x7c/0x1e8) from [<c0042c9c>]
> (hrtimer_interrupt+0x110/0x310)
> [  904.347329] [<c0042c9c>] (hrtimer_interrupt+0x110/0x310) from
> [<c001ab80>] (mxs_timer_interrupt+0x1c/0x2
> 8)
> [  904.357033] [<c001ab80>] (mxs_timer_interrupt+0x1c/0x28) from
> [<c006cb38>] (handle_irq_event_percpu+0x5c
> /0x26c)
> [  904.367169] [<c006cb38>] (handle_irq_event_percpu+0x5c/0x26c) from
> [<c006cd84>] (handle_irq_event+0x3c/0
> x5c)
> [  904.377039] [<c006cd84>] (handle_irq_event+0x3c/0x5c) from [<c006f3b0>]
> (handle_level_irq+0x8c/0x118)
> [  904.386300] [<c006f3b0>] (handle_level_irq+0x8c/0x118) from [<c006cacc>]
> (generic_handle_irq+0x28/0x30)
> [  904.395741] [<c006cacc>] (generic_handle_irq+0x28/0x30) from
> [<c001009c>] (handle_IRQ+0x30/0x84)
> [  904.404568] [<c001009c>] (handle_IRQ+0x30/0x84) from [<c00086ec>]
> (icoll_handle_irq+0x30/0x44)
> [  904.413220] [<c00086ec>] (icoll_handle_irq+0x30/0x44) from [<c000ee24>]
> (__irq_svc+0x44/0x54)
> [  904.421761] Exception stack(0xc6f73e18 to 0xc6f73e60)
> [  904.426834] 3e00:                                                      
> 46f7c000 c779d5a0
> [  904.435043] 3e20: 00000000 60000013 c779dd20 c6f72000 c77ac400 c6f0ac00
> c779d5a0 c77ac654
> [  904.443250] 3e40: c779dd20 c0634c10 00000000 c6f73e60 c00da6a0 c001a5c8
> 00000013 ffffffff
> [  904.451472] [<c000ee24>] (__irq_svc+0x44/0x54) from [<c001a5c8>]
> (cpu_arm926_switch_mm+0x8/0x20)
> [  904.460298] [<c001a5c8>] (cpu_arm926_switch_mm+0x8/0x20) from
> [<c6e740c0>] (0xc6e740c0) [  936.211821] BUG: soft lockup - CPU#0 stuck
> for 21s! [arecord:264] [  936.217952] Modules linked in:
> [  936.221038] irq event stamp: 6749868
> [  936.224624] hardirqs last  enabled at (6749867): [<c000ee28>]
> __irq_svc+0x48/0x54 [  936.232163] hardirqs last disabled at (6749868):
> [<c000ee14>] __irq_svc+0x34/0x54 [  936.239681] softirqs last  enabled at
> (6749012): [<c0026138>] __do_softirq+0x13c/0x220 [  936.247644] softirqs
> last disabled at (6748999): [<c002630c>] irq_exit+0x8c/0x94 [  936.255077]
> [  936.256586] Pid: 264, comm:              arecord
> [  936.261223] CPU: 0    Not tainted  (3.8.0-00041-gbdf34c0-dirty #49)
> [  936.267528] PC is at cpu_arm926_switch_mm+0x8/0x20
> [  936.272352] LR is at T.1273+0xf4/0x150
> [  936.276125] pc : [<c001a5c8>]    lr : [<c004c9d4>]    psr: 00000013
> [  936.276125] sp : c6ed1d98  ip : 00000000  fp : c6ed1dc4
> [  936.287618] r10: c0455e0c  r9 : c6ec91e0  r8 : 00000001
> [  936.292857] r7 : c7430000  r6 : 00000000  r5 : c062e870  r4 : c6ed0000
> [  936.299398] r3 : c6ec91e0  r2 : 20000013  r1 : c6ec91e0  r0 : 46ec4000
> [  936.305942] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment
> user [  936.313092] Control: 0005317f  Table: 4776c000  DAC: 00000015
> [  936.318906] [<c001510c>] (unwind_backtrace+0x0/0xf4) from [<c006c4a8>]
> (watchdog_timer_fn+0x124/0x160)
> [  936.328273] [<c006c4a8>] (watchdog_timer_fn+0x124/0x160) from
> [<c0042784>] (__run_hrtimer+0x7c/0x1e8)
> [  936.337539] [<c0042784>] (__run_hrtimer+0x7c/0x1e8) from [<c0042c9c>]
> (hrtimer_interrupt+0x110/0x310)
> [  936.346806] [<c0042c9c>] (hrtimer_interrupt+0x110/0x310) from
> [<c001ab80>] (mxs_timer_interrupt+0x1c/0x2
> 8)
> [  936.356509] [<c001ab80>] (mxs_timer_interrupt+0x1c/0x28) from
> [<c006cb38>] (handle_irq_event_percpu+0x5c
> /0x26c)
> [  936.366647] [<c006cb38>] (handle_irq_event_percpu+0x5c/0x26c) from
> [<c006cd84>] (handle_irq_event+0x3c/0
> x5c)
> [  936.376519] [<c006cd84>] (handle_irq_event+0x3c/0x5c) from [<c006f3b0>]
> (handle_level_irq+0x8c/0x118)
> [  936.385781] [<c006f3b0>] (handle_level_irq+0x8c/0x118) from [<c006cacc>]
> (generic_handle_irq+0x28/0x30)
> [  936.395222] [<c006cacc>] (generic_handle_irq+0x28/0x30) from
> [<c001009c>] (handle_IRQ+0x30/0x84)
> [  936.404050] [<c001009c>] (handle_IRQ+0x30/0x84) from [<c00086ec>]
> (icoll_handle_irq+0x30/0x44)
> [  936.412701] [<c00086ec>] (icoll_handle_irq+0x30/0x44) from [<c000ee24>]
> (__irq_svc+0x44/0x54)
> [  936.421243] Exception stack(0xc6ed1d50 to 0xc6ed1d98)
> [  936.426320] 1d40:                                     46ec4000 c6ec91e0
> 20000013 c6ec91e0
> [  936.434527] 1d60: c6ed0000 c062e870 00000000 c7430000 00000001 c6ec91e0
> c0455e0c c6ed1dc4
> [  936.442727] 1d80: 00000000 c6ed1d98 c004c9d4 c001a5c8 00000013 ffffffff
> [  936.449389] [<c000ee24>] (__irq_svc+0x44/0x54) from [<c001a5c8>]
> (cpu_arm926_switch_mm+0x8/0x20)
> [  936.458217] [<c001a5c8>] (cpu_arm926_switch_mm+0x8/0x20) from
> [<c6e303c0>] (0xc6e303c0)
> 
> The system does not completely die but it is extremely slow and almost
> unusable, I checked that the mxs-saif interrupt (184) counter suddenly
> increased very quickly (from 288 to 45427 in one second, 94471 the next
> second, and so on). I was wondering if this happens in other platforms
> using this codec or if it is an MXS issue only.
> 
> Best regards,

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
  2013-03-25 12:10 ` Marek Vasut
@ 2013-03-25 15:25   ` Shawn Guo
  2013-03-25 16:53     ` Hector Palacios
  0 siblings, 1 reply; 8+ messages in thread
From: Shawn Guo @ 2013-03-25 15:25 UTC (permalink / raw)
  To: Marek Vasut; +Cc: Hector Palacios, linux-kernel, Fabio Estevam

On Mon, Mar 25, 2013 at 01:10:54PM +0100, Marek Vasut wrote:
> Dear Hector Palacios,
> 
> CCing Shawn, this might also explain the touchscreen issue.
> 
> > Hello,
> > 
> > I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
> > (kernel v3.8) with:
> > 
> > 	arecord -M -f cd sound.wav --duration 10
> > 
> > and got a scheduler message:
> > 
> > [  789.041847] [sched_delayed] sched: RT throttling activated

Hmm, I'm not sure if v3.8 is the first place where audio recording gets
broken.  Does v3.7 even work for you?

Shawn


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
  2013-03-25 15:25   ` Shawn Guo
@ 2013-03-25 16:53     ` Hector Palacios
  0 siblings, 0 replies; 8+ messages in thread
From: Hector Palacios @ 2013-03-25 16:53 UTC (permalink / raw)
  To: Shawn Guo; +Cc: Marek Vasut, linux-kernel, Fabio Estevam

On 03/25/2013 04:25 PM, Shawn Guo wrote:
> On Mon, Mar 25, 2013 at 01:10:54PM +0100, Marek Vasut wrote:
>> Dear Hector Palacios,
>>
>> CCing Shawn, this might also explain the touchscreen issue.
>>
>>> Hello,
>>>
>>> I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
>>> (kernel v3.8) with:
>>>
>>> 	arecord -M -f cd sound.wav --duration 10
>>>
>>> and got a scheduler message:
>>>
>>> [  789.041847] [sched_delayed] sched: RT throttling activated
>
> Hmm, I'm not sure if v3.8 is the first place where audio recording gets
> broken.  Does v3.7 even work for you?

No it doesn't. Same issue. Apparently a little different order (first the 'BUG soft 
lockup', then the 'sched: RT throttling activated')

~# arecord -M -f cd sound.wav --duration 10
Recording WAVE 'sound.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
overrun!!! (at least 0.063 ms long)
[  188.070000] BUG: soft lockup - CPU#0 stuck for 23s! [arecord:230]
[  188.070000] Modules linked in:
[  188.070000] irq event stamp: 2318718
[  188.070000] hardirqs last  enabled at (2318717): [<c000ee68>] __irq_svc+0x48/0x54
[  188.070000] hardirqs last disabled at (2318718): [<c000ee54>] __irq_svc+0x34/0x54
[  188.070000] softirqs last  enabled at (2317860): [<c0025e98>] __do_softirq+0x13c/0x220
[  188.070000] softirqs last disabled at (2317847): [<c002606c>] irq_exit+0x8c/0x94
[  188.070000]
[  188.070000] Pid: 230, comm:              arecord
[  188.070000] CPU: 0    Not tainted  (3.7.0-00027-g46709ea-dirty #8)
[  188.070000] PC is at __flush_whole_cache+0x4/0x18
[  188.070000] LR is at unmap_kernel_range+0x10/0x2c
[  188.070000] pc : [<c001a048>]    lr : [<c00c30d4>]    psr: 00000013
[  188.070000] sp : cf7b3e68  ip : 00000000  fp : 00000000
[  188.070000] r10: 00040000  r9 : cf6d4e00  r8 : c061a7dc
[  188.070000] r7 : d0804000  r6 : d0940000  r5 : d0944000  r4 : d0940000
[  188.070000] r3 : 20000008  r2 : 00000004  r1 : 00004000  r0 : d0940000
[  188.070000] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  188.070000] Control: 0005317f  Table: 4ec2c000  DAC: 00000015
[  188.070000] [<c00151ac>] (unwind_backtrace+0x0/0xf4) from [<c006bd84>] 
(watchdog_timer_fn+0x128/0x168)
[  188.070000] [<c006bd84>] (watchdog_timer_fn+0x128/0x168) from [<c00422cc>] 
(__run_hrtimer+0x7c/0x1e8)
[  188.070000] [<c00422cc>] (__run_hrtimer+0x7c/0x1e8) from [<c00427e4>] 
(hrtimer_interrupt+0x110/0x310)
[  188.070000] [<c00427e4>] (hrtimer_interrupt+0x110/0x310) from [<c001a780>] 
(mxs_timer_interrupt+0x1c/0x28)
[  188.070000] [<c001a780>] (mxs_timer_interrupt+0x1c/0x28) from [<c006c404>] 
(handle_irq_event_percpu+0x5c/0x26c)
[  188.070000] [<c006c404>] (handle_irq_event_percpu+0x5c/0x26c) from [<c006c650>] 
(handle_irq_event+0x3c/0x5c)
[  188.070000] [<c006c650>] (handle_irq_event+0x3c/0x5c) from [<c006ec14>] 
(handle_level_irq+0x8c/0x118)
[  188.070000] [<c006ec14>] (handle_level_irq+0x8c/0x118) from [<c006c398>] 
(generic_handle_irq+0x28/0x30)
[  188.070000] [<c006c398>] (generic_handle_irq+0x28/0x30) from [<c00100fc>] 
(handle_IRQ+0x30/0x84)
[  188.070000] [<c00100fc>] (handle_IRQ+0x30/0x84) from [<c00086ec>] 
(icoll_handle_irq+0x30/0x44)
[  188.070000] [<c00086ec>] (icoll_handle_irq+0x30/0x44) from [<c000ee64>] 
(__irq_svc+0x44/0x54)
[  188.070000] Exception stack(0xcf7b3e20 to 0xcf7b3e68)
[  188.070000] 3e20: d0940000 00004000 00000004 20000008 d0940000 d0944000 d0940000 
d0804000
[  188.070000] 3e40: c061a7dc cf6d4e00 00040000 00000000 00000000 cf7b3e68 c00c30d4 
c001a048
[  188.070000] 3e60: 00000013 ffffffff
[  188.070000] [<c000ee64>] (__irq_svc+0x44/0x54) from [<c001a048>] 
(__flush_whole_cache+0x4/0x18)
[  188.070000] [<c001a048>] (__flush_whole_cache+0x4/0x18) from [<cf76f900>] (0xcf76f900)
[  215.620000] [sched_delayed] sched: RT throttling activated

-- 
Héctor Palacios

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
  2013-03-25 10:52 BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000 Hector Palacios
@ 2013-03-25 19:31   ` Fabio Estevam
  2013-03-25 19:31   ` Fabio Estevam
  1 sibling, 0 replies; 8+ messages in thread
From: Fabio Estevam @ 2013-03-25 19:31 UTC (permalink / raw)
  To: Hector Palacios
  Cc: linux-kernel, Marek Vasut, alsa-devel, Shawn Guo, Dong Aisheng,
	Mark Brown

[-- Attachment #1: Type: text/plain, Size: 802 bytes --]

Hi Hector,

On Mon, Mar 25, 2013 at 7:52 AM, Hector Palacios
<hector.palacios@digi.com> wrote:
> Hello,
>
> I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
> (kernel v3.8) with:
>
>         arecord -M -f cd sound.wav --duration 10
>
> and got a scheduler message:
>
> [  789.041847] [sched_delayed] sched: RT throttling activated

I have just tested arecord on 3.8,4 and I haven't seen the 'soft lockup' bug.

However, I see that mxs saif gets busy after the record and any
attempt to do an 'aplay' after the first arecord fails.

With the attached patch applied I am able to do arecord/aplay sequence
several times.

I don't have a cable handy here to actually test if the sound is
recorded properly or not.

Could you please test it against 3.8.4?

Thanks,

Fabio Estevam

[-- Attachment #2: 0001-Do-not-check-busy.patch --]
[-- Type: application/octet-stream, Size: 2747 bytes --]

From dde98beec0ffdd84d497b63923cf26e8c9b0a5c7 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <fabio.estevam@freescale.com>
Date: Mon, 25 Mar 2013 16:23:04 -0300
Subject: [PATCH] ASoC: mxs-saif: Do not check for BM_SAIF_STAT_BUSY

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 sound/soc/mxs/mxs-saif.c |   30 ++----------------------------
 1 file changed, 2 insertions(+), 28 deletions(-)

diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
index 365d9d2..1986deb 100644
--- a/sound/soc/mxs/mxs-saif.c
+++ b/sound/soc/mxs/mxs-saif.c
@@ -207,17 +207,10 @@ static int mxs_saif_set_clk(struct mxs_saif *saif,
 int mxs_saif_put_mclk(unsigned int saif_id)
 {
 	struct mxs_saif *saif = mxs_saif[saif_id];
-	u32 stat;
 
 	if (!saif)
 		return -EINVAL;
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(saif->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	clk_disable_unprepare(saif->clk);
 
 	/* disable MCLK output */
@@ -241,7 +234,6 @@ int mxs_saif_get_mclk(unsigned int saif_id, unsigned int mclk,
 					unsigned int rate)
 {
 	struct mxs_saif *saif = mxs_saif[saif_id];
-	u32 stat;
 	int ret;
 	struct mxs_saif *master_saif;
 
@@ -262,12 +254,6 @@ int mxs_saif_get_mclk(unsigned int saif_id, unsigned int mclk,
 		return -EINVAL;
 	}
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(saif->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	saif->mclk_in_use = 1;
 	ret = mxs_saif_set_clk(saif, mclk, rate);
 	if (ret)
@@ -291,16 +277,10 @@ EXPORT_SYMBOL_GPL(mxs_saif_get_mclk);
  */
 static int mxs_saif_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
 {
-	u32 scr, stat;
+	u32 scr;
 	u32 scr0;
 	struct mxs_saif *saif = snd_soc_dai_get_drvdata(cpu_dai);
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(cpu_dai->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	scr0 = __raw_readl(saif->base + SAIF_CTRL);
 	scr0 = scr0 & ~BM_SAIF_CTRL_BITCLK_EDGE & ~BM_SAIF_CTRL_LRCLK_POLARITY \
 		& ~BM_SAIF_CTRL_JUSTIFY & ~BM_SAIF_CTRL_DELAY;
@@ -397,7 +377,7 @@ static int mxs_saif_hw_params(struct snd_pcm_substream *substream,
 {
 	struct mxs_saif *saif = snd_soc_dai_get_drvdata(cpu_dai);
 	struct mxs_saif *master_saif;
-	u32 scr, stat;
+	u32 scr;
 	int ret;
 
 	master_saif = mxs_saif_get_master(saif);
@@ -410,12 +390,6 @@ static int mxs_saif_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(cpu_dai->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	/*
 	 * Set saif clk based on sample rate.
 	 * If mclk is used, we also set mclk, if not, saif->mclk is
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
@ 2013-03-25 19:31   ` Fabio Estevam
  0 siblings, 0 replies; 8+ messages in thread
From: Fabio Estevam @ 2013-03-25 19:31 UTC (permalink / raw)
  To: Hector Palacios
  Cc: Marek Vasut, alsa-devel, Mark Brown, linux-kernel, Shawn Guo,
	Dong Aisheng

[-- Attachment #1: Type: text/plain, Size: 802 bytes --]

Hi Hector,

On Mon, Mar 25, 2013 at 7:52 AM, Hector Palacios
<hector.palacios@digi.com> wrote:
> Hello,
>
> I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
> (kernel v3.8) with:
>
>         arecord -M -f cd sound.wav --duration 10
>
> and got a scheduler message:
>
> [  789.041847] [sched_delayed] sched: RT throttling activated

I have just tested arecord on 3.8,4 and I haven't seen the 'soft lockup' bug.

However, I see that mxs saif gets busy after the record and any
attempt to do an 'aplay' after the first arecord fails.

With the attached patch applied I am able to do arecord/aplay sequence
several times.

I don't have a cable handy here to actually test if the sound is
recorded properly or not.

Could you please test it against 3.8.4?

Thanks,

Fabio Estevam

[-- Attachment #2: 0001-Do-not-check-busy.patch --]
[-- Type: application/octet-stream, Size: 2747 bytes --]

From dde98beec0ffdd84d497b63923cf26e8c9b0a5c7 Mon Sep 17 00:00:00 2001
From: Fabio Estevam <fabio.estevam@freescale.com>
Date: Mon, 25 Mar 2013 16:23:04 -0300
Subject: [PATCH] ASoC: mxs-saif: Do not check for BM_SAIF_STAT_BUSY

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
 sound/soc/mxs/mxs-saif.c |   30 ++----------------------------
 1 file changed, 2 insertions(+), 28 deletions(-)

diff --git a/sound/soc/mxs/mxs-saif.c b/sound/soc/mxs/mxs-saif.c
index 365d9d2..1986deb 100644
--- a/sound/soc/mxs/mxs-saif.c
+++ b/sound/soc/mxs/mxs-saif.c
@@ -207,17 +207,10 @@ static int mxs_saif_set_clk(struct mxs_saif *saif,
 int mxs_saif_put_mclk(unsigned int saif_id)
 {
 	struct mxs_saif *saif = mxs_saif[saif_id];
-	u32 stat;
 
 	if (!saif)
 		return -EINVAL;
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(saif->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	clk_disable_unprepare(saif->clk);
 
 	/* disable MCLK output */
@@ -241,7 +234,6 @@ int mxs_saif_get_mclk(unsigned int saif_id, unsigned int mclk,
 					unsigned int rate)
 {
 	struct mxs_saif *saif = mxs_saif[saif_id];
-	u32 stat;
 	int ret;
 	struct mxs_saif *master_saif;
 
@@ -262,12 +254,6 @@ int mxs_saif_get_mclk(unsigned int saif_id, unsigned int mclk,
 		return -EINVAL;
 	}
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(saif->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	saif->mclk_in_use = 1;
 	ret = mxs_saif_set_clk(saif, mclk, rate);
 	if (ret)
@@ -291,16 +277,10 @@ EXPORT_SYMBOL_GPL(mxs_saif_get_mclk);
  */
 static int mxs_saif_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
 {
-	u32 scr, stat;
+	u32 scr;
 	u32 scr0;
 	struct mxs_saif *saif = snd_soc_dai_get_drvdata(cpu_dai);
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(cpu_dai->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	scr0 = __raw_readl(saif->base + SAIF_CTRL);
 	scr0 = scr0 & ~BM_SAIF_CTRL_BITCLK_EDGE & ~BM_SAIF_CTRL_LRCLK_POLARITY \
 		& ~BM_SAIF_CTRL_JUSTIFY & ~BM_SAIF_CTRL_DELAY;
@@ -397,7 +377,7 @@ static int mxs_saif_hw_params(struct snd_pcm_substream *substream,
 {
 	struct mxs_saif *saif = snd_soc_dai_get_drvdata(cpu_dai);
 	struct mxs_saif *master_saif;
-	u32 scr, stat;
+	u32 scr;
 	int ret;
 
 	master_saif = mxs_saif_get_master(saif);
@@ -410,12 +390,6 @@ static int mxs_saif_hw_params(struct snd_pcm_substream *substream,
 		return -EINVAL;
 	}
 
-	stat = __raw_readl(saif->base + SAIF_STAT);
-	if (stat & BM_SAIF_STAT_BUSY) {
-		dev_err(cpu_dai->dev, "error: busy\n");
-		return -EBUSY;
-	}
-
 	/*
 	 * Set saif clk based on sample rate.
 	 * If mclk is used, we also set mclk, if not, saif->mclk is
-- 
1.7.9.5


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
  2013-03-25 19:31   ` Fabio Estevam
  (?)
@ 2013-03-25 23:15   ` Fabio Estevam
  2013-03-26 11:43     ` Hector Palacios
  -1 siblings, 1 reply; 8+ messages in thread
From: Fabio Estevam @ 2013-03-25 23:15 UTC (permalink / raw)
  To: Hector Palacios
  Cc: linux-kernel, Marek Vasut, alsa-devel, Shawn Guo, Dong Aisheng,
	Mark Brown

Hector,

On Mon, Mar 25, 2013 at 4:31 PM, Fabio Estevam <festevam@gmail.com> wrote:
> Hi Hector,
>
> On Mon, Mar 25, 2013 at 7:52 AM, Hector Palacios
> <hector.palacios@digi.com> wrote:
>> Hello,
>>
>> I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
>> (kernel v3.8) with:
>>
>>         arecord -M -f cd sound.wav --duration 10
>>
>> and got a scheduler message:
>>
>> [  789.041847] [sched_delayed] sched: RT throttling activated
>
> I have just tested arecord on 3.8,4 and I haven't seen the 'soft lockup' bug.
>
> However, I see that mxs saif gets busy after the record and any
> attempt to do an 'aplay' after the first arecord fails.
>
> With the attached patch applied I am able to do arecord/aplay sequence
> several times.
>
> I don't have a cable handy here to actually test if the sound is
> recorded properly or not.
>
> Could you please test it against 3.8.4?

I managed to test arecord and it works with the following as follows:

1. Run alsamixer and select LINE_IN in the Capture element

2. Record with the following command line:

arecord -D hw:0,1 -d 10 -f S16_LE -r 44100 -c  test.wav

3. Then listen test.wav on your PC or in your board itself.

The sequence above works fine.

Anyway, I will submit the patch I sent earlier as it prevents the
system to get unresponsive.

Regards,

Fabio Estevam

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000
  2013-03-25 23:15   ` Fabio Estevam
@ 2013-03-26 11:43     ` Hector Palacios
  0 siblings, 0 replies; 8+ messages in thread
From: Hector Palacios @ 2013-03-26 11:43 UTC (permalink / raw)
  To: Fabio Estevam
  Cc: linux-kernel, Marek Vasut, alsa-devel, Shawn Guo, Dong Aisheng,
	Mark Brown

Hi Fabio,

On 03/26/2013 12:15 AM, Fabio Estevam wrote:
> Hector,
>
> On Mon, Mar 25, 2013 at 4:31 PM, Fabio Estevam <festevam@gmail.com> wrote:
>> Hi Hector,
>>
>> On Mon, Mar 25, 2013 at 7:52 AM, Hector Palacios
>> <hector.palacios@digi.com> wrote:
>>> Hello,
>>>
>>> I just tried recording audio on Freescale's MX28EVK that uses ASoC sgtl5000
>>> (kernel v3.8) with:
>>>
>>>          arecord -M -f cd sound.wav --duration 10
>>>
>>> and got a scheduler message:
>>>
>>> [  789.041847] [sched_delayed] sched: RT throttling activated
>>
>> I have just tested arecord on 3.8,4 and I haven't seen the 'soft lockup' bug.
>>
>> However, I see that mxs saif gets busy after the record and any
>> attempt to do an 'aplay' after the first arecord fails.
>>
>> With the attached patch applied I am able to do arecord/aplay sequence
>> several times.
>>
>> I don't have a cable handy here to actually test if the sound is
>> recorded properly or not.
>>
>> Could you please test it against 3.8.4?
>
> I managed to test arecord and it works with the following as follows:
>
> 1. Run alsamixer and select LINE_IN in the Capture element
>
> 2. Record with the following command line:
>
> arecord -D hw:0,1 -d 10 -f S16_LE -r 44100 -c  test.wav

This command works on v3.8 even without your patch. I can arecord/aplay several times 
without problems.

With my original command 'arecord [-M] -f cd sound.wav --duration 10', the soft lockup 
appears both in v3.8 and v3.8.4 with and without your patch. So it looks like the 
patch does not help here.

Regards,
-- 
Héctor Palacios

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-03-26 11:50 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-03-25 10:52 BUG: soft lockup when recording audio on MX28EVK with ASoC sgtl5000 Hector Palacios
2013-03-25 12:10 ` Marek Vasut
2013-03-25 15:25   ` Shawn Guo
2013-03-25 16:53     ` Hector Palacios
2013-03-25 19:31 ` Fabio Estevam
2013-03-25 19:31   ` Fabio Estevam
2013-03-25 23:15   ` Fabio Estevam
2013-03-26 11:43     ` Hector Palacios

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.