日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

l298n电机驱动模块使用方法_SPDK virtio 驱动模块介绍及使用

發布時間:2025/3/11 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 l298n电机驱动模块使用方法_SPDK virtio 驱动模块介绍及使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
作者簡介閆亮 Intel高級軟件工程師專注于開源存儲SPDK的測試和優化

簡介

CONTENTS

SPDK ?virtio模塊介紹

SPDK ?virtio 用戶模式使用示例

SPDK ?virtio PCI模式使用示例

總結

第一章

SPDK virtio模塊介紹

眾所周知,Virtio協議定義了兩個塊設備驅動,virtio-blk和virtio-scsi。SPDK Vhost target提供了VM中virtio-blk/scsi半虛擬化IO請求的加速器,相比較原來的QEMU virtio-blk方案以及kernel vhost-scsi方案極大的提高了性能,VM內置的內核半虛擬化驅動即可使用。

現在SPDK在使用相同的vhost target基礎上,更進一步的提供了一個用戶態的virtio bdev模塊,有兩個傳輸層:

?* PCI:在VM中使用,該模塊提供了在VM中使用用戶態驅動訪問后端塊設備的能力,用戶需要卸載掉原內核的virtio-blk/scsi驅動,綁定virtio控制器到uio模塊

?* Vhost-user模式:提供進程間使用virtio-blk/scsi協議訪問vhost target的塊設備驅動,可以直接集成到用戶的獨立進程中使用,例如container。

目前SPDK virtio驅動模塊只實現了virtio 1.0 版本。

下圖是SPDK virtio整體介紹:

第二章?

SPDK virtio 用戶模式使用示例

SPDK virtio用戶模式的使用場景可以參考下圖:

如上圖所示,SPDK vhost socket和使用virtio塊設備的SPDK進程在同一臺機器。

參考步驟如下:

在host機器中,使用如下命令配置和編譯SPDK:

[root@]./configure --with-vhost --with-virtio && make啟動vhost主進程:

[root@] ./app/vhost/vhost -i 0

創建vhost controller,以下是vhost blk示例:

[root@]./scripts/rpc.py bdev_malloc_create 128 512

[root@]./scripts/rpc.py vhost_create_blk_controller vhostblk0 Malloc0

啟動spdk bdevperf進程:

[root@] ./test/bdev/bdevperf/bdevperf-q 128 -o 4096 -w randread -t 300 -z -r /var/tmp/newspdk.sock -m 0x2 -g

Vhost-user需要連續的內存,如果使用2MiB的hugepage時,注意要加-g參數,只創建一個hugetlbfs文件。因為是第二個進程,所以要加-r參數,創建新的rpc 監聽地址。同時要采用和vhost進程不同的core。

接著是創建virtio bdev:

[root@]./scripts/rpc.py? -s? /var/tmp/newspdk.sock?? bdev_virtio_attach_controller -t user -a /home/storage/spdk/vhostblk0 -d blk virtioblk0

這樣,就創建了user模式的virtio塊設備。

我們還可以運行bdevperf,測試一下virtio塊設備的性能:

[root@]PYTHONPATH=$PYTHONPATH:./scripts/? test/bdev/bdevperf/bdevperf.py -s/var/tmp/newspdk.sock? -t 1000perform_tests

經過五分鐘,bdevperf工具就會打印測試結果:

?Logical core: 1

?virtioblk0????????? : 1500453.10 IO/s??? 5861.14 MB/s

?=====================================================

?Total?????????????? : 1500453.10 IO/s??? 5861.14 MB/s

第三章

SPDK virtio PCI模式使用示例

PCI模式使用于虛擬機中。這種模式會避免QENU和虛擬機內核的中斷和上下文切換開銷,能夠顯著提高IO性能。經過驗證, 標準的SPDK vhost 和kernel vhost scsi都可以通過SPDK virtio PCI模式加速。官方qemu倉庫主分支代碼實現的virtio-blk PCI設備也可以使用SPDK virtio PCI模塊。

使用場景參考下圖:

示例步驟如下:

在host機器中,使用如下命令配置和編譯SPDK:

[root@]./configure --with-vhost && make

啟動vhost主進程:

[root@] ./app/vhost/vhost

創建vhost controller,以下是vhost blk示例:

[root@]./scripts/rpc.py bdev_malloc_create 128 512

[root@]./scripts/rpc.py vhost_create_blk_controller vhostblk0 Malloc0

運行如下命令啟動QEMU:

[root@]/home/storage/qemu/build/x86_64-softmmu/qemu-system-x86_64 -cpu host -smp 8 -m 10240 -object memory-backend-file,id=mem,size=10G,mem-path=/dev/hugepages,share=on -numa node,memdev=mem -drive file=/home/storage/fedora.qcow2,if=none,id=disk -device ide-hd,drive=disk,bootindex=0 -net user,hostfwd=tcp::10021-:22 -net nic -chardev socket,id=char0,path=/home/storage/spdk/vhostblk0 -device vhost-user-blk-pci,chardev=char0,id=blk0 -vnc 0.0.0.0:3 --enable-kvm

運行ssh命令登錄到虛擬機中:

[root@]ssh -p 10021 root@localhost

在虛擬機中克隆并配置spdk代碼:

[root@]git clone https://github.com/spdk/spdk

[root@]cd spdk && git submodule update --init

[root@]./configure --with-virtio && make

配置SPDK運行環境:

[root@]./scripts/setup.sh

運行spdk target:

[root@]./app/spdk_tgt/spdk_tgt &

創建virtio PCI模式塊設備:

[root@]./scripts/rpc.py?? bdev_virtio_attach_controller -t pci -a 00:04.0 -d blk virtioblk0

00:04.0是SPDK vhost設備在VM中的PCI bus number, 可以根據實際情況變更。這樣virtio塊設備就創建成功了。我們就可以在虛擬機中使用這個virtio 塊設備了。

我們還可以運行SPDK測試工具bdevperf直接測試virtio 塊設備。步驟如下。

如果使用配置文件的方式的話, 首先要創建bdev.conf文件,內容如下:

[VirtioPci]

Enable Yes

運行bdevperf命令, 參考命令如下:

[root@] ./test/bdev/bdevperf/bdevperf -c bdev.conf -q 128 -o 4096 -w randread -t 300

命令結果如下:

?Logical core: 0

?VirtioBlk0????????? : 1438365.17 IO/s??? 5618.61 MB/s

?=====================================================

?Total?????????????? : 1438365.17 IO/s??? 5618.61 MB/s

作為對比,我們可以運行bdevperf測試內核驅動virtio設備。創建bdev.conf:

[AIO]

AIO /dev/vda AIO0

運行bdevperf命令,參考命令如下:

[root@]./test/bdev/bdevperf/bdevperf -c bdev.conf -q 128 -o 4096 -w randread -t 300

命令結果如下:

?Logical core: 0

?AIO0??????????????? :? 254381.20 IO/s???? 993.68 MB/s

?=====================================================

?Total?????????????? :? 254381.20 IO/s???? 993.68 MB/s

第四章?

總結

下面的表格是三種運行方式的結果對比:

Bdevperf運行方式

SPDK virtio 用戶模式

SPDK virtio PCI模式

VM 內核AIO性能

隨機讀帶寬

1500453.10 IO/s???

1438365.17 IO/s???

254381.20 IO/s????

上面章節運行bdevperf采用的SPDKcommit是1b6d1c80f96dab381db066c9c5f7852ea327eb75。

初步性能實驗數據,僅供參考,更多官方數據,參考https://spdk.io/doc/相關性能測試報告。大家如果想深入了解SPDK virtio驅動,可以聯系SPDK 社區。?

? ? 轉載須知 ??

DPDK與SPDK開源社區公眾號文章轉載聲明

推薦閱讀?

SPDK線程模型解析試試SPDK的trace

在虛擬機上部署SPDK NVME測試案例

總結

以上是生活随笔為你收集整理的l298n电机驱动模块使用方法_SPDK virtio 驱动模块介绍及使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。