On Mon, Jun 10, 2024 at 07:55:20PM -0700, 卢长奇 wrote: > Hi, > > Sorry, I explained it in patch2 and forgot to reply your email. > > 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.
Thanks for explaining! Stefan > > On 2024/6/11 01:18, Stefan Hajnoczi wrote: > > 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