All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v33 00/18] ALSA: virtio: preserve PCM progress
@ 2026-11-13  9:21 ` Joonho Lee
  0 siblings, 0 replies; 56+ messages in thread
From: Joonho Lee via B4 Relay @ 2026-11-13  9:21 UTC (permalink / raw)
  To: linux-sound, Anton Yakovlev, Matias Ezequiel Vara Larsen
  Cc: tiwai, perex, mst, virtualization, linux-kernel, corbet, skhan,
	rdunlap, linux-doc, Takashi Iwai, Joonho Lee

This series is based on sound.git commit
 a4311e9447bbb219044db38897f95be112f46a8a.

Previous revision:
https://lore.kernel.org/linux-sound/20261113-fix-virtio-snd-recovery-final-v32-0-4e95979e312c@gmail.com/T/

Changes since v32:

- Keep a replacement capture stream in DRAINING intact when an older
  sync_stop callback arrives. The active-state check now covers capture
  and playback, with the teardown marker retained for later cleanup.
- Check the settled device state while holding the queue and stream locks
  before rolling back a failed PAUSE. A late successful STOP keeps the
  queue closed and does not restore the old capture quiet sequence.
- Give each uncertain control incident one additional window of four
  msg_timeout_ms intervals. Sleepable callbacks share the remaining time.
- Close transfer admission and quiesce period work before waiting for a
  late control reply. Preserve the stop marker on failure and resample
  teardown state after the reply settles.

These changes are folded into patches 12 and 18. The other sixteen
retained patches have unchanged diffs.

Automatic device reset from v32 patch 20 is deferred. Its review exposed
an ALSA link/open lock cycle and unresolved ordering with transport reset
and power management. The supporting CONFIG_PM-independent suspension
change from v32 patch 19 is also omitted. Their review findings remain
open for a separate recovery design.

A permanently unanswered PCM control request still requires an explicit
driver rebind. Late control replies remain supported by patch 18.

Validation:

- ARM64 virtio-snd module build with W=1: no warnings. The review-fix diff
  passes checkpatch without errors or warnings.
- Eight QEMU KASAN/lockdep cases cover RW/MMAP capture, RESET/DRAIN,
  reopen, and playback. All passed with the loaded module hash checked.
- A test-only sync_stop gate forced an old DROP to resume after a new
  capture reached DRAINING. The original first-eighteen-patch baseline lost
  the readable tail with -EBADFD; the candidate preserved it and returned
  32 frames. Both used the same fixture.
- A 1500 ms delayed STOP reply smoke test passed on v32 and this candidate.
- Scarlett 2i2 input 1, macOS VZ, 48 kHz: v32 and the candidate each
  passed twelve captures totalling 170 seconds, including 70-second RW
  and MMAP captures and repeated reopen. The candidate passed four more
  short captures after a fresh VM boot. All three VMs shut down normally.

The physical tests used the existing ABI-matched 7.3.0-rc7 KASAN kernel
with rebuilt driver modules, capture_packed_status=1 and
capture_pause_restart=0. Other host recorder processes remained running.
Expected frame counts and nonzero signal windows were checked; no known
waveform oracle was available to prove exact sample continuity.

The delayed STOP smoke test does not force the exact late-reply/PAUSE
rollback interleaving. No fresh KCSAN run or full-kernel rebuild is claimed
for this revision. Automatic transport reset and PM recovery are outside
this reduced series.

Assisted-by: LLM

---
Joonho Lee (18):
      ALSA: pcm: mark stop-threshold accesses for capture policy sampling
      ALSA: pcm: report partial progress under the stream lock
      ALSA: pcm: add an optional reset operation under the stream lock
      ALSA: pcm: notify drivers after linked prepare completes
      ALSA: pcm: serialize linked buffer actions
      ALSA: virtio: propagate playback send failures through ACK
      ALSA: virtio: Recover PCM state after a failed start
      ALSA: virtio: Retain queued messages through device reset
      ALSA: virtio: bound PCM transfers and retain DMA buffers
      ALSA: virtio: Keep control payloads alive through DMA completion
      ALSA: virtio: wait through signals for PCM teardown
      ALSA: virtio: use request-owned capture and serialize recovery
      ALSA: virtio: prioritize capture period work
      docs: describe virtio-sound capture options
      ALSA: virtio: reject invalid playback completions
      ALSA: pcm: add an explicit application pointer to indirect playback transfer
      ALSA: virtio: preserve playback progress across pause and buffer access
      ALSA: virtio: settle PCM control state from late replies

 Documentation/admin-guide/kernel-parameters.txt |   14 +
 Documentation/sound/alsa-configuration.rst      |   36 +
 include/sound/pcm-indirect.h                    |   24 +-
 include/sound/pcm.h                             |   40 +
 sound/core/oss/pcm_oss.c                        |    2 +-
 sound/core/pcm.c                                |    3 +-
 sound/core/pcm_lib.c                            |   69 +-
 sound/core/pcm_native.c                         |  275 ++-
 sound/virtio/virtio_card.c                      |  159 +-
 sound/virtio/virtio_card.h                      |    6 +
 sound/virtio/virtio_ctl_msg.c                   |  433 ++++-
 sound/virtio/virtio_ctl_msg.h                   |   40 +-
 sound/virtio/virtio_kctl.c                      |  109 +-
 sound/virtio/virtio_pcm.c                       |  105 +-
 sound/virtio/virtio_pcm.h                       |  195 +-
 sound/virtio/virtio_pcm_msg.c                   |  821 ++++++++-
 sound/virtio/virtio_pcm_ops.c                   | 2227 +++++++++++++++++++++--
 17 files changed, 4182 insertions(+), 376 deletions(-)
---
base-commit: a4311e9447bbb219044db38897f95be112f46a8a
change-id: 20261113-fix-virtio-snd-recovery-final-401a48b55378

Best regards,
--  
Joonho Lee <mynameisjune111@gmail.com>



^ permalink raw reply	[flat|nested] 56+ messages in thread

end of thread, other threads:[~2026-11-13  9:54 UTC | newest]

Thread overview: 56+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13  9:21 [PATCH v33 00/18] ALSA: virtio: preserve PCM progress Joonho Lee via B4 Relay
2026-11-13  9:21 ` Joonho Lee
2026-11-13  9:21 ` [PATCH v33 01/18] ALSA: pcm: mark stop-threshold accesses for capture policy sampling Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:26   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 02/18] ALSA: pcm: report partial progress under the stream lock Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:34   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 03/18] ALSA: pcm: add an optional reset operation " Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:30   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 04/18] ALSA: pcm: notify drivers after linked prepare completes Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:36   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 05/18] ALSA: pcm: serialize linked buffer actions Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:31   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 06/18] ALSA: virtio: propagate playback send failures through ACK Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:48   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 07/18] ALSA: virtio: Recover PCM state after a failed start Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:47   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 08/18] ALSA: virtio: Retain queued messages through device reset Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:46   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 09/18] ALSA: virtio: bound PCM transfers and retain DMA buffers Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:54   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 10/18] ALSA: virtio: Keep control payloads alive through DMA completion Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:30   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 11/18] ALSA: virtio: wait through signals for PCM teardown Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:38   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 12/18] ALSA: virtio: use request-owned capture and serialize recovery Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:49   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 13/18] ALSA: virtio: prioritize capture period work Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:33   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 14/18] docs: describe virtio-sound capture options Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:33   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 15/18] ALSA: virtio: reject invalid playback completions Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:45   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 16/18] ALSA: pcm: add an explicit application pointer to indirect playback transfer Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:36   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 17/18] ALSA: virtio: preserve playback progress across pause and buffer access Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:48   ` sashiko-bot
2026-11-13  9:21 ` [PATCH v33 18/18] ALSA: virtio: settle PCM control state from late replies Joonho Lee via B4 Relay
2026-11-13  9:21   ` Joonho Lee
2026-11-13  9:49   ` sashiko-bot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.