上文提到開啟r410中i/oat dca特性, 是通過在使用者層控制.
還有一種可以直接修改核心dma i/oat 驅動可以做到. google搜尋到的 :)
首先開啟核心支援:
device drivers ---> dma engine support ---> intel i/oat dma support
新增修改暫存器函式, 詳細可看前篇.
// 修改cpu msr暫存器 static void dca_force_msr(void *dummy) #define intel_bridge_dcaen_offset 0x64 #define intel_bridge_dcaen_bit 6 // 修改pci配置暫存器 void dca_force(void) module_init(ioat_init_module); diff --git a/drivers/dma/ioat_dca.c b/drivers/dma/ioat_dca.c index c012a1e..3f45f78 100644 --- a/drivers/dma/ioat_dca.c +++ b/drivers/dma/ioat_dca.c @@ -88,6 +88,45 @@ static inline u16 dcaid_from_pcidev(struct pci_dev *pci) return (pci->bus->number << 8) | pci->devfn; } +static void dca_force_msr(void *dummy) + + +#define intel_bridge_dcaen_offset 0x64 +#define intel_bridge_dcaen_bit 6 + +void dca_force(void) +{ + struct pci_dev *pdev = null; + + /* enable dca in intel upstream bridges */ + for_each_pci_dev(pdev) { + if (pdev->hdr_type == pci_header_type_bridge + && pdev->vendor == pci_vendor_id_intel + && !pdev->bus->self) { + u32 val; + int ret; + + ret = pci_read_config_dword(pdev, intel_bridge_dcaen_offset, &val); + if (ret < 0) + continue; + if (!(val & (1 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... 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... ps 嘿嘿,順便說一哈,其實f1到f12都可以試試,還有就是del啊啥的,反正鍵盤上也只有那麼些鍵 1.一般的電腦進入bios方法 del鍵 esc鍵 f2鍵 2.筆記本 1 ibm 冷開機按f1,部分新型號可以在重新啟動時啟動按f1 2 hp 啟動和重新啟動時按f2 3 sony 啟動和重新啟動時...強制開啟BIOS中禁用的I OAT DCA 一
強制開啟BIOS中禁用的I OAT DCA 一
3 開啟bios的方式