On Aug  6 04:56, 卢长奇 wrote:
> Hi;
> 
> Klaus, Does the test method in the above email work properly?
> 

I assume it will; I was on conference and was catching up all of last
week.

I'll take action on this this week.

> On 2024/7/26 17:53, 卢长奇 wrote:
> > Hi;
> >
> > You can test it in spdk.
> > First start spdk and execute the following command.
> >
> > ```
> > dd if=/dev/zero of=test.img bs=1G count=10
> > RPC=/root/source/spdk/spdk/scripts/rpc.py
> > FILE=/root/test.img
> >
> > $RPC bdev_aio_create $FILE aio0 512
> > $RPC iscsi_create_portal_group 1 127.0.0.1:3260
> > $RPC iscsi_create_initiator_group 2 ANY ANY
> > $RPC iscsi_create_target_node target0 target0_alias aio0:0 1:2 64 -d
> > ```
> >
> > Then start qemu and mount an nvme disk.
> > Execute the following test command.
> > ```
> > #reporter
> > nvme resv-report /dev/nvme0n1
> > #register
> > nvme resv-register /dev/nvme0n1 --nrkey 3 --rrega 0
> > #unregister
> > nvme resv-register /dev/nvme0n1 --crkey 3 --rrega 1
> > # register replace
> > nvme resv-register /dev/nvme0n1 --crkey 3 --nrkey 5 --rrega 2
> > #release
> > nvme resv-release /dev/nvme0n1 --crkey 5 --rtype 1 --rrela 0
> > #clear
> > nvme resv-release /dev/nvme0n1 --crkey 5 --rtype 1 --rrela 1
> > #reserve
> > nvme resv-acquire /dev/nvme0n1 --crkey 3 --rtype 1 --racqa 0
> > #premmpt
> > nvme resv-acquire /dev/nvme0n1 --crkey 6 --prkey 3 --rtype 1 --racqa 1
> > ```
> >
> >
> >
> > On 2024/7/26 14:25, Klaus Jensen wrote:
> >> On Jul 25 19:42, 卢长奇 wrote:
> >>> Hi,
> >>>
> >>> ```
> >>> 2685 nvme_status->regctl_ds[i].cntlid = nvme_ctrl(req)->cntlid;
> >>> 2686 nvme_status->regctl_ds[i].rkey = keys_info->keys[i];
> >>> 2687 nvme_status->regctl_ds[i].rcsts = keys_info->keys[i] ==
> >>> 2688 reservation->key ? 1 : 0;
> >>> 2689 /* hostid is not supported currently */
> >>> 2670 memset(&nvme_status->regctl_ds[i].hostid, 0, 8);
> >>> ```
> >>>
> >>> Klaus, I think hostid(2685) is stored locally like cntlid, i
> >>> can get cntlid by nvme_ctrl(req)->cntlid, but I can't
> >>> find a good way to get the host ID(2670). So I add a comment
> >>> "/* hostid is not supported currently */". Could you give me
> >>> some advices?
> >>>
> >>
> >> The Host Identifier is just a 64 or 128 bit value that the host can set
> >> with Set Feature. So, it is fine (and normal) that the value is
> >> initially zero, but the host should be able to set it on controllers
> >> with Set Feature to indicate if a controller belongs to the same host or
> >> not.
> >>
> >>> And using spdk as target will not fail, but it will show 0 at hostid
> >>> at present.
> >>
> >> Host Identifier 0 is a valid value when used with reservations; 0
> >> indicates that the host associated with the controller is not associated
> >> with any other controllers in the subsystem. So if two controllers have
> >> Host Identifier set to 0, that implicitly mean they are associated with
> >> two different hosts.
> >>
> >>> The relevant tests in qemu are as follows,
> >>>
> >>> ```
> >>> root@node1:~# nvme resv-report /dev/nvme0n1
> >>> NVME Reservation Report success
> >>>
> >>> NVME Reservation status:
> >>>
> >>> gen : 1
> >>> regctl : 1
> >>> rtype : 0
> >>> ptpls : 0
> >>> regctl[0] :
> >>> cntlid : 0
> >>> rcsts : 0
> >>> hostid : 0
> >>> rkey : 6
> >>> ```
> >>
> >> I was hoping for an example on how to setup some simple iscsi stuff so I
> >> could test the feature.

-- 
One of us - No more doubt, silence or taboo about mental illness.

Attachment: signature.asc
Description: PGP signature

Reply via email to