- kvm-vhost-user-make-vhost_set_vring_file-synchronous.patch [RHEL-147425] - kvm-scsi-generalize-scsi_SG_IO_FROM_DEV-to-scsi_SG_IO.patch [RHEL-132749] - kvm-scsi-add-error-reporting-to-scsi_SG_IO.patch [RHEL-132749] - kvm-scsi-track-SCSI-reservation-state-for-live-migration.patch [RHEL-132749] - kvm-scsi-save-load-SCSI-reservation-state.patch [RHEL-132749] - kvm-docs-add-SCSI-migrate-pr-documentation.patch [RHEL-132749] - kvm-Revert-hw-arm-virt-Use-ACPI-PCI-hotplug-by-default-f.patch [RHEL-134989 RHEL-146584] - Resolves: RHEL-147425 (virtiofs: processes become stuck in request_wait_answer on virtiofs mounts) - Resolves: RHEL-132749 (Migrate SCSI PR state and preempt reservation upon live migration) - Resolves: RHEL-134989 (Hotplugged interface device can not be shown in the guest) - Resolves: RHEL-146584 ([RHEL-10.2][ARM]: Unable to Check the mem prefetched size on Guest)
119 lines
4.8 KiB
Diff
119 lines
4.8 KiB
Diff
From a47cd8b532de2235c3be76a79f42d40c32a4fa58 Mon Sep 17 00:00:00 2001
|
|
From: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Date: Thu, 29 Jan 2026 16:20:35 -0500
|
|
Subject: [PATCH 6/7] docs: add SCSI migrate-pr documentation
|
|
|
|
RH-Author: Stefan Hajnoczi <stefanha@redhat.com>
|
|
RH-MergeRequest: 464: scsi: persistent reservation live migration
|
|
RH-Jira: RHEL-132749
|
|
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
|
|
RH-Commit: [5/5] e081d8f5e12d1228cd3de395964c0cb4d483559e (stefanha/centos-stream-qemu-kvm)
|
|
|
|
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
Message-id: 20260129212035.219676-6-stefanha@redhat.com
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
(cherry picked from commit a67819adb2212977360e9290bd005badb07dd2e4)
|
|
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
---
|
|
docs/system/device-emulation.rst | 1 +
|
|
docs/system/devices/scsi/index.rst | 10 +++++
|
|
docs/system/devices/scsi/migrate-pr.rst | 54 +++++++++++++++++++++++++
|
|
3 files changed, 65 insertions(+)
|
|
create mode 100644 docs/system/devices/scsi/index.rst
|
|
create mode 100644 docs/system/devices/scsi/migrate-pr.rst
|
|
|
|
diff --git a/docs/system/device-emulation.rst b/docs/system/device-emulation.rst
|
|
index 911381643f..72a9dbd54d 100644
|
|
--- a/docs/system/device-emulation.rst
|
|
+++ b/docs/system/device-emulation.rst
|
|
@@ -91,6 +91,7 @@ Emulated Devices
|
|
devices/keyboard.rst
|
|
devices/net.rst
|
|
devices/nvme.rst
|
|
+ devices/scsi/index.rst
|
|
devices/usb.rst
|
|
devices/vhost-user.rst
|
|
devices/virtio-gpu.rst
|
|
diff --git a/docs/system/devices/scsi/index.rst b/docs/system/devices/scsi/index.rst
|
|
new file mode 100644
|
|
index 0000000000..4f0929b0ca
|
|
--- /dev/null
|
|
+++ b/docs/system/devices/scsi/index.rst
|
|
@@ -0,0 +1,10 @@
|
|
+SCSI Devices
|
|
+============
|
|
+
|
|
+Several SCSI devices are available in QEMU. They are primarily used for block
|
|
+storage.
|
|
+
|
|
+.. toctree::
|
|
+ :maxdepth: 1
|
|
+
|
|
+ migrate-pr.rst
|
|
diff --git a/docs/system/devices/scsi/migrate-pr.rst b/docs/system/devices/scsi/migrate-pr.rst
|
|
new file mode 100644
|
|
index 0000000000..a8f2790a86
|
|
--- /dev/null
|
|
+++ b/docs/system/devices/scsi/migrate-pr.rst
|
|
@@ -0,0 +1,54 @@
|
|
+..
|
|
+ SPDX-License-Identifier: GPL-2.0-or-later
|
|
+
|
|
+.. _scsi_migrate_pr:
|
|
+
|
|
+SCSI Persistent Reservation Live Migration
|
|
+==========================================
|
|
+
|
|
+This document explains how to live migrate SCSI Persistent Reservations.
|
|
+
|
|
+The ``scsi-block`` device migrates SCSI Persistent Reservations when the
|
|
+``migrate-pr=on`` parameter is given. Migration is enabled by default in
|
|
+versioned machine types since QEMU 11.0. It is disabled by default on older
|
|
+machine types and needs to be explicitly enabled with ``--device
|
|
+scsi-block,migrate-pr=on,...``.
|
|
+
|
|
+When migration is enabled, QEMU snoops PERSISTENT RESERVATION OUT commands and
|
|
+tracks the reservation key registered by the guest as well as reservations that
|
|
+the guest acquires. This information is migrated along with the guest and the
|
|
+destination QEMU submits a PERSISTENT RESERVATION OUT command with the PREEMPT
|
|
+service action to atomically transfer the reservation to the destination before
|
|
+the guest starts running on the destination.
|
|
+
|
|
+The following persistent reservation capabilities reported by the PERSISTENT
|
|
+RESERVATION IN command with the REPORT CAPABILITIES service action are masked
|
|
+from the guest by QEMU when migration is enabled:
|
|
+
|
|
+ * Specify Initiator Ports Capable (SIP_C)
|
|
+ * All Target Ports Capable (ATC_C)
|
|
+
|
|
+When migration is disabled, the ``scsi-block`` device is live migrated but
|
|
+reservations remain in place on the source. Usually this is not the intended
|
|
+behavior unless there is another mechanism to update reservations during
|
|
+migration. The PERSISTENT RESERVATION IN command also does not mask
|
|
+capabilities reported to the guest when migration is disabled.
|
|
+
|
|
+Limitations
|
|
+-----------
|
|
+
|
|
+QEMU does not remember snooped reservation details across restart, so software
|
|
+inside the guest must acquire the reservation after boot in order for live
|
|
+migration to work. Similarly, if the reservation is acquired outside the guest
|
|
+then it will not live migrate along with the guest.
|
|
+
|
|
+Snooping only considers the PERSISTENT RESERVATION OUT commands from the guest
|
|
+and does not track reservation changes made by other SCSI initiators. QEMU's
|
|
+snooped reservation details can become stale if another SCSI initiator
|
|
+makes changes to the reservation.
|
|
+
|
|
+Guests running on the same host share a single SCSI initiator identity unless
|
|
+Fibre Channel N_Port ID Virtualization is configured. As a consequence,
|
|
+multiple guests on the same hosts may observe unexpected behavior if they use
|
|
+the same physical LUN. From the LUN's perspective all guests are the same
|
|
+initiator and there is no way to distinguish between guests.
|
|
--
|
|
2.47.3
|
|
|