forked from pynvme/pynvme
-
Notifications
You must be signed in to change notification settings - Fork 0
Namespace
Crane Chu edited this page May 11, 2020
·
6 revisions
发送一个IO命令,需要Buffer,Qpair,Namespace。我们已经看过前面两个类,现在轮到Namespace了。通过Namepsace类,脚本可以向某个Namespace发出IO命令,当然也可以同时向多个Namespace发送IO命令。这里是一个例子。
def test_namespace_multiple(buf):
# create all controllers and namespace
addr_list = [b'3d:00.0']
nvme_list = [d.Controller(a) for a in addr_list]
for nvmex in nvme_list:
qpair = d.Qpair(nvmex, 8)
nvmexn1 = d.Namespace(nvmex)
#Check if support write uncorrectable command
wuecc_support = nvmex.id_data(521, 520) & 0x2
if wuecc_support != 0:
nvmexn1.write_uncorrectable(qpair, 0, 8).waitdone()
with pytest.warns(UserWarning, match="ERROR status: 02/81"):
nvmexn1.read(qpair, buf, 0, 8).waitdone()
nvmexn1.write(qpair, buf, 0, 8).waitdone()
nvmexn1.read(qpair, buf, 0, 8).waitdone()
laptop:~/pynvme▶ sudo python3 -m pytest scripts/cookbook.py::test_namespace_multiple -s
================================= test session starts =================================
platform linux -- Python 3.8.2, pytest-5.4.1, py-1.8.1, pluggy-0.13.1
rootdir: /home/cranechu/pynvme, inifile: pytest.ini
plugins: cov-2.8.1
collected 1 item
scripts/cookbook.py::test_namespace_multiple
----------------------------------- live log setup ------------------------------------
[2020-05-11 11:29:13.810] INFO script(68): setup random seed: 0xf3745144
[2020-05-11 11:29:13.816045] INFO driver.c(633) probe_cb: Attaching to NVMe Controller at 0000:3d:00.0
[2020-05-11 11:29:13.816804] INFO intr_mgt.c(174) msix_intc_init: vector_num 19
[2020-05-11 11:29:14.662563] NOTICE nvme_qpair.c(132) nvme_io_qpair_print_command: READ sqid:1 cid:5 nsid:1 lba:0 len:8
[2020-05-11 11:29:14.662602] NOTICE nvme_qpair.c(303) spdk_nvme_qpair_print_completion: UNRECOVERED READ ERROR (02/81) sqid:1 cid:5 cdw0:0 sqhd:0002 p:1 m:0 dnr:1
PASSED
---------------------------------- live log teardown ----------------------------------
[2020-05-11 11:29:15.400] INFO script(70): test duration: 1.590 sec
================================== 1 passed in 1.62s ==================================