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.
signature.asc
Description: PGP signature