[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v9 00/10] Support persistent reservation operations
From: |
Changqi Lu |
Subject: |
[PATCH v9 00/10] Support persistent reservation operations |
Date: |
Fri, 12 Jul 2024 10:36:40 +0800 |
Hi,
Patch v9 has been modified, thanks to Stefan for the code review.
v8->v9:
- Fix double-free and remove persistent reservation operations at
nvme_is_write().
v7->v8:
- Fix num_keys may be less than 0 at scsi_pr_read_keys_complete().
- Fix buf memory leak at iscsi driver.
v6->v7:
- Add buferlen size check at SCSI layer.
- Add pr_cap calculation in bdrv_merge_limits() function at block layer,
so the ugly bs->file->bs->bl.pr_cap in scsi and nvme layers was
changed to bs->bl.pr_cap.
- Fix memory leak at iscsi driver, and some other spelling errors.
v5->v6:
- Add relevant comments in the io layer.
v4->v5:
- Fixed a memory leak bug at hw/nvme/ctrl.c.
v3->v4:
- At the nvme layer, the two patches of enabling the ONCS
function and enabling rescap are combined into one.
- At the nvme layer, add helper functions for pr capacity
conversion between the block layer and the nvme layer.
v2->v3:
In v2 Persist Through Power Loss(PTPL) is enable default.
In v3 PTPL is supported, which is passed as a parameter.
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 (10):
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 and rescap function
hw/nvme: add reservation protocal command
block/iscsi: add persistent reservation in/out driver
block/block-backend.c | 403 ++++++++++++++++++++++++++++
block/io.c | 164 ++++++++++++
block/iscsi.c | 423 ++++++++++++++++++++++++++++++
block/raw-format.c | 56 ++++
hw/nvme/ctrl.c | 321 ++++++++++++++++++++++-
hw/nvme/ns.c | 5 +
hw/nvme/nvme.h | 88 +++++++
hw/scsi/scsi-disk.c | 368 ++++++++++++++++++++++++++
include/block/block-common.h | 40 +++
include/block/block-io.h | 20 ++
include/block/block_int-common.h | 84 ++++++
include/block/nvme.h | 100 ++++++-
include/scsi/constants.h | 52 ++++
include/scsi/utils.h | 8 +
include/sysemu/block-backend-io.h | 24 ++
scsi/utils.c | 81 ++++++
16 files changed, 2235 insertions(+), 2 deletions(-)
--
2.20.1
- [PATCH v9 00/10] Support persistent reservation operations,
Changqi Lu <=
- [PATCH v9 01/10] block: add persistent reservation in/out api, Changqi Lu, 2024/07/11
- [PATCH v9 02/10] block/raw: add persistent reservation in/out driver, Changqi Lu, 2024/07/11
- [PATCH v9 03/10] scsi/constant: add persistent reservation in/out protocol constants, Changqi Lu, 2024/07/11
- [PATCH v9 04/10] scsi/util: add helper functions for persistent reservation types conversion, Changqi Lu, 2024/07/11
- [PATCH v9 05/10] hw/scsi: add persistent reservation in/out api for scsi device, Changqi Lu, 2024/07/11
- [PATCH v9 07/10] hw/nvme: add helper functions for converting reservation types, Changqi Lu, 2024/07/11
- [PATCH v9 06/10] block/nvme: add reservation command protocol constants, Changqi Lu, 2024/07/11
- [PATCH v9 08/10] hw/nvme: enable ONCS and rescap function, Changqi Lu, 2024/07/11
- [PATCH v9 09/10] hw/nvme: add reservation protocal command, Changqi Lu, 2024/07/11