Skip to content

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 ==================================