mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
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. Suggested-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: Yu-Hsuan Hsu <yuhsuan@google.com> Reviewed-by: Péter Ujfalusi <peter.ujfalusi@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com> Link: https://patch.msgid.link/20260730130445.8277-1-peter.ujfalusi@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
cde3330916
commit
ea1224da5d
|
|
@ -62,7 +62,7 @@ void snd_sof_pcm_period_elapsed(struct snd_pcm_substream *substream)
|
|||
* To avoid sending IPC before the previous IPC is handled, we
|
||||
* schedule delayed work here to call the snd_pcm_period_elapsed().
|
||||
*/
|
||||
schedule_work(&spcm->stream[substream->stream].period_elapsed_work);
|
||||
queue_work(system_highpri_wq, &spcm->stream[substream->stream].period_elapsed_work);
|
||||
}
|
||||
EXPORT_SYMBOL(snd_sof_pcm_period_elapsed);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user