在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于VFIO的詳細(xì)研究解析

Linux閱碼場 ? 來源:博客園 ? 作者:EwanHai ? 2021-05-02 11:20 ? 次閱讀

主要研究VFIO在虛擬化中的應(yīng)用,但VFIO的應(yīng)用不止于虛擬化。

VFIO的全稱是Virtual Function IO,但這個(gè)名字并不能反應(yīng)它的特點(diǎn),以下兩個(gè)假名字更能反應(yīng)VFIO的特點(diǎn):

Very Fast IO

由于VFIO是將設(shè)備直接透傳給虛擬機(jī),所以Guest中與該設(shè)備相關(guān)的IO性能會(huì)大幅提高,接近native性能。

Versatile Framework for userspace IO

這個(gè)名字反映了VFIO的功能,即能夠?qū)evice安全地映射到用戶空間,使用戶能夠?qū)evice進(jìn)行操作。

研究目的

研究利用-device vfio-pci的方式將PCI透傳到虛擬機(jī)中后,在虛擬機(jī)中訪問PCI設(shè)備的配置空間,MMIO寄存器,IO Port的流程是怎樣的。

VFIO原理

VFIO把設(shè)備通過IOMMU映射的DMA物理內(nèi)存地址映射到用戶態(tài)中,讓用戶態(tài)程序可以自行操縱數(shù)據(jù)的傳輸,還可以自行注冊中斷處理函數(shù),從而在用戶態(tài)下實(shí)現(xiàn)設(shè)備的驅(qū)動(dòng)程序。

因此VFIO的基礎(chǔ)是IOMMU.

IOMMU

基礎(chǔ)功能

地址翻譯

IOMMU可以將能直接訪問memory的IO總線(DMA–capable)連接到RAM中。

與傳統(tǒng)的MMU功能類似,MMU能將CPU使用的虛擬地址轉(zhuǎn)化為物理地址,而IOMMU能將device使用的虛擬地址(也稱為設(shè)備地址或者IO地址)轉(zhuǎn)化為物理地址。

如果沒有IOMMU,DMA也能直接訪問RAM中的內(nèi)容,但是讓DMA沒有限制地訪問RAM是一件很危險(xiǎn)的事情,而IOMMU能夠?qū)@個(gè)過程加以限制,當(dāng)DMA訪問的地址合法時(shí),IOMMU才返回正確的數(shù)據(jù)。

硬件中斷重映射

除了翻譯地址的功能,IOMMU還能對(duì)硬件中斷進(jìn)行重映射,達(dá)到屏蔽部分中斷,或自定義中斷處理函數(shù)的目的。

設(shè)備隔離

基于地址翻譯和硬件中斷重映射兩大功能,IOMMU就具有了隔離設(shè)備的能力,這提高了設(shè)備訪問RAM時(shí)和設(shè)備發(fā)出中斷時(shí)的安全性。

除了將單個(gè)設(shè)備隔離的功能外,IOMMU還能隔離一組設(shè)備,如隔離PCI橋上的幾個(gè)設(shè)備,所以IOMMU還有一個(gè)概念,叫做IOMMU_GROUP, 代表一組被隔離的設(shè)備的集合。

通過把host的device和對(duì)應(yīng)driver解綁,然后綁定在VFIO的driver上,就會(huì)在/dev/vfio/目錄下出現(xiàn)一個(gè)group,這個(gè)group就是IOMMU_GROUP號(hào),如果需要在該group上使用VFIO,需要將該group下的所有device與其對(duì)應(yīng)的驅(qū)動(dòng)解綁。

VFIO Container

在IOMMU_GROUP的基礎(chǔ)上,VFIO封裝了一層Container Class,Container的作用是,當(dāng)我們想在不同的IOMMU_GROUP之間共享TLB和page tables(用于地址翻譯的頁表)時(shí),就將這些group放到同一個(gè)container中,因此Container可以看做是IOMMU_GROUP的集合。

虛擬化中VFIO的應(yīng)用

這里演示一個(gè)將網(wǎng)卡設(shè)備利用VFIO透傳到虛擬機(jī)中的例子。需要注意的是,利用VFIO將PCI設(shè)備透傳到虛擬機(jī)之后,Host將無法使用該設(shè)備。

虛擬機(jī)默認(rèn)網(wǎng)卡

首先利用默認(rèn)qemu選項(xiàng)啟動(dòng)虛擬機(jī)后,查看lspci的輸出,看看虛擬機(jī)默認(rèn)使用的網(wǎng)卡是什么?

11c76f90-9e23-11eb-8b86-12bb97331649.png

可以看到虛擬機(jī)默認(rèn)的網(wǎng)卡是Intel的82540EM,是由Qemu-kvm軟件模擬出來的一款網(wǎng)卡。

將Host的PCI網(wǎng)卡透傳到虛擬機(jī)

首先在Host上使用lspci查看擁有的PCI網(wǎng)卡型號(hào),可以看到Realtek的一款網(wǎng)卡,該網(wǎng)卡的PCI標(biāo)記為06:00.0.

11d31ac0-9e23-11eb-8b86-12bb97331649.png

要使用VFIO,必須在Linux啟動(dòng)時(shí)添加啟動(dòng)項(xiàng)intel_iommu=on,因?yàn)閂FIO的底層依賴IOMMU.

加載VFIO-PCI module

sudo modprobe vfio-pci

如果加載成功,可以在dmesg中看到相關(guān)log.

11ff38da-9e23-11eb-8b86-12bb97331649.png

查看網(wǎng)卡所在的IOMMU Group

$ readlink /sys/bus/pci/devices/000000.0/iommu_group.。/.。/.。/.。/kernel/iommu_groups/3

可以看到該Realtek網(wǎng)卡位于iommu_group的group3.

查看設(shè)備所在iommu_group的所有設(shè)備

$ ls /sys/bus/pci/devices/000000.0/iommu_group/devices/000005.0 000005.1 000000.0

可以看到在iommu_group3中,除了該Realtek網(wǎng)卡,還有2個(gè)設(shè)備。

將設(shè)備與對(duì)應(yīng)的驅(qū)動(dòng)解綁

為了將設(shè)備透傳到虛擬機(jī)中,需要將設(shè)備與其對(duì)應(yīng)的驅(qū)動(dòng)解綁,這樣該設(shè)備就可以使用VFIO的驅(qū)動(dòng)了。注意,不僅要將要透傳的設(shè)備解綁,還要將與設(shè)備同iommu_group的設(shè)備都解綁,才能透傳成功。

$ echo 000000.0 | sudo tee /sys/bus/pci/devices/000000.0/driver/unbind000000.0$ echo 000005.0 | sudo tee /sys/bus/pci/devices/000005.0/driver/unbind000005.0 $ echo 000005.1 sudo tee /sys/bus/pci/devices/000005.1/driver/unbind000005.1

查看設(shè)備的Vendor和DeviceID

$ lspci -n -s 06:00.0 06:00.0 0200: 10ec:8168 (rev 15)

可以看到該Realtek網(wǎng)卡的Vendor為10ec,DeviceID為8168.

將設(shè)備綁定到vfio-pci module

$ echo 10ec 8168 | sudo tee /sys/bus/pci/drivers/vfio-pci/new_id10ec 8168

可以通過ls /dev/vfio查看是否綁定成功,如果綁定成功,/dev/vfio目錄下會(huì)出現(xiàn)該device所屬的iommu_group號(hào)。

121b8a6c-9e23-11eb-8b86-12bb97331649.png

這里的3就是我們要透傳的Realtek網(wǎng)卡所在的iommu_group號(hào)。

啟動(dòng)虛擬機(jī)

$ sudo x86_64-softmmu/qemu-system-x86_64 -m 4096 -smp 4 -hda ~/ewan/Workspace/img/Ubuntu18.04_loop.img-enable-kvm -cpu host -device vfio-pci,host=06:00.0

這里我使用的是從源碼編譯的qemu,但是從apt-get安裝的的qemu也是可以的。

進(jìn)入guest之后運(yùn)行l(wèi)spci,可以看到相比之前的PCI設(shè)備,多了一個(gè)Realtek網(wǎng)卡,這個(gè)網(wǎng)卡和host上的信息一模一樣,證明將網(wǎng)卡透傳到Guest成功!。

1224b880-9e23-11eb-8b86-12bb97331649.png

編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • dma
    dma
    +關(guān)注

    關(guān)注

    3

    文章

    566

    瀏覽量

    100972
  • 虛擬機(jī)
    +關(guān)注

    關(guān)注

    1

    文章

    946

    瀏覽量

    28436
  • guest
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    3262

原文標(biāo)題:VFIO(Virtual Function IO)研究

文章出處:【微信號(hào):LinuxDev,微信公眾號(hào):Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    國外物理服務(wù)器詳細(xì)解析

    國外物理服務(wù)器是指位于國外數(shù)據(jù)中心的物理設(shè)備,用于提供互聯(lián)網(wǎng)服務(wù)。以下是對(duì)國外物理服務(wù)器的詳細(xì)解析,主機(jī)推薦小編為您整理發(fā)布國外物理服務(wù)器詳細(xì)解析
    的頭像 發(fā)表于 02-07 09:36 ?48次閱讀

    EtherCAT通訊協(xié)議詳細(xì)解析

    Automation GmbH)研發(fā)。EtherCAT自2003年被引入市場以來,憑借其高性能、低延遲和靈活的拓?fù)浣Y(jié)構(gòu),迅速成為工業(yè)自動(dòng)化領(lǐng)域的重要通信技術(shù)之一。本文將對(duì)EtherCAT通訊協(xié)議進(jìn)行詳細(xì)解析,包括其概述、工作原理、拓?fù)浣Y(jié)構(gòu)、協(xié)議格式、尋址方式及命令類型等
    的頭像 發(fā)表于 02-02 16:34 ?154次閱讀

    硅谷云平臺(tái)詳細(xì)解析

     硅谷云平臺(tái)作為硅谷地區(qū)領(lǐng)先的云計(jì)算服務(wù)提供商,在數(shù)字化時(shí)代發(fā)揮著舉足輕重的作用。主機(jī)推薦小編為您整理發(fā)布硅谷云平臺(tái)的詳細(xì)解析
    的頭像 發(fā)表于 01-24 09:24 ?86次閱讀

    多c段站群服務(wù)器詳細(xì)解析

    多C段站群服務(wù)器是一種特殊配置的服務(wù)器,主要用于多站點(diǎn)管理和分布式網(wǎng)絡(luò)操作。主機(jī)推薦小編為您整理發(fā)布多C段站群服務(wù)器的詳細(xì)解析
    的頭像 發(fā)表于 01-23 09:38 ?57次閱讀

    衍射級(jí)次偏振態(tài)的研究

    分析提供了通用和方便的工具。為此,復(fù)雜的一維或二維周期結(jié)構(gòu)可以使用界面和調(diào)制介質(zhì)進(jìn)行配置,這允許任何類型的光柵形貌進(jìn)行自由的配置。在此用例中,詳細(xì)討論了衍射級(jí)次的偏振態(tài)的研究。 任務(wù)說明 簡要介紹
    發(fā)表于 01-11 08:55

    【教程】DNS域名解析服務(wù)systemd-resolved使用指南

    1.關(guān)于DNS解析服務(wù)DNS(DomainNameSystem),即域名系統(tǒng)。一句話總結(jié)DNS解析服務(wù)功能就是,將域名轉(zhuǎn)換為IP地址。DNS解析服務(wù)過程中有如下幾個(gè)角色參與:?待
    的頭像 發(fā)表于 01-09 19:34 ?215次閱讀
    【教程】DNS域名<b class='flag-5'>解析</b>服務(wù)systemd-resolved使用指南

    衍射級(jí)次偏振態(tài)的研究

    分析提供了通用和方便的工具。為此,復(fù)雜的一維或二維周期結(jié)構(gòu)可以使用界面和調(diào)制介質(zhì)進(jìn)行配置,這允許任何類型的光柵形貌進(jìn)行自由的配置。在此用例中,詳細(xì)討論了衍射級(jí)次的偏振態(tài)的研究。 任務(wù)說明 簡要介紹
    發(fā)表于 12-25 15:39

    衍射級(jí)次偏振態(tài)的研究

    分析提供了通用和方便的工具。為此,復(fù)雜的一維或二維周期結(jié)構(gòu)可以使用界面和調(diào)制介質(zhì)進(jìn)行配置,這允許任何類型的光柵形貌進(jìn)行自由的配置。在此用例中,詳細(xì)討論了衍射級(jí)次的偏振態(tài)的研究。 任務(wù)說明 簡要介紹
    發(fā)表于 12-18 13:45

    4G模組Air780E的LuatOS開發(fā)之位運(yùn)算(bit)示例

    本文我要說的是低功耗4G模組Air780E的LuatOS開發(fā),關(guān)于位運(yùn)算(bit)示例,我將詳細(xì)解析分享給大家。
    的頭像 發(fā)表于 12-02 14:33 ?228次閱讀
    4G模組Air780E的LuatOS開發(fā)之位運(yùn)算(bit)示例

    深度解析 4G模組GPIO編程技巧篇

    本文將解析4G模組GPIO編程技巧,從概述、軟硬件環(huán)境準(zhǔn)備、示例等詳細(xì)道來:
    的頭像 發(fā)表于 11-20 23:08 ?280次閱讀
    深度<b class='flag-5'>解析</b>  4G模組GPIO編程技巧篇

    TSMI252012PMX-3R3MT功率電感詳細(xì)解析

    TSMI252012PMX-3R3MT功率電感詳細(xì)解析 一、引言 在現(xiàn)代電子設(shè)備的不斷小型化和高性能化的趨勢下,功率電感作為電路中的關(guān)鍵元件,其性能的好壞直接影響到整個(gè)電路的穩(wěn)定性和效率
    的頭像 發(fā)表于 11-04 17:57 ?447次閱讀
    TSMI252012PMX-3R3MT功率電感<b class='flag-5'>詳細(xì)</b><b class='flag-5'>解析</b>

    自動(dòng)售貨機(jī)MDB協(xié)議中文解析(七)MDB-RS232控制紙幣器的詳細(xì)流程和解析

    自動(dòng)售貨機(jī)MDB協(xié)議中文解析(七)MDB-RS232控制紙幣器的詳細(xì)流程和解析
    的頭像 發(fā)表于 09-09 10:04 ?712次閱讀

    頻率特性測試儀的詳細(xì)解析

    將對(duì)頻率特性測試儀進(jìn)行全面詳細(xì)解析,包括其定義、工作原理、應(yīng)用領(lǐng)域、類型以及特點(diǎn)等方面,以期為讀者提供全面的了解和認(rèn)識(shí)。
    的頭像 發(fā)表于 05-21 17:59 ?1618次閱讀

    波形發(fā)生器的詳細(xì)解析

    在電子工程、通信、教育與研究等多個(gè)領(lǐng)域中,波形發(fā)生器都扮演著不可或缺的角色。它作為一種重要的電子測試設(shè)備,可以產(chǎn)生各種類型、頻率、幅度和相位的電子信號(hào),為各種電子設(shè)備和系統(tǒng)的測試、測量、校準(zhǔn)和研究
    的頭像 發(fā)表于 05-15 14:39 ?1602次閱讀

    蓄電池內(nèi)阻測試儀的詳細(xì)解析

    設(shè)備,能夠快速準(zhǔn)確地測量蓄電池的健康狀態(tài)和荷電狀態(tài),為蓄電池的維護(hù)和管理提供了有力的支持。本文將對(duì)蓄電池內(nèi)阻測試儀的原理、功能、使用方法、應(yīng)用場景以及優(yōu)缺點(diǎn)進(jìn)行詳細(xì)解析
    的頭像 發(fā)表于 05-14 17:15 ?1388次閱讀
    主站蜘蛛池模板: 久久性感美女视频 | 视频黄色免费 | www视频在线观看com | 男人边吃奶边爱边做视频日韩 | 欧美美女一区二区三区 | 高清视频在线播放 | 506rr亚洲欧美 | 不卡一级毛片免费高清 | 免费看污黄视频软件 | avhd101天天看新片 | 天天摸天天干 | 亚洲欧美综合一区 | 国产福利资源在线 | 午夜影院普通用户体验区 | 亚洲伊人久久大香线蕉结合 | 亚洲成人在线电影 | 日本视频www | 国产高清免费在线 | 国产女同视频 | 亚洲国产成人在线 | 好男人社区www的视频免费 | 日韩三级一区 | 一本久草 | 天天夜夜人人 | 国产精品福利视频手机免费观看 | 男人j桶女人j免费视频 | 天天插天天射天天操 | 亚洲国产精品日韩专区avtube | 成人黄色一级片 | 美女视频一区二区三区 | 天天色综合6 | 亚洲欧洲无码一区二区三区 | 美女扒开尿口给男人爽的视频 | 被暗卫肉高h | 大量真实偷拍情侣视频野战 | 午夜毛片网站 | 日本最色网站 | 亚洲人成网站色7799在线观看 | 欧美性a欧美在线 | 在线麻豆国产传媒60在线观看 | 色综久久 |