Nvme-Cli使用心得(二) Read/Write測試經驗

1.Write

    首先看Write命令的官方說明:

nvme-write <device> [--start-block=<slba> | -s <slba>]
                        [--block-count=<nlb> | -c <nlb>]
                        [--data-size=<size> | -z <size>]
                        [--metadata-size=<size> | -y <size>]
                        [--ref-tag=<reftag> | -r <reftag>]
                        [--data=<data-file> | -d <data-file>]
                        [--metadata=<metadata-file> | -M <metadata-file>]
                        [--prinfo=<prinfo> | -p <prinfo>]
                        [--app-tag-mask=<appmask> | -m <appmask>]
                        [--app-tag=<apptag> | -a <apptag>]
                        [--limited-retry | -l]
                        [--force-unit-access | -f]
                        [--dir-type=<type> | -T <type>]
                        [--dir-spec=<spec> | -S <spec>]
                        [--dsm=<dsm> | -D <dsm>]
                        [--show-command | -v]
                        [--dry-run | -w]
                        [--latency | -t]

    其中Start LBA,讀取block的數量,讀取的data-size的大小比較重要,其他信息可以看官方說明:https://www.mankier.com/1/nvme-write

    這裏我們如果要查看讀取的數據的話,那還需要使用date-file參數。比如這裏我們想從nand寫10個block的數據(這裏設定一個block的大小爲4K),並且將讀取數據進行觀察的話,那麼使用如下命令即可:

sudo nvme write /dev/nvme0n1 -s 0 -c 10 -z 40980 -d examples.desktop

*:爲了方便觀察這裏我們使用了ubantu的桌面文件example.desktop,可以自訂。

  提示Wrtie: Success後就表明寫成功。

 

2.Read

    先來看Read的官方說明:

nvme-read <device> [--start-block=<slba> | -s <slba>]
                        [--block-count=<nlb> | -c <nlb>]
                        [--data-size=<size> | -z <size>]
                        [--metadata-size=<size> | -y <size>]
                        [--ref-tag=<reftag> | -r <reftag>]
                        [--data=<data-file> | -d <data-file>]
                        [--metadata=<metadata-file> | -M <metadata-file>]
                        [--prinfo=<prinfo> | -p <prinfo>]
                        [--app-tag-mask=<appmask> | -m <appmask>]
                        [--app-tag=<apptag> | -a <apptag>]
                        [--limited-retry | -l]
                        [--force-unit-access | -f]
                        [--dir-type=<type> | -T <type>]
                        [--dir-spec=<spec> | -S <spec>]
                        [--dsm=<dsm> | -D <dsm>]
                        [--show-command | -v]
                        [--dry-run | -w]
                        [--latency | -t]

    其中Start LBA,讀取block的數量,讀取的data-size的大小比較重要,其他信息可以看官方說明:https://www.mankier.com/1/nvme-read

--start-block=<slba>, -s <slba>
Start block.

--block-count, -c
The number of blocks to transfer. This is a zeroes based value to align with the kernel’s use of this field. (ie. 0 means transfer 1 block).

--data-size=<size>, -z <size>
Size of data, in bytes.

    這裏我們如果要查看讀取的數據的話,那還需要使用date-file參數。比如這裏我們想從nand讀10個block的數據(這裏設定一個block的大小爲4K),並且將讀取數據進行觀察的話,那麼使用如下命令即可:   

sudo nvme read /dev/nvme0n1 -s 0 -c 10 -z 40960 -d read_1.txt 

這樣,host就會從nand讀取40960byte的數據,並將這些數據顯示在read_1.txt中。

3. 測試Write/Read的功能是否正常

    在完成上述操作之後, 使用vim進行觀察

vimdiff examples.desktop read_1.txt

     對讀寫的數據進行對比

    左右一樣,表明讀寫功能完全正常。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章