[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 0/9] Support persistent reservation operations
From: |
Changqi Lu |
Subject: |
[PATCH 0/9] Support persistent reservation operations |
Date: |
Wed, 8 May 2024 17:36:20 +0800 |
Hi,
I am going to introduce persistent reservation for QEMU block.
There are three parts in this series:
Firstly, at the block layer, the commit abstracts seven APIs related to
the persistent reservation command. These APIs including reading keys,
reading reservations, registering, reserving, releasing, clearing and
preempting.
Next, the commit implements the necessary pr-related operation APIs for both the
SCSI protocol and NVMe protocol at the device layer. This ensures that the
necessary
functionality is available for handling persistent reservations in these
protocols.
Finally, the commit includes adaptations to the iscsi driver at the driver layer
to verify the correct implementation and functionality of the changes.
With these changes, GFS works fine in the guest. Also, sg-utils(for SCSI block)
and
nvme-cli(for NVMe block) work fine too.
Changqi Lu (9):
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: add reservation protocal command
block/iscsi: add persistent reservation in/out driver
block/block-backend.c | 386 +++++++++++++++++++++++++++++
block/io.c | 161 ++++++++++++
block/iscsi.c | 390 ++++++++++++++++++++++++++++++
block/raw-format.c | 55 +++++
hw/nvme/ctrl.c | 304 ++++++++++++++++++++++-
hw/nvme/nvme.h | 44 ++++
hw/scsi/scsi-disk.c | 302 +++++++++++++++++++++++
include/block/block-common.h | 9 +
include/block/block-io.h | 19 ++
include/block/block_int-common.h | 31 +++
include/block/nvme.h | 67 +++++
include/scsi/constants.h | 29 +++
include/scsi/utils.h | 5 +
include/sysemu/block-backend-io.h | 22 ++
scsi/utils.c | 40 +++
15 files changed, 1863 insertions(+), 1 deletion(-)
--
2.20.1
- [PATCH 0/9] Support persistent reservation operations,
Changqi Lu <=
- [PATCH 2/9] block/raw: add persistent reservation in/out driver, Changqi Lu, 2024/05/08
- [PATCH 4/9] scsi/util: add helper functions for persistent reservation types conversion, Changqi Lu, 2024/05/08
- [PATCH 7/9] hw/nvme: add helper functions for converting reservation types, Changqi Lu, 2024/05/08
- [PATCH 9/9] block/iscsi: add persistent reservation in/out driver, Changqi Lu, 2024/05/08
- [PATCH 1/9] block: add persistent reservation in/out api, Changqi Lu, 2024/05/08