Timeout issues in wait_for_avail function

From: Zengtao (B)
Date: Mon May 07 2018 - 06:49:45 EST


Hi perex and tiwai:

I have met a timeout case when capture audio from snd-usb-audio device,
when the host call the pcm_read and get into the wait_for_avail function.
The following happends
1. No available data for capture(maybe because of the late response audio data by the uac device)
2. The current thread falls into sleep state and no one wakes up it.
3. The current thread will sleep 10s(schedule_timeout(1000)) and then wakeup.

I have two question about the wait_for_avail:
1. The timeout value too long, is it a reasonable value?
2. Is there any mechanism to wake up the thread if there is data from the hw.

Regards
Zengtao