mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v28 00/17] ALSA: virtio: preserve PCM progress
@ 2026-11-12  4:34 Joonho Lee
  2026-11-12  4:35 ` [PATCH v28 01/17] ALSA: pcm: mark stop-threshold accesses for capture policy sampling Joonho Lee
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: Joonho Lee @ 2026-11-12  4:34 UTC (permalink / raw)
  To: linux-sound
  Cc: tiwai, perex, anton.yakovlev, mst, virtualization, linux-kernel,
	corbet, skhan, rdunlap, linux-doc

This replaces v27 in full. Apply all seventeen patches directly to base
commit a4311e9447bbb219044db38897f95be112f46a8a. The previous public
version is at:

https://lore.kernel.org/linux-sound/20261112004704.49758-1-mynameisjune111@gmail.com/T/

Changes since v27 are confined to patch 12. The other patch diffs are
unchanged.

I reproduced both capture findings from the Sashiko review. If request
N+1 completed before N, RESET could leave N+1's already completed
payload eligible for later delivery. After an external XRUN, rejecting N
also left N+1 buffered until generation cleanup. PREPARE cleared that
state in the control test, so this does not establish a permanent
recovery failure.

RESET now marks valid completed payloads present at the pointer
observation as discarded while retaining their ordered placeholders.
This lets the commit sequence advance when older requests return.
Transport-owned requests and data arriving after the observation remain
eligible to commit. Repeated RESET preserves the discard, and invalid
response status still reports XRUN. Rejected completions also release
returned buffered entries without resetting the sequence of requests
still owned by the transport.

The failed native PAUSE path previously reopened the queue with the STOP
quiet boundary and capture_stopping flag still set. A running stream
could then accept an empty completion without the normal XRUN check.
Rollback now restores the prior flags under the substream lock and
checks the reset epoch before reopening admission.

ARM64 QEMU tests use the actual driver functions with test-only request
ordering and STOP allocation-failure injection. The v27 baseline fails
eight affected assertions; the candidate passes all thirteen assertions,
including normal reordering, post-observation delivery, invalid status,
and STOP empty-tail controls. The running-observation test invokes the
actual pointer-observation helper. Full RUNNING RESET ioctls are covered
separately by the production regression.

The production driver module was built separately without those hooks.
Its ARM64 W=1 build and eight QEMU regression runs passed with the
matching v27 KASAN/lockdep kernel and core modules. These cover RW/MMAP
capture, PREPARED RESET with DRAIN/reopen, RUNNING RESET, and playback
PAUSE/RELEASE, HWSYNC/poll, DROP and reopen. Capture includes 70-second
RW and resumed MMAP phases. The independent backend-sequence oracle
matched 7,104,000 frames across seven capture phases. No KASAN or
lockdep diagnostic appeared.

The kernel image and core were reused unchanged; the modified driver was
rebuilt. Fresh KCSAN and physical VZ tests were not run for this
revision. The earlier v27 KCSAN and Scarlett results describe that
earlier build. The controlled tests use synthetic requests and a known
STOP failure before submission; they do not qualify transport
timeout/uncertainty or demonstrate out-of-order completions on physical
hardware. Intermediate patch stages are application-checked; the fresh
runtime tests cover the final candidate.

Review addressed:

https://lore.kernel.org/linux-sound/sashiko-outbox-210240@kernel.org/

base-commit: a4311e9447bbb219044db38897f95be112f46a8a

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

end of thread, other threads:[~2026-11-12  5:18 UTC | newest]

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®