From: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io>
Dear friends,
This patchset is aimed to support virtio-sound live migration and based on
pre-existing Volker Rümelin's patches from qemu-devel lists [1]. I tried
to ask (https://lore.kernel.org/qemu-devel/9d7ea128c711c201688a4716f53b8a335fc53569.camel@mihalicyn.com/)
if Volker is going to continue his work on this, but received no reply so I
just decided to go forward: take his patches, rebase and resend. Of course,
I kept all authorship/tags so I hope that it is fine.
Testing.
I manually validated this with Ubuntu 24.04 Desktop VM and found no issues.
Also, it was validated with CI (https://gitlab.com/mihalicyn/qemu/-/pipelines/2626702088).
Original patchset:
https://lore.kernel.org/qemu-devel/a289a081-9a61-4bcb-b693-bf6cd7768c0e@t-online.de [1]
Git tree:
https://gitlab.com/mihalicyn/qemu/-/commits/virtio-sound-migration
Changelog for version 4:
- addressed review feedback from Marc-André Lureau
- and from Manos Pitsidianakis
*there is a detailed changelog under each commit message*
Changelog for version 3:
- addressed review feedback from Marc-André Lureau:
- drop VirtIOSoundPCMStream's id field (unused)
- resurrected error_report(..) in virtio_snd_pcm_start_stop()
- fixes in "hw/audio/virtio-sound: add stream state variable"
[ please, look in commit message for details ]
- added "hw/audio/virtio-sound: remove channel positions field
from VirtIOSoundPCMStream"
- fixes in "hw/audio/virtio-sound: add missing vmstate fields"
[ details in commit message ]
Changelog for version 2:
- no code changes (only commit messages)
followed suggestions from Daniel P. Berrangé (thanks, Daniel!)
https://lore.kernel.org/qemu-devel/ajzoxZr4g0Xsr_4p@redhat.com/
and added some extra details about what I did with the original
patches during rebase (for some of them it was simpler and less error
prone to just drop changes and reimplement them by following the idea
of the patch, cause base code has changed significantly).
Changelog relative to the original Volker Rümelin's submission:
- rebased:
- "hw/audio/virtio-sound: return correct command response size"
was dropped as it was already merged
- "hw/audio/virtio-sound: fix segmentation fault in tx/rx xfer handler"
was dropped as it seems to be replaced with another fix
https://github.com/qemu/qemu/commit/731655f87f319fd06f27282c6cafbc2467ac8045
- I had to drop all pre-existing Reviewed-by tags cause it was 2 years since
this patchset was sent and reviewed and I did a quite significant code changes
during rebase
Kind regards,
Alex
Alexander Mikhalitsyn (2):
hw/audio/virtio-sound: remove channel positions field from
VirtIOSoundPCMStream
hw/audio/virtio-sound: drop unused struct
VirtIOSoundPCMStream.flushing field
Volker Rümelin (8):
hw/audio/virtio-sound: remove command and stream mutexes
hw/audio/virtio-sound: allocate an array of streams
hw/audio/virtio-sound: free all stream buffers on reset
hw/audio/virtio-sound: split out virtio_snd_pcm_start_stop()
hw/audio/virtio-sound: add stream state variable
hw/audio/virtio-sound: introduce virtio_snd_pcm_open()
hw/audio/virtio-sound: introduce virtio_snd_set_active()
hw/audio/virtio-sound: add missing vmstate fields
hw/audio/virtio-snd.c | 696 ++++++++++++++++++++--------------
include/hw/audio/virtio-snd.h | 26 +-
2 files changed, 413 insertions(+), 309 deletions(-)
--
2.47.3