`
izuoyan
  • 浏览: 8937040 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

强制打开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系列处理器.而至强5100以后系列产品,它采用了新的处理器架构——酷睿架构,而I/O加速技术是其显著的特点之一。

而直接DCA(高级缓存访问)是I/O AT 2在原有基础上增加了的工作模式,这是一项快速响应、增强性能的新特性。基本工作原理是使得CPU高速缓存中的数据可以被网络控制器优先访问,一方面充分利用缓存中的数据,另外一个方面利用高速缓存低延迟的特性,来避免CPU频繁的访问内存,降低系统开销。DCA有两种基本的工作模式,当处理小型I/O任务的时候,甚至不需要芯片组中QuickData引擎的参与,只有当处理大型I/O任务的时候才需要。DCA的意义在于,数据包尽可能采用最近最快的途径,进入CPU的高速缓存中被优先访问,这将极大降低CPU的数据存取延迟。


R410 启动后加载内核ioatdma模块后提示:

DCA is disabled in BIOS

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

Intel 82598 10Gb Ixgbe网卡驱动 DCA 无法启用.通过BIOS启用也无果.

goolge 一把发现可以通过修改CPU MSR寄存器或PCI 配置寄存器将DCA强制打开.

可以通过两种方式打开DCA启用标志,一种是修改PCI配置寄存器方式,一种为修改CPU MSR寄存器方式.

Enable DCA in PCI Configuration Space


看寄存器描叙只要将第6位置1即可.

Enable DCA in the CPU MSR

需要将0x1f8 寄存器置1.

以下是源代码, 需要libpci-dev库支持.

注: 因为需要在用户层操作msr设备,需要将内核选项中的msr选项打开.

参考:

Enabling BIOS options on a live server with no rebooting

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics