On Thu, Jan 29, 2026 at 04:20:30PM -0500, Stefan Hajnoczi wrote: > v3: > - Use warn_report_err() instead of suppressing errors [Daniel Berrangé] > - Wrap lines exceeding 80 characters
CCing Daniel Berrangé (sorry, I forgot!) > > v2: > - Add user documentation [Paolo] > - Send PREEMPT on the source if migration fails. This rollback operation > ensures the source regains access to the LUN even if migration fails after > the destination issues its own PREEMPT. > > Live migration does not work for SCSI Persistent Reservations acquired on > scsi-block devices. This patch series migrates the reservation key and > reservation type so that the destination QEMU can take over the persistent > reservation with the PREEMPT service action upon live migration. > > The approach involves snooping PERSISTENT RESERVE OUT replies and tracking the > scsi-block device's current reservation key and reservation type. In most > cases > this involves no additional SCSI commands. This approach isn't perfect: if > another machine modifies the reservation on the physical LUN, then QEMU's > state > becomes stale. Persistent reservations are inherently cooperative, so this is > acceptable as long as real applications don't run into problems. > > I am also working on a test suite called pr-tests that runs sg_persist(8) > commands across multiple machines in order to exercise various scenarios: > https://gitlab.com/stefanha/pr-tests > > Stefan Hajnoczi (5): > scsi: generalize scsi_SG_IO_FROM_DEV() to scsi_SG_IO() > scsi: add error reporting to scsi_SG_IO() > scsi: track SCSI reservation state for live migration > scsi: save/load SCSI reservation state > docs: add SCSI migrate-pr documentation > > docs/system/device-emulation.rst | 1 + > docs/system/devices/scsi/index.rst | 10 + > docs/system/devices/scsi/migrate-pr.rst | 54 +++++ > include/hw/scsi/scsi.h | 15 +- > include/scsi/constants.h | 21 ++ > hw/core/machine.c | 4 +- > hw/scsi/scsi-bus.c | 3 + > hw/scsi/scsi-disk.c | 90 +++++++- > hw/scsi/scsi-generic.c | 291 +++++++++++++++++++++++- > hw/scsi/trace-events | 2 + > 10 files changed, 476 insertions(+), 15 deletions(-) > create mode 100644 docs/system/devices/scsi/index.rst > create mode 100644 docs/system/devices/scsi/migrate-pr.rst > > -- > 2.52.0 >
signature.asc
Description: PGP signature
