文章编号:ZFLI-6V675W
在AMD CPU和SERVERRAID 7T 卡的服务器上安装RHEL4/SLES9 X86_64系统失败
| 适用机型: |
| 所有System x3250; 所有System x3400 |
故障现象:在配置4GB以上
内存和ServeRAID 7T 卡的AMD dual-core CPU的主机上,无法完全安装RHEL4 Update 4 x86-64 和 SLES9 SP3 x86-64
操作系统。当安装失败时,会出现安装中断和系统重启的现象。
受影响的配置:受影响的IBM服务器:System x3250, type 4365, any model
System x3400, type 7973, any model
System x3400, type 7974, any model
受影响的IBM选件:ServeRAID-7t Controller, Option p/n 71P8648, FRU p/n71P8650
受影响的操作系统:Red Hat
Linux RHEL 4, any model
SuSE Linux SLES 9 for AMD64/EM64T, any model
解决方法:“bounce buffer”不能正常工作的问题正在调查中,计划在2007年第一季度解决。
临时解决方法:
1、把操作系统安装盘(如:RHEL4 U3 x86-64 或 SLES9 SP3 x86-64 CD 1)插入
光驱,启动系统。
2、在启动屏幕的boot提示符后输入"linux iommu=force" ,回车。
3、按照标准安装模式安装。
附加信息:在安装操作系统时,大块的
数据通过CD/DVD 光盘传输到系统内存的缓冲器(被操作系统所支配的),然后再被传输到
硬盘。操作系统支配着全部的DMA
数据传输。在安装操作系统过程中,内存被缓存消耗,一直到全部空闲内存被使用,最后安装中断,系统崩溃。
当安装4GB以上内存的时候,64-bit Linux内核将分配4GB内存以上的空间进行数据传输。但这种寻址方式无法被32-bit 设备
驱动程序所完成,它只能寻址4GB以下的内存,例如被 ServeRAID 7t 卡使用的“aacraid”。现在这个问题已经解决,Linux内核已经提供了一些机制在64-bit 操作系统内核中支持32-bit
驱动,例如iommu和 bounce buffers(这种缺省机制是为双AMD和
Intel CPU在4GB内存以上和4GB内存以下之间进行数据移动设置的)。
当开启iommu
功能(iommu=force)时,将不再发生这个问题。这个bounce buffer 不能正确执行,导致缓存溢出,因为在AMD CPU的内存管理单元中的缓存被操作系统内核或BIOS不正确设置,或者在ck804
芯片集中的缓存被BIOS不正确的设置。