On Thu, Jun 06, 2024 at 08:24:34PM +0800, Changqi Lu wrote: > Hi, > > patchv5 has been modified. > > Sincerely hope that everyone can help review the > code and provide some suggestions. > > 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
My question from v1 is unanswered: What is the relationship to the existing PRManager functionality (docs/interop/pr-helper.rst) where block/file-posix.c interprets SCSI ioctls and sends persistent reservation requests to an external helper process? I wonder if block/file-posix.c can implement the new block driver callbacks using pr_mgr (while keeping the existing scsi-generic support). Thanks, Stefan > > > 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 | 397 ++++++++++++++++++++++++++ > block/io.c | 163 +++++++++++ > block/iscsi.c | 443 ++++++++++++++++++++++++++++++ > block/raw-format.c | 56 ++++ > hw/nvme/ctrl.c | 326 +++++++++++++++++++++- > hw/nvme/ns.c | 5 + > hw/nvme/nvme.h | 84 ++++++ > hw/scsi/scsi-disk.c | 352 ++++++++++++++++++++++++ > include/block/block-common.h | 40 +++ > include/block/block-io.h | 20 ++ > include/block/block_int-common.h | 84 ++++++ > include/block/nvme.h | 98 +++++++ > include/scsi/constants.h | 52 ++++ > include/scsi/utils.h | 8 + > include/sysemu/block-backend-io.h | 24 ++ > scsi/utils.c | 81 ++++++ > 16 files changed, 2231 insertions(+), 2 deletions(-) > > -- > 2.20.1 >
signature.asc
Description: PGP signature