[alsa-devel] ESI Juli@ crash with external clock switch - patch
Pavel Hofman
pavel.hofman at ivitera.com
Sun Jan 11 22:00:59 CET 2015
Dne 11.1.2015 v 21:36 Takashi Iwai napsal(a):
>
> OK, then this should be cancel_delayed_work_sync() instead, I suppose.
> The revised patch (also for ak4113.c) below.
I am afraid it is getting stuck in the same way - see the thread stack
below.
>
>>
>> I see, snd_ak4113_reinit of ak4113.c is never called, only
>> ak4113_init_regs. Perhaps Juli should not touch the workqueue in
>> ak4114_reinit and only initialize the regs in similar manner to ak4113?
>
> No, it's just quartet driver doesn't handle it properly :)
Why is actually the restart of the workqueue needed at reinit? The work
(snd_ak4114_check_rate_and_errors) only reads ak4114 regs to controls
(using i2c routine synchronized with mutexes) and handles the stream stop.
> It doesn't matter much because PM doesn't work with Quartet.
> But the juli.c also should be improved regarding PM. It should stop
> the workq at suspend. Also, it'd be preferable to have some control
> start/stop this background work, e.g. via a control element.
> Otherwise your machine will be constantly loaded unnecessarily.
I think we can extend the timer, perhaps to HZ/2 - the thread is just a
security measure anyway.
>
> I'll prepare a fix patch to these later.
Thanks a lot,
Pavel.
[11280.656021] INFO: task kworker/0:1:46 blocked for more than 120 seconds.
[11280.656027] Tainted: G OX 3.13.0-37-generic #64-Ubuntu
[11280.656028] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[11280.656031] kworker/0:1 D ffff88021fc14480 0 46 2
0x00000000
[11280.656041] Workqueue: events ak4114_stats [snd_ak4114]
[11280.656043] ffff880213c71b80 0000000000000046 ffff880213c69800
ffff880213c71fd8
[11280.656047] 0000000000014480 0000000000014480 ffff880213c69800
ffff880213c71cc0
[11280.656051] ffff880213c71cc8 7fffffffffffffff ffff880213c69800
ffff8801e206e968
[11280.656054] Call Trace:
[11280.656062] [<ffffffff81723129>] schedule+0x29/0x70
[11280.656065] [<ffffffff81722379>] schedule_timeout+0x239/0x2d0
[11280.656070] [<ffffffff810980f5>] ? check_preempt_curr+0x85/0xa0
[11280.656074] [<ffffffff81098129>] ? ttwu_do_wakeup+0x19/0xc0
[11280.656077] [<ffffffff8109827d>] ?
ttwu_do_activate.constprop.74+0x5d/0x70
[11280.656080] [<ffffffff81723c46>] wait_for_completion+0xa6/0x160
[11280.656084] [<ffffffff8109a8d0>] ? wake_up_state+0x20/0x20
[11280.656088] [<ffffffff81084b8d>] flush_work+0xed/0x1b0
[11280.656091] [<ffffffff81080e60>] ? wake_up_worker+0x30/0x30
[11280.656095] [<ffffffff81084cc5>] __cancel_work_timer+0x75/0xf0
[11280.656098] [<ffffffff81084d73>] cancel_delayed_work_sync+0x13/0x20
[11280.656102] [<ffffffffa03ca4e5>] snd_ak4114_reinit+0x25/0x60
[snd_ak4114]
[11280.656112] [<ffffffffa05e526a>] juli_akm_set_rate_val+0xca/0xf0
[snd_ice1724]
[11280.656119] [<ffffffffa05e52de>] juli_ak4114_change+0x4e/0x60
[snd_ice1724]
[11280.656123] [<ffffffffa03cab97>]
snd_ak4114_check_rate_and_errors+0x1f7/0x390 [snd_ak4114]
[11280.656127] [<ffffffffa03cad58>] ak4114_stats+0x28/0x50 [snd_ak4114]
[11280.656130] [<ffffffff810839c2>] process_one_work+0x182/0x450
[11280.656134] [<ffffffff810847b1>] worker_thread+0x121/0x410
[11280.656137] [<ffffffff81084690>] ? rescuer_thread+0x430/0x430
[11280.656140] [<ffffffff8108b492>] kthread+0xd2/0xf0
[11280.656144] [<ffffffff8108b3c0>] ? kthread_create_on_node+0x1c0/0x1c0
[11280.656147] [<ffffffff8172f77c>] ret_from_fork+0x7c/0xb0
[11280.656150] [<ffffffff8108b3c0>] ? kthread_create_on_node+0x1c0/0x1c0
[11280.656205] INFO: task pulseaudio:8418 blocked for more than 120 seconds.
[11280.656206] Tainted: G OX 3.13.0-37-generic #64-Ubuntu
[11280.656207] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[11280.656209] pulseaudio D ffff88021fc14480 0 8418 8416
0x00000000
[11280.656211] ffff8800bb903bd0 0000000000000082 ffff880210263000
ffff8800bb903fd8
[11280.656214] 0000000000014480 0000000000014480 ffff880210263000
ffff8800bb903d18
[11280.656216] ffff8800bb903d20 7fffffffffffffff ffff880210263000
ffff8801e206e968
[11280.656219] Call Trace:
[11280.656222] [<ffffffff81723129>] schedule+0x29/0x70
[11280.656224] [<ffffffff81722379>] schedule_timeout+0x239/0x2d0
[11280.656227] [<ffffffff81722cb1>] ? __schedule+0x381/0x7d0
[11280.656229] [<ffffffff81723c46>] wait_for_completion+0xa6/0x160
[11280.656232] [<ffffffff8109a8d0>] ? wake_up_state+0x20/0x20
[11280.656234] [<ffffffff81084b8d>] flush_work+0xed/0x1b0
[11280.656237] [<ffffffff81080e60>] ? wake_up_worker+0x30/0x30
[11280.656239] [<ffffffff81084cf2>] __cancel_work_timer+0xa2/0xf0
[11280.656242] [<ffffffff81084d73>] cancel_delayed_work_sync+0x13/0x20
[11280.656244] [<ffffffffa03ca4e5>] snd_ak4114_reinit+0x25/0x60
[snd_ak4114]
[11280.656250] [<ffffffffa05e526a>] juli_akm_set_rate_val+0xca/0xf0
[snd_ice1724]
[11280.656255] [<ffffffffa05da642>] snd_vt1724_set_pro_rate+0x122/0x220
[snd_ice1724]
[11280.656259] [<ffffffffa05da768>]
snd_vt1724_capture_pro_close+0x28/0x40 [snd_ice1724]
[11280.656271] [<ffffffffa038db0f>]
snd_pcm_release_substream.part.34+0x3f/0x90 [snd_pcm]
[11280.656275] [<ffffffffa038dc38>] snd_pcm_release+0xa8/0xd0 [snd_pcm]
[11280.656280] [<ffffffff811bed64>] __fput+0xe4/0x260
[11280.656282] [<ffffffff811bef2e>] ____fput+0xe/0x10
[11280.656285] [<ffffffff81088227>] task_work_run+0xa7/0xe0
[11280.656290] [<ffffffff81013df7>] do_notify_resume+0x97/0xb0
[11280.656292] [<ffffffff8172faea>] int_signal+0x12/0x17
More information about the Alsa-devel
mailing list