* [Bug Report] SOUND: Kernel panic occurs when playback
@ 2015-05-13 8:31 Cao Minh Hiep
2015-05-13 8:44 ` Kuninori Morimoto
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Cao Minh Hiep @ 2015-05-13 8:31 UTC (permalink / raw)
To: linux-sh
Re: [Bug Report] PM: Warning messages -> [Bug Report] SOUND: Kernel
panic occurs when playback
On 2015年05月13日 17:27, Cao Minh Hiep wrote:
> Hi Morimoto-san
>
> We are testing Linux upstream version-4.1-rc2 on Koelsch and Lager.
> We found a bug(kernel panic) on SOUND driver when Playback a sound file.
>
> The kernel panic logs is showed as below:
> "root@linaro-nano:~# aplay audio/Track\ 10.wav
> Playing WAVE 'audio/Track 10.wav' : Signed 16 bit Little Endian, Rate
> 44100 Hz, Stereo
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000048
> pgd = edfac000
> [00000048] *pgdn0f0831, *pte\0000000, *ppte\0000000
> Internal error: Oops: 17 [#1] SMP ARM
> CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4
> Hardware name: Generic R8A7790 (Flattened Device Tree)
> ..."
>
> Testing method:
> # amixer set "LINEOUT Mixer DACL" on
> # amixer set "DVC Out" 80%
> # amixer set "DVC In" 80%
> # aplay ./audio.wav
>
> We'd like to report this problem first.
> There are not this problem at version v4.0 stable.
> so we are looking for the error patch that added between v4.0 and
> v4.1-rc2.
>
> Best Regards,
> Jinso/Cao Minh Hiep.
>
> ===========================> HERE IS LOG OF SOUND TEST:
>
> root@linaro-nano:~#
> root@linaro-nano:~#
> root@linaro-nano:~# amixer set "LINEOUT Mixer DACL" on
> Simple mixer control 'LINEOUT Mixer DACL',0
> Capabilities: pswitch pswitch-joined
> Playback channels: Mono
> Mono: Playback [on]
> root@linaro-nano:~# amixer set "DVC Out" 80%
> Simple mixer control 'DVC Out',0
> Capabilities: pvolume
> Playback channels: Front Left - Front Right
> Limits: Playback 0 - 8388607
> Mono:
> Front Left: Playback 6710886 [80%]
> Front Right: Playback 6710886 [80%]
> root@linaro-nano:~# amixer set "DVC In" 80%
> Simple mixer control 'DVC In',0
> Capabilities: cvolume
> Capture channels: Front Left - Front Right
> Limits: Capture 0 - 8388607
> Front Left: Capture 6710886 [80%]
> Front Right: Capture 6710886 [80%]
> root@linaro-nano:~#
> root@linaro-nano:~#
> root@linaro-nano:~#
> root@linaro-nano:~#
> root@linaro-nano:~# aplay
> aplay aplaymidi
> root@linaro-nano:~# aplay audio/Track\ 10.wav
> Playing WAVE 'audio/Track 10.wav' : Signed 16 bit Little Endian, Rate
> 44100 Hz, Stereo
> root@linaro-nano:~#
> root@linaro-nano:~# aplay audio/Track\ 10.wav
> Playing WAVE 'audio/Track 10.wav' : Signed 16 bit Little Endian, Rate
> 44100 Hz, Stereo
> Unable to handle kernel NULL pointer dereference at virtual address
> 00000048
> pgd = edfac000
> [00000048] *pgdn0f0831, *pte\0000000, *ppte\0000000
> Internal error: Oops: 17 [#1] SMP ARM
> CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4
> Hardware name: Generic R8A7790 (Flattened Device Tree)
> task: eeac9040 ti: eebe8000 task.ti: eebe8000
> PC is at rsnd_get_adinr+0x28/0x60
> LR is at rsnd_src_ssiu_start+0xdc/0x19c
> pc : [<c0409790>] lr : [<c040c068>] psr: a0000193
> sp : eebe9e58 ip : eebe9e68 fp : eebe9e64
> r10: c06ed9d0 r9 : ee919d10 r8 : 00000001
> r7 : 00000001 r6 : ee1cb090 r5 : 00000000 r4 : edcaa418
> r3 : 00000000 r2 : eea8ce00 r1 : 80000193 r0 : edcaa418
> Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user
> Control: 10c5307d Table: 6dfac06a DAC: 00000015
> Process aplay (pid: 2009, stack limit = 0xeebe8210)
> Stack: (0xeebe9e58 to 0xeebea000)
> 9e40: eebe9e94 eebe9e68
> 9e60: c040c068 c0409774 00000000 eebe9e78 edcaa418 ee919d20 edcaa418
> ee1cb090
> 9e80: 15014330 c06e5d34 eebe9eac eebe9e98 c040d510 c040bf98 eea8ce00
> edcaa410
> 9ea0: eebe9edc eebe9eb0 c040d654 c040d4f8 c040d55c eeb27580 00000156
> 00000000
> 9ec0: 00000000 ee91c880 00000008 c06ed9d0 eebe9f14 eebe9ee0 c005e9f0
> c040d568
> 9ee0: ee427d48 ee427d98 00000000 ee91c880 ee91c8e0 c06b2be4 ee806000
> 00000001
> 9f00: 00000008 00000000 eebe9f34 eebe9f18 c005eb34 c005e9c4 ee91c880
> c06cfdc0
> 9f20: c06b2be4 ee806000 eebe9f4c eebe9f38 c0061a08 c005eaf4 00000156
> 00000000
> 9f40: eebe9f64 eebe9f50 c005e318 c0061968 00000000 00000000 eebe9f8c
> eebe9f68
> 9f60: c005e3b8 c005e2fc f0002000 c06b8784 eebe9fb0 10c5307d 10c5307d
> 00000008
> 9f80: eebe9fac eebe9f90 c000a3b0 c005e334 b6f55520 60000030 ffffffff
> 10c5307d
> 9fa0: 00000000 eebe9fb0 c0013f48 c000a378 00009235 b6f62eb2 00000069
> 00000069
> 9fc0: b6f62ea4 00009233 00000000 a49b9752 b6f5bed0 00000008 00000000
> b6f63d90
> 9fe0: 00000002 be9ac470 b6f4fc25 b6f55520 60000030 ffffffff ee3fc700
> 00000000
> Backtrace:
> [<c0409768>] (rsnd_get_adinr) from [<c040c068>]
> (rsnd_src_ssiu_start+0xdc/0x19c)
> [<c040bf8c>] (rsnd_src_ssiu_start) from [<c040d510>]
> (rsnd_ssi_start+0x24/0x40)
> r9:c06e5d34 r8:15014330 r7:ee1cb090 r6:edcaa418 r5:ee919d20 r4:edcaa418
> [<c040d4ec>] (rsnd_ssi_start) from [<c040d654>]
> (rsnd_ssi_interrupt+0xf8/0x12c)
> r5:edcaa410 r4:eea8ce00
> [<c040d55c>] (rsnd_ssi_interrupt) from [<c005e9f0>]
> (handle_irq_event_percpu+0x38/0x130)
> r10:c06ed9d0 r9:00000008 r8:ee91c880 r7:00000000 r6:00000000 r5:00000156
> r4:eeb27580 r3:c040d55c
> [<c005e9b8>] (handle_irq_event_percpu) from [<c005eb34>]
> (handle_irq_event+0x4c/0x6c)
> r10:00000000 r9:00000008 r8:00000001 r7:ee806000 r6:c06b2be4 r5:ee91c8e0
> r4:ee91c880
> [<c005eae8>] (handle_irq_event) from [<c0061a08>]
> (handle_fasteoi_irq+0xac/0x134)
> r7:ee806000 r6:c06b2be4 r5:c06cfdc0 r4:ee91c880
> [<c006195c>] (handle_fasteoi_irq) from [<c005e318>]
> (generic_handle_irq+0x28/0x38)
> r5:00000000 r4:00000156
> [<c005e2f0>] (generic_handle_irq) from [<c005e3b8>]
> (__handle_domain_irq+0x90/0xb8)
> r5:00000000 r4:00000000
> [<c005e328>] (__handle_domain_irq) from [<c000a3b0>]
> (gic_handle_irq+0x44/0x64)
> r9:00000008 r8:10c5307d r7:10c5307d r6:eebe9fb0 r5:c06b8784 r4:f0002000
> [<c000a36c>] (gic_handle_irq) from [<c0013f48>] (__irq_usr+0x48/0x60)
> Exception stack(0xeebe9fb0 to 0xeebe9ff8)
> 9fa0: 00009235 b6f62eb2 00000069
> 00000069
> 9fc0: b6f62ea4 00009233 00000000 a49b9752 b6f5bed0 00000008 00000000
> b6f63d90
> 9fe0: 00000002 be9ac470 b6f4fc25 b6f55520 60000030 ffffffff
> r7:10c5307d r6:ffffffff r5:60000030 r4:b6f55520
> Code: e5922080 e3530000 159330a4 e5922000 (e5930048)
> ---[ end trace 267c4161094ae10b ]---
> Kernel panic - not syncing: Fatal exception in interrupt
> CPU2: stopping
> CPU: 2 PID: 0 Comm: swapper/2 Tainted: G D 4.1.0-rc2-dirty #4
> Hardware name: Generic R8A7790 (Flattened Device Tree)
> Backtrace:
> [<c0012f50>] (dump_backtrace) from [<c00130f8>] (show_stack+0x18/0x1c)
> r7:ee86dfac r6:00000000 r5:00000002 r4:00000000
> [<c00130e0>] (show_stack) from [<c04ff59c>] (dump_stack+0x78/0x94)
> [<c04ff524>] (dump_stack) from [<c00158f0>] (handle_IPI+0xd0/0x168)
> r5:00000002 r4:c06f03ec
> [<c0015820>] (handle_IPI) from [<c000a3c8>] (gic_handle_irq+0x5c/0x64)
> r7:ee86dfac r6:ee86df78 r5:c06b8784 r4:f0002000
> [<c000a36c>] (gic_handle_irq) from [<c0013c80>] (__irq_svc+0x40/0x54)
> Exception stack(0xee86df78 to 0xee86dfc0)
> df60: 00000000 00000000
> df80: 00006dae c001f880 c06b1304 c06b84fc ee86c000 c06f0418 4000406a
> 413fc0f2
> dfa0: 00000000 ee86dfcc ee86dfd0 ee86dfc0 c001068c c0010690 60000013
> ffffffff
> r7:ee86dfac r6:ffffffff r5:60000013 r4:c0010690
> [<c001065c>] (arch_cpu_idle) from [<c00552c8>]
> (cpu_startup_entry+0x188/0x1bc)
> [<c0055140>] (cpu_startup_entry) from [<c00155f4>]
> (secondary_start_kernel+0x108/0x124)
> [<c00154ec>] (secondary_start_kernel) from [<4000a46c>] (0x4000a46c)
> r5:00000015 r4:6e85406a
> CPU1: stopping
> CPU: 1 PID: 0 Comm: swapper/1 Tainted: G D 4.1.0-rc2-dirty #4
> Hardware name: Generic R8A7790 (Flattened Device Tree)
> Backtrace:
> [<c0012f50>] (dump_backtrace) from [<c00130f8>] (show_stack+0x18/0x1c)
> r7:ee86bfac r6:00000000 r5:00000001 r4:00000000
> [<c00130e0>] (show_stack) from [<c04ff59c>] (dump_stack+0x78/0x94)
> [<c04ff524>] (dump_stack) from [<c00158f0>] (handle_IPI+0xd0/0x168)
> r5:00000001 r4:c06f03ec
> [<c0015820>] (handle_IPI) from [<c000a3c8>] (gic_handle_irq+0x5c/0x64)
> r7:ee86bfac r6:ee86bf78 r5:c06b8784 r4:f0002000
> [<c000a36c>] (gic_handle_irq) from [<c0013c80>] (__irq_svc+0x40/0x54)
> Exception stack(0xee86bf78 to 0xee86bfc0)
> bf60: 00000000 00000000
> bf80: 000087f4 c001f880 c06b1304 c06b84fc ee86a000 c06f0418 4000406a
> 413fc0f2
> bfa0: 00000000 ee86bfcc ee86bfd0 ee86bfc0 c001068c c0010690 60000013
> ffffffff
> r7:ee86bfac r6:ffffffff r5:60000013 r4:c0010690
> [<c001065c>] (arch_cpu_idle) from [<c00552c8>]
> (cpu_startup_entry+0x188/0x1bc)
> [<c0055140>] (cpu_startup_entry) from [<c00155f4>]
> (secondary_start_kernel+0x108/0x124)
> [<c00154ec>] (secondary_start_kernel) from [<4000a46c>] (0x4000a46c)
> r5:00000015 r4:6e85406a
> CPU3: stopping
> CPU: 3 PID: 0 Comm: swapper/3 Tainted: G D 4.1.0-rc2-dirty #4
> Hardware name: Generic R8A7790 (Flattened Device Tree)
> Backtrace:
> [<c0012f50>] (dump_backtrace) from [<c00130f8>] (show_stack+0x18/0x1c)
> r7:ee86ffac r6:00000000 r5:00000003 r4:00000000
> [<c00130e0>] (show_stack) from [<c04ff59c>] (dump_stack+0x78/0x94)
> [<c04ff524>] (dump_stack) from [<c00158f0>] (handle_IPI+0xd0/0x168)
> r5:00000003 r4:c06f03ec
> [<c0015820>] (handle_IPI) from [<c000a3c8>] (gic_handle_irq+0x5c/0x64)
> r7:ee86ffac r6:ee86ff78 r5:c06b8784 r4:f0002000
> [<c000a36c>] (gic_handle_irq) from [<c0013c80>] (__irq_svc+0x40/0x54)
> Exception stack(0xee86ff78 to 0xee86ffc0)
> ff60: 00000000 00000000
> ff80: 0000509c c001f880 c06b1304 c06b84fc ee86e000 c06f0418 4000406a
> 413fc0f2
> ffa0: 00000000 ee86ffcc ee86ffd0 ee86ffc0 c001068c c0010690 600c0013
> ffffffff
> r7:ee86ffac r6:ffffffff r5:600c0013 r4:c0010690
> [<c001065c>] (arch_cpu_idle) from [<c00552c8>]
> (cpu_startup_entry+0x188/0x1bc)
> [<c0055140>] (cpu_startup_entry) from [<c00155f4>]
> (secondary_start_kernel+0x108/0x124)
> [<c00154ec>] (secondary_start_kernel) from [<4000a46c>] (0x4000a46c)
> r5:00000015 r4:6e85406a
> drm_kms_helper: panic occurred, switching back to text console
> ---[ end Kernel panic - not syncing: Fatal exception in interrupt
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sh" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bug Report] SOUND: Kernel panic occurs when playback
2015-05-13 8:31 [Bug Report] SOUND: Kernel panic occurs when playback Cao Minh Hiep
@ 2015-05-13 8:44 ` Kuninori Morimoto
2015-05-15 8:32 ` Kuninori Morimoto
2015-05-20 8:28 ` Laurent Pinchart
2 siblings, 0 replies; 4+ messages in thread
From: Kuninori Morimoto @ 2015-05-13 8:44 UTC (permalink / raw)
To: linux-sh
Hi Hiep-san
> > We are testing Linux upstream version-4.1-rc2 on Koelsch and Lager.
> > We found a bug(kernel panic) on SOUND driver when Playback a sound file.
> >
> > The kernel panic logs is showed as below:
> > "root@linaro-nano:~# aplay audio/Track\ 10.wav
> > Playing WAVE 'audio/Track 10.wav' : Signed 16 bit Little Endian,
> > Rate 44100 Hz, Stereo
> > Unable to handle kernel NULL pointer dereference at virtual address
> > 00000048
> > pgd = edfac000
> > [00000048] *pgdn0f0831, *pte\0000000, *ppte\0000000
> > Internal error: Oops: 17 [#1] SMP ARM
> > CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4
> > Hardware name: Generic R8A7790 (Flattened Device Tree)
> > ..."
Thank you for your report.
I will check it.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bug Report] SOUND: Kernel panic occurs when playback
2015-05-13 8:31 [Bug Report] SOUND: Kernel panic occurs when playback Cao Minh Hiep
2015-05-13 8:44 ` Kuninori Morimoto
@ 2015-05-15 8:32 ` Kuninori Morimoto
2015-05-20 8:28 ` Laurent Pinchart
2 siblings, 0 replies; 4+ messages in thread
From: Kuninori Morimoto @ 2015-05-15 8:32 UTC (permalink / raw)
To: linux-sh
Hi Laurent
Can I ask you about DMAEngine and spin_lock ?
> > > We are testing Linux upstream version-4.1-rc2 on Koelsch and Lager.
> > > We found a bug(kernel panic) on SOUND driver when Playback a sound file.
> > >
> > > The kernel panic logs is showed as below:
> > > "root@linaro-nano:~# aplay audio/Track\ 10.wav
> > > Playing WAVE 'audio/Track 10.wav' : Signed 16 bit Little Endian,
> > > Rate 44100 Hz, Stereo
> > > Unable to handle kernel NULL pointer dereference at virtual address
> > > 00000048
> > > pgd = edfac000
> > > [00000048] *pgdn0f0831, *pte\0000000, *ppte\0000000
> > > Internal error: Oops: 17 [#1] SMP ARM
> > > CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4
> > > Hardware name: Generic R8A7790 (Flattened Device Tree)
> > > ..."
In my debug, this issue happens under DMAEngine,
and it depends on spin_lock (I think we talked this topic before...)
but I don't know which one is wrong, DMAEngine or Sound ?
Now, sound driver is calling DMAEngine API under spin_lock_irqsave
spin_lock_irqsave(xxxx);
...
dmaengine_prep_dma_cyclic();
...
spin_unlock_irqrestore();
dmaengine_prep_dma_cyclic() does many things,
and it is using spin_unlock_irq().
It re-enabled sound interrupt before calling spin_unlock_irqrestore()
My question is which one is correct solution ??
- sound driver shouldn't call DMAEngine API under spin_lock_irqsave() ?
- DMAEngine driver should use spin_lock_irqsave() instead of spin_lock_irq() ?
Best regards
---
Kuninori Morimoto
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bug Report] SOUND: Kernel panic occurs when playback
2015-05-13 8:31 [Bug Report] SOUND: Kernel panic occurs when playback Cao Minh Hiep
2015-05-13 8:44 ` Kuninori Morimoto
2015-05-15 8:32 ` Kuninori Morimoto
@ 2015-05-20 8:28 ` Laurent Pinchart
2 siblings, 0 replies; 4+ messages in thread
From: Laurent Pinchart @ 2015-05-20 8:28 UTC (permalink / raw)
To: linux-sh
Hi Morimoto-san,
On Friday 15 May 2015 08:32:39 Kuninori Morimoto wrote:
> Hi Laurent
>
> Can I ask you about DMAEngine and spin_lock ?
>
> > > > We are testing Linux upstream version-4.1-rc2 on Koelsch and Lager.
> > > > We found a bug(kernel panic) on SOUND driver when Playback a sound
> > > > file.
> > > >
> > > > The kernel panic logs is showed as below:
> > > > "root@linaro-nano:~# aplay audio/Track\ 10.wav
> > > > Playing WAVE 'audio/Track 10.wav' : Signed 16 bit Little Endian,
> > > > Rate 44100 Hz, Stereo
> > > > Unable to handle kernel NULL pointer dereference at virtual address
> > > > 00000048
> > > > pgd = edfac000
> > > > [00000048] *pgdn0f0831, *pte\0000000, *ppte\0000000
> > > > Internal error: Oops: 17 [#1] SMP ARM
> > > > CPU: 0 PID: 2009 Comm: aplay Not tainted 4.1.0-rc2-dirty #4
> > > > Hardware name: Generic R8A7790 (Flattened Device Tree)
> > > > ..."
>
> In my debug, this issue happens under DMAEngine,
> and it depends on spin_lock (I think we talked this topic before...)
> but I don't know which one is wrong, DMAEngine or Sound ?
>
> Now, sound driver is calling DMAEngine API under spin_lock_irqsave
>
> spin_lock_irqsave(xxxx);
> ...
> dmaengine_prep_dma_cyclic();
> ...
> spin_unlock_irqrestore();
>
> dmaengine_prep_dma_cyclic() does many things,
> and it is using spin_unlock_irq().
> It re-enabled sound interrupt before calling spin_unlock_irqrestore()
>
> My question is which one is correct solution ??
> - sound driver shouldn't call DMAEngine API under spin_lock_irqsave() ?
> - DMAEngine driver should use spin_lock_irqsave() instead of
> spin_lock_irq() ?
I'm sorry to have missed this e-mail. I've now replied to your patch series
fixing the problem.
I believe the best solution would be to refactor the DMA engine API to make
reuse of descriptors possible. That way drivers could allocate descriptors at
initialization time in non-atomic context, and then use them in atomic
contexts (including interrupt handlers) without requiring reallocation.
That's a longer term problem, and we need a fix now for the sound bug, so
switching to spin_lock_irqsave() seems fine to me.
--
Regards,
Laurent Pinchart
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-05-20 8:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-13 8:31 [Bug Report] SOUND: Kernel panic occurs when playback Cao Minh Hiep
2015-05-13 8:44 ` Kuninori Morimoto
2015-05-15 8:32 ` Kuninori Morimoto
2015-05-20 8:28 ` Laurent Pinchart
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).