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

This v30 revision resends v29 with no code changes. Patch 17 clarifies
the commit description and moves qualification limits to this cover
letter, following the review. The other patch messages and code are
unchanged.

Previous version:

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

This resends v28 in full using mynameisjune111@gmail.com for every
message. There are no code or patch-description changes from v28; the
existing human DCO trailers are retained.

The v28 documentation patch 14 was rejected by Gmail. Sending that
message through my Workspace account made it available on Lore, but
Sashiko grouped it separately from the other sixteen patches. This
revision sends the complete series with one From address.

Previous version:

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

The following describes the changes and validation already included in
v28.

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/

Playback validation limits: The one-period reduction in the TX queue
has not been qualified for worst-case scheduling tolerance. The tree
through the preceding playback-completion change was inspected but not
run separately. The playback gate tests used ARM64 QEMU; they did not
include KCSAN or physical audio. They do not qualify the full series.

base-commit: a4311e9447bbb219044db38897f95be112f46a8a

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

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

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