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

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

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

3天內不再提示

PCIe相關問題解答

Linux閱碼場 ? 來源:Linux閱碼場 ? 2023-09-15 09:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

PCIe設備的數據流有哪些,分別是什么場景?

PCIe設備的數據流主要為4大類:

1.CPU發起的,訪問PCIe設備配置空間的數據流。這種數據流主要是BIOS/Linux PCIedriver 對設備進行初始化、資源分配時,讀寫配置空間的。包括PCIe 枚舉,BAR空間分配, MSI 分配等。 設備驅動通過 pci_wirte_config() / pci_read_config() 發起配置空間訪問。 lspci /setpci 也是對應到配置空間訪問。

aae3793c-5364-11ee-a25d-92fbcf53809c.png

2.CPU發起的,訪問PCIe設備MMIO/IO的數據流。將Bar空間mmap 到系統地址空間后,設備驅動可通過地址訪問PCIe設備的 Bar/ MMIO 空間。 一般的,設備會將特定的寄存器和存儲實現在MMIO空間內。CPU可使用 iowrite32() / ioread32() 等方式訪問 MMIO空間。這是一種效率較低的PCIe使用方式.

aafde218-5364-11ee-a25d-92fbcf53809c.png

3.PCIe設備發起的,訪問 HostMemory 的 DMA數據流。這種數據流由PCIe設備的DMAEngine 發起,是一種常見的、高性能的PCIe數據流。CPU通過配置 PCIe設備內的DMAEngine (通過MMIO寄存器),啟動設備PCIeDMA。網卡,GPU等PCIe設備,數據通路均有PCIeDMA完成。

ab0d3934-5364-11ee-a25d-92fbcf53809c.png

4.PCIe設備發起的,訪問PCIe設備MMIO/IO的數據流, 亦稱P2P (Peer to Peer)。同(3)類似,也是利用PCIe設備的DMAengine, 但是數據訪問的是其他PCIe設備的MMIO地址空間而非HostMemory. CPU須配置橋片端口路由地址。 GDR (GPU directRDMA) 就是利用這種數據流,避免主機內存的數據拷貝。

ab21e992-5364-11ee-a25d-92fbcf53809c.png

CPU訪問設備內存(Bar空間)和訪問主機內存,有什么不同?

Prefetchable MMIO 映射到系統地址空間后,軟件可以通過地址對PCIeMMIO空間進行直接訪問(CPU使用MOV指令),這一點與系統內存訪問在操作上是一致的。

RootComplex 會根據CPU訪問的地址決定數據訪問路由,對于系統內存地址空間,數據會被路由到iMC(integrated Memory Controller) 訪問DDR;對于MMIO地址空間,數據會被路由到HostBridge 轉換為 TLP發起對設備的PCIe通信

一般的,HostMemory 分配都是Cacheable(writeback) 的,而 MMIO通常是Uncacheable的,加之兩者帶寬和通信機理的不同,導致了CPU使用地址直接訪問PCIeMMIO空間無法達到訪問系統內存的性能,也無法用滿PCIe帶寬。使用memcpy() 在HostMemory 和MMIO 地址拷貝數據也是一種低效方式。

對于連續的MMIO空間訪問,可以通過支持writecombine的方式( mmap_wc() )來提升性能。

ab45ddde-5364-11ee-a25d-92fbcf53809c.png

為什么需要使用PCIe DMA,在設備與主機間搬運數據?

PCIe DMA 能夠實現高性能的數據搬運。

1.CPU僅需要配置DMAEngine, 大塊的數據搬運過程無需CPU參與,CPU占用率低;

2.DMAEngine 是全硬件化的通信方式,TLPpayload 大overhead小,PCIe鏈路使用率高;

3.支持descriptor的DMA能夠實現用戶態數據的零拷貝,減小內存帶寬消耗;

4.支持多隊列的DMA,能夠提高系統并行度,支持多核,多進程應用,硬件解決IO搶占和調度問題,軟件編程簡單;

如何使用PCIe設備的中斷?

PCIe協議定義了三種中斷:INTx (legacy), MSI, MSIX

1.INTx中斷是相對古老的PCIe設備中斷方式,整個系統僅支持8個INTx 中斷,所有設備共用。PCIe中的INTx 中斷是通過PCIemessage發送到 switch和 IOAPIC的。CPU收到 IOAPIC轉發到 localAPIC 的 INTx 中斷后,需要查詢ISR確定中斷源設備,并進一步查詢中斷含義,才能執行中斷處理函數。中斷數量少,中斷查詢復雜,響應延遲大,與數據流不保序等問題的存在,是INTx的主要缺陷。

2.MSI是實現在配置空間的消息中斷,每個PCIefunction可支持最多32個MSI中斷。MSI中斷是一筆PCIe寫報文,向APIC地址域寫入特定的數據,觸發CPU中斷。因為其通過PCIewriteTLP 實現,中斷與業務數據的保序性容易實現,硬件處理RacingCondition的代價更小。MSI中斷可以具備特定的含義,設備之間不耦合,中斷響應快。

3.MSIx是實現在Bar空間的消息中斷,優點與MSI類似,但其數量支持更多,每個function最多可以支持2K條中斷向量。

MSI和MSIx 是目前主流的中斷實現方式,在虛擬化的場景下,中斷可以通過IOMMU 實現remap和 posting, 進一步提升系統性能。

網卡接收方向性能低,進行調優有哪些思路?

網卡收包性能性能調優,需先識別出性能瓶頸,可通過performance監控工具(如IntelPCM),查看 CPU利用率,內存帶寬使用,PCIe流量等。

一般的,優化方向包括:

1.確定NUMA的親和性,保證CPU/Memory/PCIe 三者的親和性

2.確定PCIe全鏈路的帶寬匹配,確保內存帶寬(讀+寫雙向)有余量

3.設備合理的PCIe通路MPS/MRRS

4.查看并打開IDO/RO (需注意應用場景無保序風險)

5.DMAEngine 參數的調優,Batch操作的閾值配置(隊列doorbell, completion notify等)

6.中斷頻率的調優和控制(一般在20K/100k 每秒,需結合應用和CPU)

7.DDIO和 cacheable /uncacheable 內存空間的分配

具體原理和操作可參考課程中的有關介紹。

審核編輯:湯梓紅

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

    關注

    68

    文章

    11063

    瀏覽量

    216478
  • Linux
    +關注

    關注

    87

    文章

    11496

    瀏覽量

    213240
  • PCIe
    +關注

    關注

    16

    文章

    1331

    瀏覽量

    84901
  • dma
    dma
    +關注

    關注

    3

    文章

    576

    瀏覽量

    102869
  • 數據流
    +關注

    關注

    0

    文章

    123

    瀏覽量

    14770

原文標題:PCIe 課程典型問題解答

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    常見以太網饋問題解答

    常見以太網饋問題解答
    發表于 10-24 13:12 ?14次下載
    常見以太網饋<b class='flag-5'>問題解答</b>

    VxWorks常見問題解答

    VxWorks常見問題解答
    發表于 03-28 09:53 ?18次下載

    TOPSwitch-HX常見問題解答

    TOPSwitch-HX常見問題解答
    發表于 04-27 14:05 ?48次下載

    CCS問題解答

    CCS問題解答
    發表于 08-03 08:13 ?43次下載

    PC 音質常見問題解答

    PC 音質常見問題解答
    發表于 08-02 14:24 ?18次下載

    新手-iPhone/touch常見問題解答

    新手-iPhone/touch常見問題解答 來源于蘋果官方最權威的基本常見問題解答,對于剛剛接觸iPhone/iPod touch的新手來說非常有幫助。
    發表于 02-02 17:29 ?535次閱讀

    廣州大彩串口屏技術文檔—硬件問題解答

    串口屏技術文檔之關于串口屏的硬件問題解答說明詳情
    發表于 07-01 17:35 ?19次下載

    晶閘管實用技術問題解答

    晶閘管實用技術問題解答
    發表于 09-12 08:27 ?6次下載
    晶閘管實用技術<b class='flag-5'>問題解答</b>

    AN-1291:數字電位計:常見問題解答

    AN-1291:數字電位計:常見問題解答
    發表于 03-19 04:51 ?8次下載
    AN-1291:數字電位計:常見<b class='flag-5'>問題解答</b>

    PDIUSBD12常見問題解答資料下載

    PDIUSBD12常見問題解答資料下載
    發表于 05-14 10:10 ?11次下載

    CAN總線常見問題解答

    CAN總線常見問題解答,面試中常問。
    的頭像 發表于 12-27 13:47 ?1827次閱讀
    CAN總線常見<b class='flag-5'>問題解答</b>

    CLOCK常見問題解答

    電子發燒友網站提供《CLOCK常見問題解答.pdf》資料免費下載
    發表于 11-23 10:23 ?0次下載
    CLOCK常見<b class='flag-5'>問題解答</b>

    TFPxxx常見問題解答

    電子發燒友網站提供《TFPxxx常見問題解答.pdf》資料免費下載
    發表于 09-29 09:56 ?0次下載
    TFPxxx常見<b class='flag-5'>問題解答</b>

    Keystone EDMA常見問題解答

    電子發燒友網站提供《Keystone EDMA常見問題解答.pdf》資料免費下載
    發表于 10-11 10:43 ?0次下載
    Keystone EDMA常見<b class='flag-5'>問題解答</b>

    Keystone NDK常見問題解答

    電子發燒友網站提供《Keystone NDK常見問題解答.pdf》資料免費下載
    發表于 10-11 10:41 ?0次下載
    Keystone NDK常見<b class='flag-5'>問題解答</b>
    主站蜘蛛池模板: 国产综合精品久久久久成人影 | 黄色三级视频 | 成人欧美精品一区二区不卡 | 亚洲高清美女一区二区三区 | 亚洲成在人线中文字幕 | 欧美一级黄色片在线观看 | 色噜噜狠狠色综合欧洲 | 亚洲国产精品久久久久婷婷软件 | 二区视频在线 | 男人j进人女人j 的视频 | 欧美色图狠狠干 | 免费国产午夜高清在线视频 | 天天干天天要 | 日本在线色视频 | 欧美人与牲动交xxxx | 日本不卡一区二区三区视频 | 在线a网 | 久久激情五月 | 伊人一区二区三区 | 五月婷婷综合在线 | 看黄网站在线看 | 你懂的免费在线 | 成人国产在线24小时播放视频 | 免费 视频 | 天天干天天狠 | 久久这里只有精品任你色 | 天天爽夜夜爽夜夜爽精品视频 | 人人插视频 | 成人午夜精品久久久久久久小说 | 夜夜偷影视 | 中日韩欧美在线观看 | 天天爽夜夜爽每晚高澡 | 114毛片免费观看网站 | 午夜影院普通 | 六月丁香激情综合成人 | 日韩ab | 亚洲精品黄色 | 香淫| 天天爽天天干 | 377p亚洲欧洲日本大胆色噜噜 | 日本成人一级片 |