Skip to content

Commit de11097

Browse files
author
Yu-Hsuan Hsu
committed
ASoC: SOF: Use high-priority workqueue for PCM period elapsed
The snd_sof_pcm_period_elapsed function currently schedules work on the system-wide workqueue. This can lead to potential delays or jitter in audio processing if the system workqueue is busy with other tasks. To improve real-time performance and ensure timely processing of PCM periods, we can use the system_highpri_wq instead of the default work queue. In performance testing, this change significantly reduced the observed scheduling delays. For instance, under load(stressapptest -M 15000 -m 60), the maximum delay dropped from 9ms on the system workqueue to 5ms on the dedicated high-priority workqueue.
1 parent 58baae7 commit de11097

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

sound/soc/sof/pcm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void snd_sof_pcm_period_elapsed(struct snd_pcm_substream *substream)
6262
* To avoid sending IPC before the previous IPC is handled, we
6363
* schedule delayed work here to call the snd_pcm_period_elapsed().
6464
*/
65-
schedule_work(&spcm->stream[substream->stream].period_elapsed_work);
65+
queue_work(system_highpri_wq, &spcm->stream[substream->stream].period_elapsed_work);
6666
}
6767
EXPORT_SYMBOL(snd_sof_pcm_period_elapsed);
6868

0 commit comments

Comments
 (0)