CN106126368A - 一种linux下内存故障地址解析的方法 - Google Patents
一种linux下内存故障地址解析的方法 Download PDFInfo
- Publication number
- CN106126368A CN106126368A CN201610703414.XA CN201610703414A CN106126368A CN 106126368 A CN106126368 A CN 106126368A CN 201610703414 A CN201610703414 A CN 201610703414A CN 106126368 A CN106126368 A CN 106126368A
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- error
- failure
- internal memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
Abstract
本发明公开一种LINUX下内存故障地址解析的方法,涉及服务器技术领域,通过系统发现到内存报错的系统地址,进行一系列解析后对应到内存的物理地址,快速定位内存故障位置,完成内存故障分析;其具体实现包括如下步骤:1)获得内存故障的系统地址,2)获得内存报错的物理地址。本发明在linux环境下对内存故障地址进行解析,将报错的系统地址转换为内存条上的物理地址,快速定位内存故障位置,完成内存故障分析;实施简单,方便操作;便于用户和维护人员快速发现内存故障,及时进行内存运维工作,保障了服务器的稳定性。
Description
技术领域
本发明涉及服务器技术领域,具体的说是一种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和报错次数。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的权利要求书的且任何所属技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
Claims (3)
1.一种LINUX下内存故障地址解析的方法,其特征在于,在linux环境下,通过系统发现到内存报错的系统地址,进行一系列解析后对应到内存的物理地址,快速定位内存故障位置,完成内存故障分析;其具体实现包括如下步骤:1)获得内存故障的系统地址,2)获得内存报错的物理地址。
2.根据权利要求1所述一种LINUX下内存故障地址解析的方法,其特征在于,所述获得内存故障的系统地址主要包括:
对于ECC DIMM,当发生ECC错时,系统把错误信息和错误的系统地址记录到MSRs中,能够从MSRs中获得发生ECC错误的系统地址;
对于Non-ECC DIMM,在读/写/比较的测试过程中能够直观的看到发生的错误,找到错误地址。
3.根据权利要求2所述一种LINUX下内存故障地址解析的方法,其特征在于,所述获得内存报错的物理地址主要包括:通过一层一层的地址解析获得报错的物理地址;首先从系统地址中解析出Socket信息,之后判断是Socket中的哪一个Channel,接着解析出通道地址中的哪一个DIMM和Rank,最后根据Rank地址映射表确定Row,Column,DQ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610703414.XA CN106126368A (zh) | 2016-08-22 | 2016-08-22 | 一种linux下内存故障地址解析的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610703414.XA CN106126368A (zh) | 2016-08-22 | 2016-08-22 | 一种linux下内存故障地址解析的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106126368A true CN106126368A (zh) | 2016-11-16 |
Family
ID=57273610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610703414.XA Pending CN106126368A (zh) | 2016-08-22 | 2016-08-22 | 一种linux下内存故障地址解析的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106126368A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092549A (zh) * | 2017-04-26 | 2017-08-25 | 郑州云海信息技术有限公司 | 一种自动监控并解析内存故障的工具及方法 |
CN107451051A (zh) * | 2017-06-29 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种Linux下进行服务器内存诊断的方法 |
CN109508247A (zh) * | 2018-11-09 | 2019-03-22 | 英业达科技有限公司 | 定位内存错误发生位置的方法、系统、及电子设备 |
CN109753378A (zh) * | 2019-01-02 | 2019-05-14 | 浪潮商用机器有限公司 | 一种内存故障的隔离方法、装置、系统及可读存储介质 |
CN110718262A (zh) * | 2019-08-21 | 2020-01-21 | 深圳市金泰克半导体有限公司 | 定位故障内存颗粒所在rank的方法、装置、存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002117691A (ja) * | 2000-10-10 | 2002-04-19 | Mitsubishi Electric Corp | 半導体集積回路 |
CN103197999A (zh) * | 2013-03-22 | 2013-07-10 | 北京百度网讯科技有限公司 | 一种内存故障自动定位方法及装置 |
CN103198000A (zh) * | 2013-04-02 | 2013-07-10 | 浪潮电子信息产业股份有限公司 | 一种linux系统下的故障内存位置定位方法 |
CN103514068A (zh) * | 2012-06-28 | 2014-01-15 | 北京百度网讯科技有限公司 | 内存故障自动定位方法 |
CN103970661A (zh) * | 2014-05-19 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种利用ipmi工具进行批量服务器内存故障检测的方法 |
CN105204968A (zh) * | 2015-11-10 | 2015-12-30 | 浪潮(北京)电子信息产业有限公司 | 一种故障内存检测方法和装置 |
-
2016
- 2016-08-22 CN CN201610703414.XA patent/CN106126368A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002117691A (ja) * | 2000-10-10 | 2002-04-19 | Mitsubishi Electric Corp | 半導体集積回路 |
CN103514068A (zh) * | 2012-06-28 | 2014-01-15 | 北京百度网讯科技有限公司 | 内存故障自动定位方法 |
CN103197999A (zh) * | 2013-03-22 | 2013-07-10 | 北京百度网讯科技有限公司 | 一种内存故障自动定位方法及装置 |
CN103198000A (zh) * | 2013-04-02 | 2013-07-10 | 浪潮电子信息产业股份有限公司 | 一种linux系统下的故障内存位置定位方法 |
CN103970661A (zh) * | 2014-05-19 | 2014-08-06 | 浪潮电子信息产业股份有限公司 | 一种利用ipmi工具进行批量服务器内存故障检测的方法 |
CN105204968A (zh) * | 2015-11-10 | 2015-12-30 | 浪潮(北京)电子信息产业有限公司 | 一种故障内存检测方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107092549A (zh) * | 2017-04-26 | 2017-08-25 | 郑州云海信息技术有限公司 | 一种自动监控并解析内存故障的工具及方法 |
CN107451051A (zh) * | 2017-06-29 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种Linux下进行服务器内存诊断的方法 |
CN109508247A (zh) * | 2018-11-09 | 2019-03-22 | 英业达科技有限公司 | 定位内存错误发生位置的方法、系统、及电子设备 |
CN109508247B (zh) * | 2018-11-09 | 2022-02-11 | 英业达科技有限公司 | 定位内存错误发生位置的方法、系统、及电子设备 |
CN109753378A (zh) * | 2019-01-02 | 2019-05-14 | 浪潮商用机器有限公司 | 一种内存故障的隔离方法、装置、系统及可读存储介质 |
CN110718262A (zh) * | 2019-08-21 | 2020-01-21 | 深圳市金泰克半导体有限公司 | 定位故障内存颗粒所在rank的方法、装置、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106126368A (zh) | 一种linux下内存故障地址解析的方法 | |
CN104991629B (zh) | 电源失效侦测系统与其方法 | |
CN108388489B (zh) | 一种服务器故障诊断方法、系统、设备及存储介质 | |
US9569325B2 (en) | Method and system for automated test and result comparison | |
DE102012210232B4 (de) | Vorbeugende Speicherreparatur auf der Grundlage der Analyse einer Vielzahl von Symbolen und Bereinigungszyklen | |
WO2016090908A1 (zh) | 智能电表嵌入式应用的模拟存储器测试板系统及测试方法 | |
CN104484274B (zh) | 一种基于itp工具的内存轮巡检查功能测试方法 | |
CN105930242B (zh) | 一种支持精确访存检测的多核处理器随机验证方法及装置 | |
CN104407951A (zh) | 一种自动化进行服务器整机测试的方法 | |
CN106557145A (zh) | 断电保护系统及其方法 | |
CN107273267A (zh) | 基于elastic组件的日志分析方法 | |
CN103778030B (zh) | 日志子系统写入方法、错误追踪方法及处理器 | |
CN103970661A (zh) | 一种利用ipmi工具进行批量服务器内存故障检测的方法 | |
CN108766501B (zh) | 一种具有edac容错的存储器故障注入设计及验证方法 | |
CN107038098A (zh) | 一种可批量通过网络进行服务器内存诊断的方法 | |
US10365996B2 (en) | Performance-aware and reliability-aware data placement for n-level heterogeneous memory systems | |
US8554727B2 (en) | Method and system of tiered quiescing | |
CN108549591A (zh) | 一种嵌入式系统的黑匣子装置及其实现方法 | |
CN102841832B (zh) | 出错内存条定位方法 | |
CN110321260A (zh) | 一种基于uvm的axi总线接口读写数据比较方法和uvm验证平台 | |
US9176821B2 (en) | Watchpoint support system for functional simulator | |
Kim et al. | Relaxfault memory repair | |
CN107590017A (zh) | 一种电子设备的检测方法和装置 | |
CN102999663A (zh) | 一种soc芯片中的mmu的验证方法 | |
US11061821B2 (en) | Method, system, and apparatus for stress testing memory translation tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161116 |
|
WD01 | Invention patent application deemed withdrawn after publication |