[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/11] Support persistent reservation operations
From: |
Changqi Lu |
Subject: |
[PATCH v2 00/11] Support persistent reservation operations |
Date: |
Mon, 13 May 2024 11:52:19 +0800 |
Hi Stefan;
Thanks for your advices! The existing PRManager only works with
local scsi devices. This series will completely decouple devices
and drivers. The device can not only be scsi, but also other
devices such as nvme. The same is true for the driver,
which is completely unrestricted. And block/file-posix.c can
implement the new block driver, and pr_manager can be executed
after splicing ioctl commands in these drivers. This will be implemented
in subsequent patches.
v1->v2:
- Add sg_persist --report-capabilities for SCSI protocol and enable
oncs and rescap for NVMe protocol.
- Add persistent reservation capabilities constants and helper functions for
SCSI and NVMe protocol.
- Add comments for necessary APIs.
v1:
- Add seven APIs about persistent reservation command for block layer.
These APIs including reading keys, reading reservations, registering,
reserving, releasing, clearing and preempting.
- Add the necessary pr-related operation APIs for both the
SCSI protocol and NVMe protocol at the device layer.
- Add scsi driver at the driver layer to verify the functions.
Changqi Lu (11):
block: add persistent reservation in/out api
block/raw: add persistent reservation in/out driver
scsi/constant: add persistent reservation in/out protocol constants
scsi/util: add helper functions for persistent reservation types
conversion
hw/scsi: add persistent reservation in/out api for scsi device
block/nvme: add reservation command protocol constants
hw/nvme: add helper functions for converting reservation types
hw/nvme: enable ONCS reservations
hw/nvme: enable namespace rescap function
hw/nvme: add reservation protocal command
block/iscsi: add persistent reservation in/out driver
block/block-backend.c | 390 ++++++++++++++++++++++++++
block/io.c | 161 +++++++++++
block/iscsi.c | 448 ++++++++++++++++++++++++++++++
block/raw-format.c | 55 ++++
hw/nvme/ctrl.c | 307 +++++++++++++++++++-
hw/nvme/ns.c | 7 +
hw/nvme/nvme.h | 44 +++
hw/scsi/scsi-disk.c | 348 +++++++++++++++++++++++
include/block/block-common.h | 40 +++
include/block/block-io.h | 19 ++
include/block/block_int-common.h | 85 ++++++
include/block/nvme.h | 92 ++++++
include/scsi/constants.h | 52 ++++
include/scsi/utils.h | 8 +
include/sysemu/block-backend-io.h | 22 ++
scsi/utils.c | 77 +++++
16 files changed, 2153 insertions(+), 2 deletions(-)
--
2.20.1
- [PATCH v2 00/11] Support persistent reservation operations,
Changqi Lu <=
- [PATCH v2 02/11] block/raw: add persistent reservation in/out driver, Changqi Lu, 2024/05/12
- [PATCH v2 01/11] block: add persistent reservation in/out api, Changqi Lu, 2024/05/12
- [PATCH v2 04/11] scsi/util: add helper functions for persistent reservation types conversion, Changqi Lu, 2024/05/12
- [PATCH v2 03/11] scsi/constant: add persistent reservation in/out protocol constants, Changqi Lu, 2024/05/12
- [PATCH v2 05/11] hw/scsi: add persistent reservation in/out api for scsi device, Changqi Lu, 2024/05/12
- [PATCH v2 06/11] block/nvme: add reservation command protocol constants, Changqi Lu, 2024/05/12
- [PATCH v2 07/11] hw/nvme: add helper functions for converting reservation types, Changqi Lu, 2024/05/12
- [PATCH v2 08/11] hw/nvme: enable ONCS reservations, Changqi Lu, 2024/05/12
- [PATCH v2 09/11] hw/nvme: enable namespace rescap function, Changqi Lu, 2024/05/12
- [PATCH v2 10/11] hw/nvme: add reservation protocal command, Changqi Lu, 2024/05/12