強制開啟BIOS中禁用的I OAT DCA 一

2021-08-24 20:11:19 字數 1861 閱讀 8228

hardware platform: dell poweredge r410

develop platform: redhat el5

kernel version: 2.6.29.5

gcc version: 4.3.2

dell poweredge r410採用英特爾® 至強® 5500系列處理器.而至強5100以後系列產品,它採用了新的處理器架構——酷睿架構,而i/o加速技術是其顯著的特點之一。

而直接dca(高階快取訪問)是i/o at 2在原有基礎上增加了的工作模式,這是一項快速響應、增強效能的新特性。基本工作原理是使得cpu快取記憶體中的資料可以被網路控制器優先訪問,一方面充分利用快取中的資料,另外乙個方面利用快取記憶體低延遲的特性,來避免cpu頻繁的訪問記憶體,降低系統開銷。dca有兩種基本的工作模式,當處理小型i/o任務的時候,甚至不需要晶元組中quickdata引擎的參與,只有當處理大型i/o任務的時候才需要。dca的意義在於,資料報盡可能採用最近最快的途徑,進入cpu的快取記憶體中被優先訪問,這將極大降低cpu的資料訪問延遲。

dca is disabled in bios

注: ioatdma 只有在2.6.18以上核心才具有.

intel 82598 10gb ixgbe網絡卡驅動 dca 無法啟用.通過bios啟用也無果.

goolge 一把發現可以通過修改cpu msr暫存器或pci 配置暫存器將dca強制開啟.

可以通過兩種方式開啟dca啟用標誌,一種是修改pci配置暫存器方式,一種為修改cpu msr暫存器方式.

看暫存器描敘只要將第6位置1即可.

需要將0x1f8 暫存器置1.

以下是源**, 需要libpci-dev庫支援.

注: 因為需要在使用者層操作msr裝置,需要將核心選項中的msr選項開啟.

#define _xopen_source 500 #include #include #include #include #include #include #include #include #define intel_bridge_dcaen_offset 0x64 #define intel_bridge_dcaen_bit 6 #define pci_header_type_bridge 1 #define pci_vendor_id_intel 0x8086 /* lol @ intel */ #define pci_header_type 0x0e #define msr_p6_dca_cap 0x000001f8 void check_dca(struct pci_dev *dev) else } void msr_dca_enable(void) if (pread(fd, &data, sizeof(data), msr_p6_dca_cap) != sizeof(data)) printf("got msr value: %*llx\n", 1, (unsigned long long)data); if (!(data & 1)) } else } } int main(void) } } msr_dca_enable(); return 0; }

參考:

enabling bios options on a live server with no rebooting

強制開啟BIOS中禁用的I OAT DCA 一

hardware platform dell poweredge r410 develop platform redhat el5 kernel version 2.6.29.5 gcc version 4.3.2 dell poweredge r410採用英特爾 至強 5500系列處理器.而至強5...

強制開啟BIOS中禁用的I OAT DCA 二

上文提到開啟r410中i oat dca特性,是通過在使用者層控制.還有一種可以直接修改核心dma i oat 驅動可以做到.google搜尋到的 首先開啟核心支援 device drivers dma engine support intel i oat dma support 新增修改暫存器函式...

3 開啟bios的方式

ps 嘿嘿,順便說一哈,其實f1到f12都可以試試,還有就是del啊啥的,反正鍵盤上也只有那麼些鍵 1.一般的電腦進入bios方法 del鍵 esc鍵 f2鍵 2.筆記本 1 ibm 冷開機按f1,部分新型號可以在重新啟動時啟動按f1 2 hp 啟動和重新啟動時按f2 3 sony 啟動和重新啟動時...