CN114579340A - 内存错误处理方法和装置 - Google Patents

内存错误处理方法和装置 Download PDF

Info

Publication number
CN114579340A
CN114579340A CN202210094649.9A CN202210094649A CN114579340A CN 114579340 A CN114579340 A CN 114579340A CN 202210094649 A CN202210094649 A CN 202210094649A CN 114579340 A CN114579340 A CN 114579340A
Authority
CN
China
Prior art keywords
error
memory
memory page
errors
description information
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
Application number
CN202210094649.9A
Other languages
English (en)
Inventor
李钟�
楼佳
周栋树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital Technologies Co Ltd
Original Assignee
XFusion Digital Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by XFusion Digital Technologies Co Ltd filed Critical XFusion Digital Technologies Co Ltd
Priority to CN202210094649.9A priority Critical patent/CN114579340A/zh
Publication of CN114579340A publication Critical patent/CN114579340A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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/1024Identification of the type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0781Error filtering or prioritizing based on a policy defined by the user or on a policy defined by a hardware/software module, e.g. according to a severity level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2284Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Abstract

本申请公开了内存错误处理方法和装置,涉及计算机技术领域,有助于提高内存的RAS。该方法应用于计算机装置,该方法可以包括:获取第一错误描述信息,第一错误描述信息用于描述第一内存页发生的错误的类型;根据第一错误描述信息确定第一内存页发生的错误是可纠正错误中的非镜像回写成功错误;响应上述确定,当第一内存页发生非镜像回写成功错误的次数达到M时,对第一内存页进行隔离,M为大于1的整数。

Description

内存错误处理方法和装置
本申请是分案申请,原申请的申请号是201910157218.0,原申请日是2019年03月01日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及内存错误处理方法和装置。
背景技术
针对服务器中的应用层软件,suse、redhat等厂商提供了内存页隔离(pageoffline)等技术,以保障应用层软件使用内存空间的健康性。内存页隔离是操作系统(operating system,OS)层隔离使用内存页的技术。内存页被隔离后,不能再供应用层软件使用。
目前,OS层对可纠正错误(corrected errors,CE)不进行处理,仅在内存页发生不可纠正错误(uncorrected errors,UCE),且具体是选择处理(SW recoverable actionoptional,SRAO)错误、不需要处理(uncorrected no action,UCNA)错误和必须处理(SWrecoverable action required,SRAR)错误时,杀死正在使用该内存页的进程(即关闭正在使用该内存页的应用),从而实现对该内存页进行隔离。其中,SW是软件(software)的英文缩写。但是,可纠正错误会影响内存空间的健康度,从而影响内存的可靠性可用性可服务性(reliability,availability,and serviceability,RAS)。
发明内容
本申请实施例提供了内存错误处理方法和装置,有助于提高内存的RAS。
为达到上述目的,本申请实施例提供了如下技术方案:
第一方面,本申请实施例提供了一种内存错误处理方法,应用于计算机装置(如服务器等),该方法包括:获取第一错误描述信息,根据第一错误描述信息确定第一内存页发生的错误是可纠正错误中的非镜像回写成功错误;响应上述确定,当第一内存页发生该非镜像回写成功错误的次数(即累计次数)达到M(即预设次数)时,对第一内存页进行隔离,M为大于1的整数。这是在考虑到可纠正错误中的非镜像回写成功错误虽然不会导致服务器宕机,但是会对内存的健康度造成一定的影响而提出的技术方案。然而,如果对这类内存错误进行立即隔离,则会导致系统产生不可用碎片化内存,从而影响系统性能,因此,相比立即隔离,本技术方案中采用阈值隔离可以减少因内存页隔离而导致的对系统性能的影响。另外,由于相比立即隔离,阈值隔离可以降低内存页隔离对底层硬件RAS特性(ADDDC/SDDC/ranksparing/SMI风暴抑制)触发的影响,因此,可以提高硬件RAS技术和软件RAS技术的兼容性。
在一种可能的设计中,对第一内存页进行隔离之后,将第一内存页发生的可纠正错误中的非镜像回写成功错误类型的错误的累计次数清零。
在一种可能的设计中,当第一内存页发生的错误是可纠正错误中的非镜像回写成功错误时,且发生本次错误时,第一内存页发生非镜像回写成功错误的累计次数没有达到预设次数,则将第一内存页发生非镜像回写成功错误的累计次数加1,且不对第一内存页进行隔离。
在一种可能的设计中,非镜像回写成功错误包括:巡检可纠正错误、读写可纠正错误、搬移可纠正错误或镜像回写失败错误中的任意一种。
第二方面,本申请实施例提供了一种内存错误处理方法,包括:获取第二错误描述信息,第二错误描述信息用于描述第二内存页发生的错误的类型;根据第二错误描述信息确定第二内存页发生的错误是不可纠正错误中的非突发致命错误;响应上述确定,对第二内存页进行隔离。这是考虑到“使能内存镜像功能时,如果执行内存页隔离功能,则会碎片化内存可用空间,大幅降低服务器内存系统可靠性”而提出的技术方案。这样,可以降低软件RAS技术与硬件RAS技术之间的耦合关系,从而提高了整体内存系统的可靠性。
在一种可能的设计中,非突发致命错误包括:不需要处理UCNA错误、选择处理SRAO错误、必须处理SRAR错误或巡检不可纠正错误中的任意一种。
在一种可能的设计中,当非突发致命错误是SRAO错误、UCNA错误或SRAR错误时,在对第二内存页进行隔离之后,不关闭使用第二内存页的应用。这不会对用户业务造成影响。
第三方面,本申请实施例提供了一种内存错误处理装置,包括:用于执行第一方面或第一方面的任一种可能的设计提供的方法。该装置具体可以是服务器,或者是一个芯片。
在一种可能的设计中,该装置包括用于执行第一方面或第一方面任一种可能的设计提供的方法的各个模块。
在另一种可能的设计中,该装置包括存储器和处理器,存储器用于用于存储计算机指令,该装置运行时,该处理器执行存储器中的计算机指令以利用该装置中的硬件资源执行第一方面或第一方面任一种可能的设计所提供的方法的操作步骤。
第四方面,本申请实施例提供了一种内存错误处理装置,包括:用于执行第二方面或第二方面的任一种可能的设计提供的方法。该装置具体可以是服务器,或者是一个芯片。
在一种可能的设计中,该装置包括用于执行第二方面或第二方面任一种可能的设计提供的方法的各个模块。
在另一种可能的设计中,该装置包括存储器和处理器,存储器用于用于存储计算机指令,该装置运行时,该处理器执行存储器中的计算机指令以利用该装置中的硬件资源执行第二方面或第二方面任一种可能的设计所提供的方法的操作步骤。
本申请实施例还提供了一种计算机可读存储介质,其上储存有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述第一至第二方面或其任一种可能的设计提供的方法的操作步骤。
本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得第一至第二方面或其任一种可能的设计提供的方法的操作步骤。
可以理解的是,上述提供的任一种内存错误处理装置或计算机可读存储介质或计算机程序产品等均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
附图说明
图1为可适用于本申请实施例的一种服务器的硬件结构示意图;
图2为可适用于本申请实施例的一种服务器的层级结构示意图;
图3为本申请实施例提供的一种内存错误处理方法的流程图;
图4为本申请实施例提供的一种内存错误处理装置的结构示意图。
具体实施方式
如图1所示,为可适用于本申请实施例的一种服务器的硬件结构示意图。其中,该服务器可以是支持内存页隔离技术的任意类型的服务器,例如X86架构的服务器,具体可以是刀片服务器、高密服务器、机架服务器或高性能服务器等。图1所示的服务器可以包括处理器101、内存控制器102和内存103。处理器101与内存控制器102可以集成在一起,也可以是独立设置的。其中,处理器101是服务器的控制中心,具体可以是中央处理单元(centralprocessing unit,CPU)。内存103是缓存空间。内存103中可以缓存操作系统程序和软件应用程序等。内存控制器102用于对内存103中的数据/程序进行管理。
图1所示的服务器仅为可适用于本申请实施例的一种服务器的结构示意图,其不对本申请实施例所适用的服务器构成限定,例如,服务器中还可以包括持久性存储介质、通信接口、通信线路等,图1中未示出。
服务器包括硬件层和软件层,软件层是运行在硬件层上的程序代码。软件层又可以分成若干个层,层与层之间通过软件接口通信。软件层从上至下包括应用层、操作系统(operating system,OS)层和基本输入输出系统(basic input output system,BIOS)层,如图2所示。
硬件层,包括处理器(如CPU)、内存和内存控制器等计算机硬件,如图1所示。
BIOS层,是加载在计算机硬件系统上的最基本的软件代码。BIOS层是在OS层之下的底层运行程序,是计算机硬件和OS层之间的抽象层,用来设置硬件,为OS层运行做准备。BIOS层的主要功能是上电、自检、CPU初始化、内存初始化、检测输入输出设备以及可启动设备并最终引导操作系统启动。需要说明的是,下文中描述的BIOS层执行某个步骤(如以下步骤S101),可以理解为是:处理器101调用BIOS层执行该步骤。
OS层,包括操作系统程序代码。操作系统可以是Linux、Windows或vxWarks等。OS层基本处理单元是内存页。需要说明的是,下文中描述的OS层执行某个步骤(如以下步骤S104),可以理解为是:处理器101调用OS层执行该步骤。
应用层,包括一系列运行应用程序的程序代码。
以下,对本申请实施例中涉及的关键技术和术语进行介绍,以方便读者理解。
1)、内存RAS技术
内存RAS技术,是为了提高内存的可靠性、可服务性、可实用性而提出的技术,可以包括硬件RAS技术和软件RAS技术。具体的:
硬件RAS技术可以包括:自适应双颗粒数据纠正(adaptive double device datacorrection,ADDDC)、单颗粒数据纠正(single-device data correction,SDDC)、内存镜像(memory mirror)、内存热备(rank sparing)、系统管理中断(system managementinterrupt,SMI)风暴抑制等技术。硬件RAS技术可以降低由于内存可纠正错误累计变化成不可纠正错误而导致的服务器宕机的概率。硬件RAS技术强依赖于硬件层与BIOS层。
软件RAS技术可以包括内存隔离页技术等。软件RAS技术依赖于OS层,具体的,BIOS层在检测到内存错误之后,通过SMI中断将该错误上报至OS层,OS层可以在用户业务(即应用层正在执行的业务)不中断的情况下,实时响应SMI中断信息,从而对发生错误的内存页进行隔离。隔离之后,被隔离的内存页不能再被应用层使用,因此,可以保障应用层数据运行在健康的内存地址空间中。
一种RAS技术对应一种RAS功能。例如,内存镜像技术对应内存镜像功能,内存隔离技术对应内存隔离功能。其他示例不再一一列举。
服务器可以支持一种或多种硬件RAS技术。当服务器支持多种硬件RAS技术时,同一时刻,BIOS层可以使能一种硬件RAS技术,或使能多种不互斥的硬件RAS技术。如果两种硬件RAS技术互斥,则其中一种RAS技术对应的RAS功能使能时,另一种RAS技术所对应的RAS功能不能被使能。例如,ADDDC功能和镜像功能互斥。
当ADDDC功能、SDDC功能、内存镜像功能或内存热备功能使能时,内存隔离功能可以处于使能状态。当SMI风暴抑制功能使能时,内存隔离功能失效。
2)、内存镜像技术
内存镜像,是指将服务器的内存分为两个部分,其中的一个部分的数据是另一个部分的数据的镜像,用于创建内存的冗余副本。而内存镜像技术,是对内存地址空间进行冗余备份的技术。其中,内存镜像包括百分比镜像、全镜像和关键地址镜像等。
BIOS层使能内存镜像功能时内存的可靠性,远高于OS层使能内存页隔离功能时内存的可靠性。当BIOS层使能内存镜像功能时,如果OS层使能内存页隔离功能,则会碎片化内存可用空间,大幅降低服务器内存系统可靠性。
3)、SMI风暴抑制技术
SMI风暴抑制技术,是为了防止频繁中断信息上报干扰系统正常运行的一种机制。
如果内存瞬间出现大量的可纠正错误,则BIOS层会产生并向OS层上报大量的SMI中断信息,这会对系统的正常运行造成影响。因此,目前常用的解决方案是,当BIOS层确定内存瞬间出现大量的可纠正错误时,触发SMI风暴抑制功能,并将表示“已触发SMI风暴抑制功能”的信息上报给OS层。OS层接收到该信息之后,控制内存页隔离功能失效。
4)、内存错误分类
内存错误可以分为可纠正错误和不可纠正错误。进一步地,可纠正错误和不可纠正错误又可细分为如下几类:
可纠正错误可以包括:
①巡检可纠正错误(CE patrol error),发生在未被使用的内存页,是被处理器(如CPU)的巡检引擎发现的内存可纠正错误。
②读写可纠正错误(CE read/write error),发生在系统正在使用的内存页。
③搬移可纠正错误(CE sparing error),发生在触发硬件颗粒搬移之后,例如BIOS层使能了ADDDC功能后发生的错误。
④镜像回写失败错误(mirrorscrub failover error),是BIOS层使能了内存镜像功能后,通过回写机制无法纠正,但能使用镜像数据保证BIOS层正常向OS层上报错误信息的错误。
⑤镜像回写成功错误(mirrorscrub error),是使能了内存镜像功能后,通过回写机制纠正成功的错误,BIOS层可以成功向OS层上报该错误的错误信息。
不可纠正错误可以包括:
⑥突发致命错误(fatal error),是由于内存条实体硬件错误造成系统宕机的不可纠正错误。
⑦SRAO错误,是选择处理的不可纠正错误。
⑧UCNA错误,是不需要处理的不可纠正错误。
⑨SRAR错误,是必须处理的不可纠正错误。
⑩巡检不可纠正错误(UCE patrol error),发生在未被使用的内存页,被处理器(如CPU)的巡检引擎发现的内存不可纠正错误。
在一个示例中,上述错误①~⑩的错误码如下:
①巡检可纠正错误的错误码为:Error_Type:CE;MSCODE:0x0008。
②读写可纠正错误的错误码为:Error_Type:CE;MSCODE:0x0101。
③搬移可纠正错误的错误码为:Error_Type:CE;MSCODE:0x0020。
④镜像回写失败错误的错误码为:Error_Type:CE;MSCODE:0x0101;Mci_Misc:Bit(63)。
⑤镜像回写成功错误的错误码为:Error_Type:CE;MSCODE:0x0101;Mci_Misc:Bit(62)。
⑥突发致命错误的错误码为:Error_Type:UCE。
⑦SRAO错误的错误码为:Error_Type:UCE;MSCODE:0x0010。
⑧UCNA错误的错误码为:Error_Type:UCE;MSCODE:0x0101。
⑨SRAR错误的错误码为:Error_Type:UCE;MSCODE:0x0010。
⑩巡检不可纠正错误的错误码为:Error_Type:CE;MSCODE:0x0010。
需要说明的是,在一些实施例中,CPU支持UCE降级功能。本申请实施例中描述的“SRAO错误”是指UCE降级功能关闭时的巡检不可纠正错误。本申请实施例中描述的“巡检不可纠正错误”是指UCE降级功能开启时的巡检不可纠正错误。或者,在一种实现方式中,可以将上述“SRAO错误的错误码Error_Type:UCE;MSCODE:0x0010”理解为“SRAO错误在UCE降级功能关闭时的错误码”,将上述“巡检不可纠正错误的错误码Error_Type:CE;MSCODE:0x0010”理解为“SRAO错误在UCE降级功能开启时的错误码”。
另外,针对上述“巡检不可纠正错误的错误码为:Error_Type:CE;MSCODE:0x0010”,OS层在确定该错误码的Error_Type是CE的情况下,如果确定到MSCODE是0x0010,则认为当前错误是巡检不可纠正错误(即UCE降级功能开启时的巡检不可纠正错误)。
5)、阈值隔离,立即隔离
在使用内存页隔离技术时,为了区分不同的使用条件下所执行的内存页隔离,在本申请的一些实施例中,提出了“阈值隔离”和“立即隔离”的概念。具体的:
阈值隔离,是指:如果当前内存页发生同一类型的错误的累计次数达到预设次数,则对当前内存页进行隔离。其中,预设次数是大于1的整数。
立即隔离,是指,如果当前内存页发生一次某一类型的错误,则对当前内存页进行隔离。
6)、硬件RAS技术和软件RAS技术的兼容性
当服务器支持两种技术时,如果其中一种技术使能时,不对另一种技术造成影响或对另一种技术造成的影响较小,则认为这两种技术兼容性好。
硬件RAS技术和软件RAS技术作为服务器内存可靠性的手段被广泛应用。然而,二者同时使用时,会相互影响。例如,OS层执行内存页隔离之后,被隔离的内存页不再有读写操作,这会导致可纠正错误减少,从而导致底层的硬件RAS特性被触发的概率同步降低。又如,当使能了内存镜像功能,若再次发生内存页隔离,则会导致整体内存可靠性下降。
7)、其他术语
在本申请中,“至少一个”包括一个或多个。“多个”是指两个或两个以上。例如,A、B和C中的至少一个,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请中,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
以下,结合附图对本申请实施例提供的内存错误处理方法进行说明。
如图3所示,为本申请实施例提供的一种内存错误处理方法的流程图。图3所示的方法包括如下步骤:
S101:BIOS层检测到内存发生错误,并记录该错误的错误码。该步骤的具体实现方式可以参考现有技术,此处不再赘述。
S102:BIOS层向OS层发送SMI中断信息。
S103:OS层响应于SMI中断信息,从BIOS层获取内存错误信息。
其中,内存错误信息包括发生错误的内存页(下文中称为“当前内存页”)的标识和错误描述信息,该错误描述信息用于描述当前内存页发生的该错误的类型。当前内存页的标识可以是当前内存页的地址。
错误描述信息,可以是当前内存页发生的错误的错误码,或者是BIOS层对当前内存页发生的错误的错误码进行分析后得到的该错误的类型的标识信息如类型的编号等。在一些实施例中,BIOS层和OS层之间可以预定义每种错误的类型的编号。
本申请实施例对当前内存页发生的错误的类型不进行限定,以下列举几种实现方式:
方式1:当前内存页发生的错误的类型可以是上述错误①~⑩中的任一种。具体可以参考下述表1。
方式2:当前内存页发生的错误的类型可以是上述错误①~⑥以及非致命错误中的任一种。具体可以参考下述表2。
方式3:当前内存页发生的错误的类型可以是可纠正错误中的非镜像回写成功错误、不可纠正错误中的非突发致命错误和其他错误中的任一种。具体可以参考下述表3。
可以理解的是,在背景技术提供的技术方案,当前内存页发生的错误的类型可以是可纠正错误、不可纠正错误中的突发致命错误和不可纠正错误中的非突发致命错误中的任一种。本申请实施例中,对当前页发生的错误的类型与背景技术提供的技术方案不同。在一些实现方式中,本申请实施例对内存页发生的错误的类型进行了更细粒度的分类。
可以理解的是,S102和S103中是以BIOS层通过SMI中断向OS层上报内存错误信息,为例进行说明的,本申请实施例不限于此。也就是说,OS层还可以通过其他方式获取到内存错误信息。
S104:OS层根据错误描述信息确定当前内存页发生的错误的类型。
假设OS层获取到的错误描述信息是错误码,且将错误码中的“Error_Type”称为第一错误码,将“MSCODE”称为第二错误码,将“Mci_Misc”称为第三错误码,那么:
基于上述方式1,S103可以包括:
如果第一错误码是CE,则OS层基于第二错误码的内容获知该错误是错误①、②、③、镜像回写错误或错误⑩。进一步地,如果基于第二错误码的内容获知该错误是镜像回写错误,则基于第三错误码的内容获知该错误是错误④还是错误⑤。
如果第一错误码是UCE,则当错误描述信息不包含第二错误码时,OS层确定该错误是突发致命错误;当错误描述信息包含第二错误码时,OS层确定该错误是非突发致命错误,并进一步基于第二错误码的内容,确定该错误是哪一种非突发致命错误。
基于上述方式2时S103的具体实现方式,与上述基于方式1时S103的具体实现方式的区别在于,如果第一错误码是UCE,则OS层不需要基于第二错误码的内容,确定该错误是哪一种非突发致命错误。
基于上述方式3时S103的具体实现方式,与基于上述方式2时S103的具体实现方式的区别在于,如果第一错误码是CE,则OS层可以基于第二错误码的内容判断该错误是否是镜像回写错误。进一步地,当不是镜像回写错误时,则确定该错误的类型是类型1;当是镜像回写错误时,基于第三错误码的内容获知该错误是错误④还是错误⑤,即可确定该错误的类型是类型1还是类型3。
上文所列举的S103的具体实现方式仅为示例,其不对本申请实施例提供的S103的具体实现方式构成限定。例如,基于上述方式3时,BIOS层和OS层可以预定义通过两个比特的二进制数来表示错误的类型,如采用二进制数“00”来指示类型1,采用“01”来指示类型2,采用“10”来指示类型3,基于此,错误描述信息可以包括表示错误的类型的二进制数,OS层可以基于该二进制数的值来确定当前内存页发生的错误的类型。其他方式也可以基于二进制数来表示错误的类型,此处不再一一说明。
S105:OS层根据当前内存页发生的错误的类型对当前内存页进行处理。
以下,通过具体示例说明S105的具体实现方式。
示例1:基于上述方式1,内存页发生的错误的类型与对该内存页的处理方式之间的对应关系可以如表1所示:
表1
Figure BDA0003490345710000081
基于表1,如果当前内存页发生的错误的类型是类型i,且发生类型i的错误的累计次数达到预设次数,则OS层对当前内存页进行隔离;其中,i=1、2、3或4。当i取不同值时,所对应的预设次数可以相同,也可以不同。如果当前内存页发生的错误的类型是类型5或类型6,则OS层对当前内存页进行隔离。如果当前内存页发生的错误的类型是类型7~10,则OS层不对当前内存页进行隔离。也就是说,OS层需要识别具体是错误①~⑩中的哪一种。
示例2:基于上述方式2,内存页发生的错误的类型与对该内存页的处理方式之间的对应关系可以如表2所示:
表2
Figure BDA0003490345710000082
基于表2,如果当前内存页发生的错误的类型是类型i,且发生类型i的错误的累计次数达到预设次数,则OS层对当前内存页进行隔离。i=1、2、3或4。当i取不同值时,所对应的预设次数可以相同,也可以不同。如果当前内存页发生的错误的类型是类型5或类型6,则OS层对当前内存页进行隔离。如果当前内存页发生的错误的类型是类型7,则OS层不对当前内存页进行隔离。也就是说,OS层只需要识别当前内存页发生的错误的类型是表2中所示的类型1~7中的哪一种,对于类型7来说,不需要识别具体是错误⑦~⑩中的哪一种。
示例3:基于上述方式3,内存页发生的错误的类型与对该内存页的处理方式之间的对应关系可以如表3所示:
表3
Figure BDA0003490345710000091
基于表3,S105可以包括:如果当前内存页发生的错误是可纠正错误中的非镜像回写成功错误,且发生该类型的错误的累计次数达到预设次数,则OS层对当前内存页进行隔离。如果当前内存页发生的错误是不可纠错误中的正非突发致命错误,则OS层对当前内存页进行隔离。如果当前内存页发生的错误是其他错误,则OS层不对当前内存页进行隔离。图3是以此为例进行说明的。也就是说,OS层只需要识别当前内存页发生的错误的类型是表1中所示的类型1~3中的哪一种,不需要识别具体是错误①~⑩中的哪一种。
基于示例3,S105可以描述为:OS层采用不同的处理方式处理不同类型的错误。
基于上文提供的任一种示例,对于⑦SRAO错误、⑧UCNA错误和⑨SRAR错误来说,现有技术中是通过关闭使用当前内存页的应用实现内存页隔离的,这会对用户业务造成一定的影响。可选的,在本申请实施例提供的技术方案中,OS层可以直接对当前内存页进行隔离,而不关闭使用当前内存页的应用,这样不会对用户业务造成影响。
基于上文提供的任一种示例,如果当前内存页发生的错误的类型是阈值隔离方式所对应的错误类型,那么:可选的,若当前内存页发生该类型的错误的累计次数达到预设次数,则OS层对当前内存页进行隔离,并将当前内存页发生该类型的错误的累计次数清零。若当前内存页发生该类型的错误的累计次数没有达到预设次数,则OS层对当前内存页进行隔离,并将当前内存页发生该类型的错误的累计次数加1。其中,服务器中可以设置用于记录当前内存页发生该类型的错误的次数的计数器,该计数器可以通过软件和/或硬件实现。
本申请实施例中,当内存发生可纠正错误中的非镜像回写成功错误(如巡检可纠正错误、读写可纠正错误、搬移可纠正错误或镜像回写失败错误)时,采用阈值隔离的方式。这是在考虑到可纠正错误中的非镜像回写成功错误虽然不会导致服务器宕机,但是会对内存的健康度造成一定的影响而提出的技术方案。并且,由于立即隔离会导致系统产生不可用碎片化内存从而影响系统性能,因此,相比立即隔离,采用阈值隔离可以减少因内存页隔离而导致的对系统性能的影响。另外,由于相比立即隔离,阈值隔离可以降低内存页隔离对底层硬件RAS特性(ADDDC/SDDC/ranksparing/SMI风暴抑制)触发的影响,因此,可以提高硬件RAS技术和软件RAS技术的兼容性。
其中,本申请实施例对预设次数的具体取值以及根据何种因素确定预设次数的取值不进行限定,例如,可以综合考虑内存页隔离对系统性能的影响,以及当前发生的内存错误对内存的健康度的影响等因素来确定预设次数的取值。对于可纠正错误中的不同类型的非镜像回写成功错误(如巡检可纠正错误、读写可纠正错误、搬移可纠正错误或镜像回写失败错误)来说,预设次数可以相等,也可以不相等。
本申请实施例中,当内存发生镜像回写成功错误时,采用不隔离的方式。这是考虑到“使能内存镜像功能时,如果执行内存页隔离功能,则会碎片化内存可用空间,大幅降低服务器内存系统可靠性”而提出的技术方案。这样,可以降低软件RAS技术与硬件RAS技术之间的耦合关系,从而提高了整体内存系统的可靠性。
本申请实施例中,当内存发生巡检不可纠正错误时,采用立即隔离的方式。这是考虑到“巡检不可纠正错误是非宕机不可纠正错误,发生该错误时,服务器处于内存宕机边缘”而提出的技术方案。这样可以防止病态内存导致服务器宕机。
需要说明的是,对于镜像回写失败错误来说,由于内存地址空间镜像为内存数据读写提供了冗余备份的空间,其可靠性高于内存页隔离;但是当数据备份空间发现错误,进行错误回写时,若回写失败,则会演化出新的镜像回写失败错误;若产生该类错误,则内存空间的工作区与备份区将解绑,恢复为可用内存,此时,备份区与普通内存(即镜像内存功能处于非使能状态时的内存)相同,因此,对其采用阈值隔离。
上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对内存错误处理装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图4所示,为本申请实施例提供的一种内存错误处理装置40的结构示意图。作为一个示例,内存错误处理装置40可以是服务器。内存错误处理装置40可以用于执行图3所示的内存错误处理方法。内存错误处理装置40可以包括获取单元401、确定单元402和隔离单元403。在一个示例中,结合图1所示的服务器,上述获取单元401、确定单元402和隔离单元403均可以通过图1中的处理器101来实现。在另一个示例中,结合图2所示的服务器,上述获取单元401、确定单元402和隔离单元403均可以通过图2中的OS层实现。
在一些实施例中,获取单元401用于获取第一错误描述信息;第一错误描述信息用于描述第一内存页发生的错误的类型。确定单元402用于根据第一错误描述信息确定第一内存页发生的错误是可纠正错误中的非镜像回写成功错误。隔离单元403用于响应上述确定,当第一内存页发生非镜像回写成功错误的次数达到M时,对第一内存页进行隔离,M为大于1的整数。例如,结合图3,获取单元401可以用于执行S103中OS层获取内存错误信息的步骤。确定单元402可以用于执行S104。隔离单元403可以用于执行S105中的“如果当前内存页发生的错误是可纠正错误中的非镜像回写成功错误,且发生该类型的错误的累计次数达到M,则对当前内存页进行隔离”的步骤。
可选的,非镜像回写成功错误包括:巡检可纠正错误、读写可纠正错误、搬移可纠正错误或镜像回写失败错误中的任意一种。
在一些实施例中,获取单元401用于获取第二错误描述信息;第二错误描述信息用于描述第二内存页发生的错误的类型。确定单元402还用于,根据第二错误描述信息确定第二内存页发生的错误是不可纠正错误中的非突发致命错误。隔离单元403用于如果根据第二错误描述信息确定第二内存页发生的错误是不可纠正错误,则当第二内存页发生的错误是非突发致命错误时,对第二内存页进行隔离。例如,结合图3,获取单元401可以用于执行S103中OS层获取内存错误信息的步骤。确定单元402可以用于执行S104。隔离单元403可以用于执行S105中的“如果当前内存页发生的错误是不可纠正错误中的非突发致命错误,则对当前内存页进行隔离”的步骤。
可选的,非突发致命错误包括:UCNA错误、SRAO错误、SRAR错误或巡检不可纠正错误中的任意一种。
可选的,当非突发致命错误是SRAO错误、UCNA错误或SRAR错误时,在对第二内存页进行隔离之后,不关闭使用第二内存页的应用。
在一些实施例中,如果当前内存页发生的错误是其他错误(即除可纠正错误中的非镜像回写成功错误和不可纠正错误中的非突发致命错误外的错误),则不对当前内存页进行隔离。
上述提供的任一种内存错误处理装置40中相关内容的解释以及有益效果的描述等均可参考上述对应的方法实施例,此处不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (11)

1.一种内存错误处理方法,其特征在于,所述方法应用于计算机装置中的处理器,所述方法包括:
获取第一错误描述信息,所述第一错误描述信息用于描述第一内存页的错误类型;
根据所述第一错误描述信息确定所述第一内存页的错误类型是可纠正错误中的非镜像回写成功错误;
当所述第一内存页发生所述非镜像回写成功错误的次数达到M时,对所述第一内存页进行隔离,所述M为大于1的整数。
2.根据权利要求1所述的方法,其特征在于,所述非镜像回写成功错误包括:巡检可纠正错误、读写可纠正错误、搬移可纠正错误或镜像回写失败错误中的任意一种。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取第二错误描述信息,所述第二错误描述信息用于描述第二内存页错误类型;
根据所述第二错误描述信息确定所述第二内存页发生的错误是不可纠正错误中的非突发致命错误;
对所述第二内存页进行隔离。
4.根据权利要求3所述的方法,其特征在于,所述非突发致命错误包括:不需要处理UCNA错误、选择处理SRAO错误、必须处理SRAR错误或巡检不可纠正错误中的任意一种。
5.根据权利要求4所述的方法,其特征在于,当所述非突发致命错误是SRAO错误、UCNA错误或SRAR错误时,在对所述第二内存页进行隔离之后,不关闭使用所述第二内存页的应用。
6.一种内存错误处理装置,其特征在于,所述内存错误处理装置为计算机装置中的处理器,所述内存错误处理装置包括:
获取单元,用于获取第一错误描述信息,所述第一错误描述信息用于描述第一内存页的错误类型;
确定单元,用于根据所述第一错误描述信息确定所述第一内存页的错误类型是可纠正错误中的非镜像回写成功错误;
隔离单元,用于当所述第一内存页发生所述非镜像回写成功错误的次数达到M时,对所述第一内存页进行隔离,所述M为大于1的整数。
7.根据权利要求6所述的装置,其特征在于,所述非镜像回写成功错误包括:巡检可纠正错误、读写可纠正错误、搬移可纠正错误或镜像回写失败错误中的任意一种。
8.根据权利要求6或7所述的装置,其特征在于,
所述获取单元,还用于获取第二错误描述信息,所述第二错误描述信息用于描述第二内存页的错误类型;
所述确定单元,还用于根据所述第二错误描述信息确定所述第二内存页发生的错误是不可纠正错误中的非突发致命错误;
所述隔离单元,还用于对所述第二内存页进行隔离。
9.根据权利要求8所述的装置,其特征在于,所述非突发致命错误包括:不需要处理UCNA错误、选择处理SRAO错误、必须处理SRAR错误或巡检不可纠正错误中的任意一种。
10.根据权利要求9所述的装置,其特征在于,当所述非突发致命错误是SRAO错误、UCNA错误或SRAR错误时,在对所述第二内存页进行隔离之后,不关闭使用所述第二内存页的应用。
11.一种内存错误处理装置,其特征在于,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于调用所述计算机指令以执行权利要求1至5任一项所述的方法。
CN202210094649.9A 2019-03-01 2019-03-01 内存错误处理方法和装置 Pending CN114579340A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210094649.9A CN114579340A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910157218.0A CN110046061A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置
CN202210094649.9A CN114579340A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910157218.0A Division CN110046061A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置

Publications (1)

Publication Number Publication Date
CN114579340A true CN114579340A (zh) 2022-06-03

Family

ID=67274439

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210094649.9A Pending CN114579340A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置
CN201910157218.0A Pending CN110046061A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910157218.0A Pending CN110046061A (zh) 2019-03-01 2019-03-01 内存错误处理方法和装置

Country Status (4)

Country Link
US (1) US20210389956A1 (zh)
EP (1) EP3916557B1 (zh)
CN (2) CN114579340A (zh)
WO (1) WO2020177493A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115686901A (zh) * 2022-10-25 2023-02-03 超聚变数字技术有限公司 内存故障分析方法及计算机设备
WO2024041093A1 (zh) * 2022-08-25 2024-02-29 超聚变数字技术有限公司 一种处理内存故障的方法及其相关设备

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579340A (zh) * 2019-03-01 2022-06-03 超聚变数字技术有限公司 内存错误处理方法和装置
CN110781053A (zh) * 2019-09-29 2020-02-11 苏州浪潮智能科技有限公司 一种检测内存降级错误的方法和装置
CN111008091A (zh) * 2019-12-06 2020-04-14 苏州浪潮智能科技有限公司 一种内存ce的故障处理方法、系统及相关装置
CN111625387B (zh) * 2020-05-27 2024-03-29 北京金山云网络技术有限公司 内存错误处理方法、装置及服务器
CN112231128A (zh) * 2020-09-11 2021-01-15 中科可控信息产业有限公司 内存错误处理方法、装置、计算机设备和存储介质
CN114090316A (zh) * 2021-11-15 2022-02-25 北京字节跳动网络技术有限公司 内存故障处理方法、装置、存储介质及电子设备
CN116166459A (zh) * 2021-11-25 2023-05-26 华为技术有限公司 一种内存硬件故障检测方法、装置以及内存控制器
CN114518972A (zh) * 2022-02-14 2022-05-20 海光信息技术股份有限公司 内存错误处理方法、装置、内存控制器及处理器
US20230315561A1 (en) * 2022-03-31 2023-10-05 Google Llc Memory Error Recovery Using Write Instruction Signaling
CN116954981A (zh) * 2022-04-12 2023-10-27 华为技术有限公司 存储数据的方法、读取数据的方法和相关设备
WO2024036473A1 (en) * 2022-08-16 2024-02-22 Micron Technology, Inc. Selectable error handling modes in memory systems
CN115292113B (zh) * 2022-09-30 2023-01-06 新华三信息技术有限公司 对服务器的内存进行故障检测方法、装置及电子设备
CN115543677A (zh) * 2022-11-29 2022-12-30 苏州浪潮智能科技有限公司 一种可纠正错误处理方法、装置、设备及可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684292B2 (en) * 2001-09-28 2004-01-27 Hewlett-Packard Development Company, L.P. Memory module resync
CN102203740B (zh) * 2011-05-27 2013-06-05 华为技术有限公司 数据处理方法、装置及系统
US9244852B2 (en) * 2013-05-06 2016-01-26 Globalfoundries Inc. Recovering from uncorrected memory errors
US9396059B2 (en) * 2013-12-19 2016-07-19 Intel Corporation Exchange error information from platform firmware to operating system
WO2015157932A1 (en) * 2014-04-16 2015-10-22 Intel Corporation Method, apparatus and system for handling data error events with memory controller
CN105808394B (zh) * 2014-12-31 2020-09-04 南京中兴新软件有限责任公司 一种服务器自愈的方法和装置
CN105893166A (zh) * 2016-04-29 2016-08-24 浪潮电子信息产业股份有限公司 一种处理内存错误的方法及装置
CN106201750A (zh) * 2016-06-28 2016-12-07 浪潮(北京)电子信息产业有限公司 一种基于linux内存错误的处理方法及装置
CN106445720A (zh) * 2016-10-11 2017-02-22 郑州云海信息技术有限公司 一种内存错误恢复方法和装置
US10496470B2 (en) * 2016-12-30 2019-12-03 Western Digital Technologies, Inc. Error recovery handling
CN109086151A (zh) * 2017-06-13 2018-12-25 中兴通讯股份有限公司 一种服务器上隔离内存故障的方法及装置
US20190188092A1 (en) * 2017-12-19 2019-06-20 International Business Machines Corporation Memory error recovery
CN114579340A (zh) * 2019-03-01 2022-06-03 超聚变数字技术有限公司 内存错误处理方法和装置
KR20230041103A (ko) * 2020-08-05 2023-03-23 후아웨이 테크놀러지 컴퍼니 리미티드 메모리 고장 처리 방법 및 장치
US20220050603A1 (en) * 2021-09-22 2022-02-17 Intel Corporation Page offlining based on fault-aware prediction of imminent memory error

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024041093A1 (zh) * 2022-08-25 2024-02-29 超聚变数字技术有限公司 一种处理内存故障的方法及其相关设备
CN115686901A (zh) * 2022-10-25 2023-02-03 超聚变数字技术有限公司 内存故障分析方法及计算机设备
CN115686901B (zh) * 2022-10-25 2023-08-04 超聚变数字技术有限公司 内存故障分析方法及计算机设备

Also Published As

Publication number Publication date
EP3916557B1 (en) 2024-02-14
WO2020177493A1 (zh) 2020-09-10
EP3916557A4 (en) 2022-03-30
US20210389956A1 (en) 2021-12-16
CN110046061A (zh) 2019-07-23
EP3916557A1 (en) 2021-12-01

Similar Documents

Publication Publication Date Title
CN114579340A (zh) 内存错误处理方法和装置
US10921994B2 (en) Managing storage array configuration
EP2048579B1 (en) System and method for managing memory errors in an information handling system
US7308603B2 (en) Method and system for reducing memory faults while running an operating system
JP5932042B2 (ja) 不揮発性媒体のダーティー領域追跡
US10120769B2 (en) Raid rebuild algorithm with low I/O impact
US8589726B2 (en) System and method for uncovering data errors
US9529674B2 (en) Storage device management of unrecoverable logical block addresses for RAID data regeneration
US10346247B1 (en) Adjustable error sensitivity for taking disks offline in a mapped RAID storage array
US20170270000A1 (en) Method for storage management and storage device
US8782465B1 (en) Managing drive problems in data storage systems by tracking overall retry time
US9280431B2 (en) Prioritizing backups on a disk level within enterprise storage
US10445193B2 (en) Database failure recovery in an information handling system
EP4280064A1 (en) Systems and methods for expandable memory error handling
US9104598B2 (en) Systems and methods for medium error reporting and handling in storage devices
US8711684B1 (en) Method and apparatus for detecting an intermittent path to a storage system
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
US20130110789A1 (en) Method of, and apparatus for, recovering data on a storage system
US20210208969A1 (en) Dropped write error detection
US7895493B2 (en) Bus failure management method and system
US11953985B1 (en) Dial-home and template based automatic recovery of virtual machine guest operating system
US11520488B2 (en) Method and apparatus for identifying a device missing from a consistency group
US20240160728A1 (en) Snapset Restricted Utilization and Preservation
CN112073519B (zh) 操作请求的处理方法和装置
US20240126837A1 (en) Proactive Service Requests for Forecast Storage System Failures

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination