一种LINUX下内存故障地址解析的方法与流程

文档序号:11864525阅读:1113来源:国知局

本发明涉及服务器技术领域,具体的说是一种LINUX下内存故障地址解析的方法。



背景技术:

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。内存是由内存芯片、电路板、金手指等部分组成的。

随着内存技术的快速发展,内存ECC报错问题逐渐凸显,当内存在客户端经过长时间的使用,内存产品会逐渐老化,从而产生故障。而内存是服务器系统的关键组成部分,发生故障时会直接影响服务器的正常工作。



技术实现要素:

本发明针对目前技术发展的需求和不足之处,提供一种ARM平台一种LINUX下内存故障地址解析的方法。

本发明所述一种LINUX下内存故障地址解析的方法,解决上述技术问题采用的技术方案如下:所述一种LINUX下内存故障地址解析的方法,在linux环境下,通过系统发现到内存报错的系统地址,进行一系列解析后对应到内存的物理地址,快速定位内存故障位置,完成内存故障分析;其具体实现包括如下步骤:1)获得内存故障的系统地址,2)获得内存报错的物理地址。

优选的,所述获得内存故障的系统地址主要包括:

对于ECC DIMM,当发生ECC错时,系统把错误信息和错误的系统地址记录到MSRs中,能够从MSRs中获得发生ECC错误的系统地址;

对于Non-ECC DIMM,在读/写/比较的测试过程中能够直观的看到发生的错误,找到错误地址。

优选的,所述获得内存报错的物理地址主要包括:通过一层一层的地址解析获得报错的物理地址;首先从系统地址中解析出Socket信息,之后判断是Socket中的哪一个Channel,接着解析出通道地址中的哪一个DIMM和Rank,最后根据Rank地址映射表确定Row,Column,DQ。

本发明所述一种LINUX下内存故障地址解析的方法与现有技术相比具有的有益效果是:本发明通过系统发现到内存报错的系统地址,进行一系列解析后对应到内存的详细物理地址,快速定位内存故障位置,完成内存故障分析,并且实施简单,方便操作;该方法能够快速定位内存故障地址,详细到Socket,Channel,DIMM,Rank,Bank,Row,Column,DQ,便于用户和维护人员快速发现内存故障,及时进行内存运维工作,保障了服务器的稳定性,提高服务器产品性能。

说明书附图

附图1为获得内存故障的系统地址的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本发明所述一种LINUX下内存故障地址解析的方法进一步详细说明。

本发明所述一种LINUX下内存故障地址解析的方法,在linux环境下对内存故障地址进行解析,将报错的系统地址转换为内存条上的物理地址,快速定位内存故障位置,完成内存故障分析。系统地址,即计算机系统使用系统地址来指示存储或读取数据的位置,可能是内存,设备,或CPU寄存器,系统地址不能指示出物理内存地址。

实施例:

本实施例一种LINUX下内存故障地址解析的方法,通过系统发现到内存报错的系统地址,进行一系列解析后对应到内存的物理地址,快速定位内存故障位置,完成内存故障分析。本实施可以快速进行内存故障地址的定位,详细到Socket,Channel,DIMM,Rank,Bank,Row,Column,DQ,保障服务器的稳定性;其具体实现包括如下步骤:1)获得内存故障的系统地址,2)获得内存报错的物理地址。

所述获得内存故障的系统地址主要包括:

对于ECC DIMM(RDIMM,LRDIMM,ECC-SODIMM,ECC-UDIMM),处理器有很多不同的寄存器,其中一种是特殊模块寄存器Model Specific Registers(MSRs)。当发生ECC错时,系统会把错误信息和错误的系统地址记录到MSRs中,能够从MSRs中获得发生ECC错误的系统地址;

对于Non-ECC DIMM(SODIMM,UDIMM),在Read/Write/Compar读/写/比较的测试过程中可以直观的看到发生的错误,找到错误地址;如附图1所示。

所述获得内存报错的物理地址主要包括:

通过一层一层的地址解析获得报错的物理地址,首先从系统地址中解析出Socket信息,之后判断是Socket中的哪一个Channel,接着解析出通道地址中的哪一个DIMM和Rank,最后根据Rank地址映射表确定Row,Column,DQ。

本实施例所述LINUX下内存故障地址解析的方法,其具体实施过程如下:

将地址译码程序address_decoder拷贝入linux系统中,输入./address_decoder–r运行address_decoder程序,当发生内存故障问题时,从系统中获取到报错的系统地址,进行一系列解析后提示发生故障的内存的物理地址(Socket,Channel,DIMM,Rank,Bank,Row,Column,DQ);并自动生成LOG,可以看到Fail Address和解析出的详细物理地址,包括Socket、Channel、Dimm、Bank、Row、Column、DQ和报错次数。

上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1