Re: [PATCH] ALSA: hda: Request driver probe from an async task

From: Takashi Iwai
Date: Mon Apr 23 2018 - 08:21:50 EST


On Mon, 23 Apr 2018 14:05:52 +0200,
Paul Menzel wrote:
>
> From: Paul Menzel <pmenzel@xxxxxxxxxxxxx>
> Date: Sat, 24 Mar 2018 09:28:43 +0100
>
> On an ASRock E350M1, with Linux 4.17-rc1 according to `initcall_debug`
> calling `azx_driver_init` takes sometimes more than a few milliseconds,
> and up to 200 ms.
>
> ```
> [ 2.892598] calling azx_driver_init+0x0/0xfe4 [snd_hda_intel] @ 218
> [ 2.943002] initcall azx_driver_init+0x0/0xfe4 [snd_hda_intel]
> returned 0 after 49195 usecs
> ```
>
> Trying to execute the Linux kernel in less than 500 ms, this is quite a
> hold-up, and therefore request the probe from an async task.
>
> With this change, the test shows, that the function returns earlier.
>
> ```
> [ 3.254800] calling azx_driver_init+0x0/0xfe4 [snd_hda_intel] @ 227
> [ 3.254887] initcall azx_driver_init+0x0/0xfe4 [snd_hda_intel]
> returned 0 after 66 usecs
> ```
>
> The same behavior is visible on a Dell OptiPlex 7010. The longer times
> seem to happen, when the module *e1000e* is probed during the same time.
>
> Signed-off-by: Paul Menzel <pmenzel@xxxxxxxxxxxxx>

What actually took so long? Could you analyze further instead of
blindly putting the flag?


thanks,

Takashi