色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于VFIO的詳細研究解析

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

主要研究VFIO在虛擬化中的應用,但VFIO的應用不止于虛擬化。

VFIO的全稱是Virtual Function IO,但這個名字并不能反應它的特點,以下兩個假名字更能反應VFIO的特點:

Very Fast IO

由于VFIO是將設備直接透傳給虛擬機,所以Guest中與該設備相關的IO性能會大幅提高,接近native性能。

Versatile Framework for userspace IO

這個名字反映了VFIO的功能,即能夠將device安全地映射到用戶空間,使用戶能夠對device進行操作。

研究目的

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

VFIO原理

VFIO把設備通過IOMMU映射的DMA物理內存地址映射到用戶態中,讓用戶態程序可以自行操縱數據的傳輸,還可以自行注冊中斷處理函數,從而在用戶態下實現設備的驅動程序。

因此VFIO的基礎是IOMMU.

IOMMU

基礎功能

地址翻譯

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

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

如果沒有IOMMU,DMA也能直接訪問RAM中的內容,但是讓DMA沒有限制地訪問RAM是一件很危險的事情,而IOMMU能夠對這個過程加以限制,當DMA訪問的地址合法時,IOMMU才返回正確的數據。

硬件中斷重映射

除了翻譯地址的功能,IOMMU還能對硬件中斷進行重映射,達到屏蔽部分中斷,或自定義中斷處理函數的目的。

設備隔離

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

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

通過把host的device和對應driver解綁,然后綁定在VFIO的driver上,就會在/dev/vfio/目錄下出現一個group,這個group就是IOMMU_GROUP號,如果需要在該group上使用VFIO,需要將該group下的所有device與其對應的驅動解綁。

VFIO Container

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

虛擬化中VFIO的應用

這里演示一個將網卡設備利用VFIO透傳到虛擬機中的例子。需要注意的是,利用VFIO將PCI設備透傳到虛擬機之后,Host將無法使用該設備。

虛擬機默認網卡

首先利用默認qemu選項啟動虛擬機后,查看lspci的輸出,看看虛擬機默認使用的網卡是什么?

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

可以看到虛擬機默認的網卡是Intel的82540EM,是由Qemu-kvm軟件模擬出來的一款網卡。

將Host的PCI網卡透傳到虛擬機

首先在Host上使用lspci查看擁有的PCI網卡型號,可以看到Realtek的一款網卡,該網卡的PCI標記為06:00.0.

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

要使用VFIO,必須在Linux啟動時添加啟動項intel_iommu=on,因為VFIO的底層依賴IOMMU.

加載VFIO-PCI module

sudo modprobe vfio-pci

如果加載成功,可以在dmesg中看到相關log.

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

查看網卡所在的IOMMU Group

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

可以看到該Realtek網卡位于iommu_group的group3.

查看設備所在iommu_group的所有設備

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

可以看到在iommu_group3中,除了該Realtek網卡,還有2個設備。

將設備與對應的驅動解綁

為了將設備透傳到虛擬機中,需要將設備與其對應的驅動解綁,這樣該設備就可以使用VFIO的驅動了。注意,不僅要將要透傳的設備解綁,還要將與設備同iommu_group的設備都解綁,才能透傳成功。

$ 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

查看設備的Vendor和DeviceID

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

可以看到該Realtek網卡的Vendor為10ec,DeviceID為8168.

將設備綁定到vfio-pci module

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

可以通過ls /dev/vfio查看是否綁定成功,如果綁定成功,/dev/vfio目錄下會出現該device所屬的iommu_group號。

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

這里的3就是我們要透傳的Realtek網卡所在的iommu_group號。

啟動虛擬機

$ 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也是可以的。

進入guest之后運行lspci,可以看到相比之前的PCI設備,多了一個Realtek網卡,這個網卡和host上的信息一模一樣,證明將網卡透傳到Guest成功!。

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

編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dma
    dma
    +關注

    關注

    3

    文章

    561

    瀏覽量

    100622
  • 虛擬機
    +關注

    關注

    1

    文章

    918

    瀏覽量

    28228
  • guest
    +關注

    關注

    0

    文章

    3

    瀏覽量

    3251

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

文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    衍射級次偏振態的研究

    分析提供了通用和方便的工具。為此,復雜的一維或二維周期結構可以使用界面和調制介質進行配置,這允許任何類型的光柵形貌進行自由的配置。在此用例中,詳細討論了衍射級次的偏振態的研究。 任務說明 簡要介紹
    發表于 12-25 15:39

    衍射級次偏振態的研究

    分析提供了通用和方便的工具。為此,復雜的一維或二維周期結構可以使用界面和調制介質進行配置,這允許任何類型的光柵形貌進行自由的配置。在此用例中,詳細討論了衍射級次的偏振態的研究。 任務說明 簡要介紹
    發表于 12-18 13:45

    4G模組Air780E的LuatOS開發之位運算(bit)示例

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

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

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

    TSMI252012PMX-3R3MT功率電感詳細解析

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

    TSMI252012PMX-R47MT貼片功率電感詳細解析

    TSMI252012PMX-R47MT貼片功率電感詳細解析 一、引言 在現代電子技術的迅猛發展背景下,電感器作為電路系統中的核心元件,其性能的穩定性和可靠性對于整個電路的運行至關重要。由深圳市時源芯
    的頭像 發表于 11-04 17:05 ?238次閱讀
    TSMI252012PMX-R47MT貼片功率電感<b class='flag-5'>詳細</b><b class='flag-5'>解析</b>

    ZCAN PRO解析的DBC Singal 起始位與XNET解析的起始位不同;解析的信號不符合大端邏輯

    上圖中的DBC文件使用記事本打開,Data_Field信號,起始位為23,長度為48,大端方式存儲;(按照這個方式存儲,明顯已經溢出) 上圖為該信號在ZCANPRO軟件中打開,解析的起始位為23
    發表于 10-18 13:53

    薄膜發電技術到底是什么_薄膜發電最忌三種東西

    薄膜發電技術是一種先進的能源轉換技術,它主要依靠具有輕、薄、柔特點的薄膜太陽能電池芯片來提供清潔電力。以下是關于薄膜發電技術的詳細解析
    的頭像 發表于 10-03 16:26 ?469次閱讀

    自動售貨機MDB協議中文解析(七)MDB-RS232控制紙幣器的詳細流程和解析

    自動售貨機MDB協議中文解析(七)MDB-RS232控制紙幣器的詳細流程和解析
    的頭像 發表于 09-09 10:04 ?602次閱讀

    深度神經網絡(DNN)架構解析與優化策略

    堆疊多個隱藏層,逐步提取和轉化輸入數據的特征,最終實現復雜的預測和分類任務。本文將對DNN的架構進行詳細解析,并探討其優化策略,以期為相關研究和應用提供參考。
    的頭像 發表于 07-09 11:00 ?1918次閱讀

    頻率特性測試儀的詳細解析

    將對頻率特性測試儀進行全面詳細解析,包括其定義、工作原理、應用領域、類型以及特點等方面,以期為讀者提供全面的了解和認識。
    的頭像 發表于 05-21 17:59 ?1464次閱讀

    波形發生器的詳細解析

    在電子工程、通信、教育與研究等多個領域中,波形發生器都扮演著不可或缺的角色。它作為一種重要的電子測試設備,可以產生各種類型、頻率、幅度和相位的電子信號,為各種電子設備和系統的測試、測量、校準和研究
    的頭像 發表于 05-15 14:39 ?1450次閱讀

    蓄電池內阻測試儀的詳細解析

    設備,能夠快速準確地測量蓄電池的健康狀態和荷電狀態,為蓄電池的維護和管理提供了有力的支持。本文將對蓄電池內阻測試儀的原理、功能、使用方法、應用場景以及優缺點進行詳細解析
    的頭像 發表于 05-14 17:15 ?1233次閱讀

    求助,關于串口數據解析疑問求解

    現在手上有一個串口模塊要開發,比較復雜, 功能:接收各種類型不定長度的 字符串,然后解析做出反饋 字符串基本規格: 單條命令 : CMD(X,Y,\'ABC或者中文字符不定長\',W
    發表于 04-29 06:34

    詳細解析二相電機反轉的改變方法

    詳細解析二相電機反轉的改變方法? 二相電機反轉是指通過改變電機的工作方式和接線方式來改變電機的旋轉方向。以下是對二相電機反轉的改變方法的詳細解析。 首先,要了解二相電機的工作原理。二相
    的頭像 發表于 01-23 14:45 ?2749次閱讀
    主站蜘蛛池模板: 热99RE久久精品国产| 寂寞夜晚视频在线观看| 国产亚洲制服免视频| 秋霞影院福利电影| 97久久精品人人槡人妻人| 久久AV国产麻豆HD真实| 亚洲精品久久久一区| 国产精品亚洲精品日韩电影| 欧美又粗又大AAAA片| 91青青草原| 女人吃男人的鸡鸡| 99久视频只有精品2019| 年轻的女教师2017韩国在线看| 中文字幕不卡在线视频| 久久热这里只有 精品| 在线看片成人免费视频| 久久精品国产欧美| 中国老妇xxxhd| 老少配xxxxx欧美| 最近日本字幕免费高清| 久久中文字幕无码A片不卡| 在线欧美免费人成视频| 免费国产成人手机在线观看| 99久久国产宗和精品1上映| 欧美午夜特黄AAAAAA片| 吃奶吸咪咪动态图| 午夜免费啪视频观看视频| 国产免费福利在线视频| 亚洲qingse中文字幕久久| 果冻传媒2021一二三区| 亚洲午夜久久久精品影院| 久久综合伊人| xxx日本hd| 新金梅瓶玉蒲团性奴3| 久久精品国产免费中文| a在线观看免费视频| 视频一区视频二区ae86| 黑人操日本女人| 999国产高清在线精品| 少妇性饥渴BBBBBBBBB| 国内精品欧美久久精品 |