Queue staged capture period notifications on system_highpri_wq through the common scheduling helper. This allows capture notifications to make progress when ordinary workqueue workers are delayed by CPU contention. Playback and ordinary capture keep schedule_work().
This preserves the existing priority proposal without mixing RESET or lifecycle changes into it. It provides no hard real-time deadline and cannot prevent a userspace reader from overrunning its buffer. Assisted-by: LLM Signed-off-by: Joonho Lee <[email protected]> --- diff --git a/sound/virtio/virtio_pcm.h b/sound/virtio/virtio_pcm.h --- a/sound/virtio/virtio_pcm.h +++ b/sound/virtio/virtio_pcm.h @@ -159,6 +159,10 @@ static inline bool virtsnd_pcm_schedule_period_elapsed(struct virtio_pcm_substream *vss) { + if (vss->direction == SNDRV_PCM_STREAM_CAPTURE && + vss->capture_staging) + return queue_work(system_highpri_wq, &vss->elapsed_period); + return schedule_work(&vss->elapsed_period); }
