CN115543595A - 一种内存故障处理方法、装置、设备及可读存储介质 - Google Patents

一种内存故障处理方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN115543595A
CN115543595A CN202110731398.6A CN202110731398A CN115543595A CN 115543595 A CN115543595 A CN 115543595A CN 202110731398 A CN202110731398 A CN 202110731398A CN 115543595 A CN115543595 A CN 115543595A
Authority
CN
China
Prior art keywords
physical address
white list
memory
address
physical
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
CN202110731398.6A
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202110731398.6A priority Critical patent/CN115543595A/zh
Publication of CN115543595A publication Critical patent/CN115543595A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请公开了一种内存故障处理方法、装置、设备及可读存储介质。本申请在内存发生可修正错误时,首先获取发生可修正错误的物理地址,进而判断该物理地址是否被PA模式的进程占用,若该物理地址被PA模式的进程占用,则不隔离该物理地址,并对该物理地址进行数据纠错,以使该物理地址能够正常被使用,当然PA模式的进程也能够正常使用该物理地址,避免引发进程出错或系统内核宕机等问题。相应地,本申请提供的一种内存故障处理装置、设备及可读存储介质,也同样具有上述技术效果。

Description

一种内存故障处理方法、装置、设备及可读存储介质
技术领域
本申请涉及计算机技术领域,特别涉及一种内存故障处理方法、装置、设备及可读存储介质。
背景技术
目前,内存在遇到一些CE(Corrected Error,可修正错误)时,会把出现CE的物理地址隔离,以使故障内存不被访问。若使用PA模式的进程恰好需要使用被隔离的物理地址,会引发进程出错或系统内核宕机等问题。
因此,如何使PA模式的进程正常使用内存物理地址,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种内存故障处理方法、装置、设备及可读存储介质,以使PA模式的进程正常使用内存物理地址。其具体方案如下:
第一方面,本申请提供了一种内存故障处理方法,包括:
若内存发生可修正错误,则获取发生可修正错误的物理地址;
判断所述物理地址是否被PA模式的进程占用;
若所述物理地址被所述进程占用,则不隔离所述物理地址,并对所述物理地址进行数据纠错。
优选地,所述判断所述物理地址是否被PA模式的进程占用,包括:
判断所述物理地址是否记录在白名单中;所述白名单记录有所述进程使用的内存物理地址;
若所述物理地址记录在所述白名单中,则确定所述物理地址被所述进程占用;
若所述物理地址未记录在所述白名单中,则确定所述物理地址未被所述进程占用。
优选地,所述判断所述物理地址是否记录在白名单中,包括:
判断所述白名单是否已上锁;
若所述白名单已上锁,则等待预设时长后,执行所述判断所述白名单是否已上锁的步骤;
若所述白名单未上锁,则对所述白名单添加阻塞锁,将所述白名单记录的所有内存物理地址读取至容器后,释放所述阻塞锁;遍历所述容器,以检查所述白名单中是否记录有所述物理地址。
优选地,所述判断所述白名单是否已上锁之前,还包括:
判断所述白名单的当前文件信息与所述白名单的历史文件信息是否相同;
若所述当前文件信息与所述历史文件信息相同,则执行所述遍历所述容器,以检查所述白名单中是否记录有所述物理地址的步骤;
若所述当前文件信息与所述历史文件信息不同,则执行所述判断所述白名单是否已上锁的步骤。
优选地,还包括:
若所述物理地址未被所述进程占用,则隔离所述物理地址。
优选地,所述白名单的生成过程包括:
创建所述白名单,并对所述白名单添加非阻塞锁;
将所述进程使用的内存物理地址写入所述白名单,并更新所述白名单的文件信息后,释放所述非阻塞锁。
优选地,所述将所述进程使用的内存物理地址写入所述白名单,包括:
将所述进程使用的内存物理地址的地址范围写入所述白名单。
优选地,所述对所述物理地址进行数据纠错,包括:
读取所述物理地址存储的目标数据,并计算读取到的目标数据的第一校验结果,根据所述第一校验结果和第二校验结果对所述物理地址进行数据纠错;所述第二校验结果为:写入所述目标数据至所述物理地址时所述目标数据的校验结果;
读取所述物理地址存储的目标数据,以及所述物理地址的镜像地址存储的目标数据,对比读取到的两份目标数据,以对所述物理地址进行数据纠错。
第二方面,本申请提供了一种内存故障处理装置,包括:
获取模块,用于若内存发生可修正错误,则获取发生可修正错误的物理地址;
判断模块,用于判断所述物理地址是否被PA模式的进程占用;
处理模块,用于若所述物理地址被所述进程占用,则不隔离所述物理地址,并对所述物理地址进行数据纠错。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的内存故障处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的内存故障处理方法。
通过以上方案可知,本申请提供了一种内存故障处理方法,包括:若内存发生可修正错误,则获取发生可修正错误的物理地址;判断所述物理地址是否被PA模式的进程占用;若所述物理地址被所述进程占用,则不隔离所述物理地址,并对所述物理地址进行数据纠错。
可见,本申请在内存发生可修正错误时,首先获取发生可修正错误的物理地址,进而判断该物理地址是否被PA模式的进程占用,若该物理地址被PA模式的进程占用,则不隔离该物理地址,并对该物理地址进行数据纠错,以使该物理地址能够正常被使用,当然PA模式的进程也能够正常使用该物理地址,避免引发进程出错或系统内核宕机等问题。
相应地,本申请提供的一种内存故障处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种内存故障处理方法流程图;
图2为本申请公开的一种内存故障处理方案示意图;
图3为本申请公开的另一种内存故障处理方法流程图;
图4为本申请公开的一种内存故障处理装置示意图;
图5为本申请公开的一种电子设备示意图;
图6为本申请公开的另一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,内存在遇到一些CE(Corrected error,可修正错误)时,会把出现CE的物理地址隔离,以使故障内存不被访问。若使用PA模式的进程恰好需要使用被隔离的物理地址,会引发进程出错或系统内核宕机等问题。为此,本申请提供了一种内存故障处理方案,能够不对PA模式的进程所使用的物理地址进行隔离,使得PA模式的进程能够正常使用其对应的物理地址。本申请所提及的“物理地址”均指内存物理地址。
参见图1所示,本申请实施例公开了一种内存故障处理方法,包括:
S101、内存发生可修正错误。
需要说明的是,内存错误一般被称为ECC(Error Correction Code),有些内存错误可被修正,有些无法被修正。其中,可被修正的错误称为可修正错误。若内存发生可修正错误,一般会将发生可修正错误的物理地址隔离,以免发生可修正错误的物理地址被访问。但由于使用这些物理地址的进程不知道该物理地址已被隔离,因此这些进程通过内核网卡接口(Kernel NIC Interface)驱动使用这些物理地址时,会引发内核宕机等问题。
S102、获取发生可修正错误的物理地址。
S103、判断物理地址是否被PA模式的进程占用;若是,则执行S104;若否,则执行S105。
其中,PA(Physical Address)模式的进程即:需要使用连续的内存物理地址的进程,如数据面(dataplane,dp)进程。
S104、不隔离物理地址,并对物理地址进行数据纠错。
S105、隔离物理地址。
其中,对发生可修正错误的物理地址进行数据纠错可以使用自动恢复的ECC处理机制,也可以使用内存镜像冗余机制。此两种机制所涉及的数据写入和读取可由PA模式的进程发起,也可由其他进程或服务发起。
自动恢复的ECC处理机制即:写入数据至发生可修正错误的物理地址时,计算该数据的校验结果;待下次从该物理地址读取数据时,计算所读取的数据的当前校验结果;若此当前校验结果与存入数据时所计算的校验结果一致,则说明该物理地址已自动恢复,其所存储的数据未出错;若此当前校验结果与存入数据时所计算的校验结果不一致,则说明该物理地址仍旧存在错误,此时可以对比当前校验结果与存入数据时所计算的校验结果,以确定出错的数据位,从而对该物理地址进行数据纠错。其中,以存入数据时所计算的校验结果为基准,即:认为存入时刻的数据正常,数据存储过程中可能发生电游离等情况,导致读取的数据出错。
内存镜像冗余机制即:预留部分物理内存当做冗余备份,当写入数据至发生可修正错误的物理地址时,同时在冗余备份的地址上也写入一份数据(该数据可以从发生可修正错误的物理地址上拷贝得到),此两份数据完全相同。因为冗余备份地址和发生可修正错误的物理地址同时出错的概率很低,因此以冗余备份地址所存储的数据为基准,可对发生可修正错误的物理地址中所存储的数据进行数据纠错。
需要说明的是,被隔离的物理地址一般会弃之不用,因此被隔离的物理地址越多,内存的可用性就越低。本实施例不隔离被PA模式的进程占用的、发生可修正错误的物理地址,并对物理地址进行数据纠错,可以避免物理地址被弃之不用,从而提高内存的可用性,延长内存使用寿命。
因此在一种具体实施方式中,对物理地址进行数据纠错,包括:读取物理地址存储的目标数据,并计算读取到的目标数据的第一校验结果,根据第一校验结果和第二校验结果对物理地址进行数据纠错;第二校验结果为:写入目标数据至物理地址时目标数据的校验结果;或读取物理地址存储的目标数据,以及物理地址的镜像地址存储的目标数据,对比读取到的两份目标数据,以对物理地址进行数据纠错。
可见,本实施例在内存发生可修正错误时,首先获取发生可修正错误的物理地址,进而判断该物理地址是否被PA模式的进程占用,若该物理地址被PA模式的进程占用,则不隔离该物理地址,并对该物理地址进行数据纠错,以使该物理地址能够正常被使用,当然PA模式的进程也能够正常使用该物理地址,避免引发进程出错或系统内核宕机等问题。
基于上述实施例,需要说明的是,可以提前使用白名单记录PA模式的进程使用的各个内存物理地址,以便检测发生可修正错误的物理地址是否被PA模式的进程占用。
在一种具体实施方式中,判断物理地址是否被PA模式的进程占用,包括:判断物理地址是否记录在白名单中;白名单记录有进程使用的内存物理地址;若是,则确定物理地址被进程占用;否则,确定物理地址未被进程占用。
在一种具体实施方式中,判断物理地址是否记录在白名单中,包括:判断白名单是否已上锁;若是,则等待预设时长后,执行判断白名单是否已上锁的步骤,直至白名单未上锁;若否,则对白名单添加阻塞锁,将白名单记录的所有内存物理地址读取至容器后,释放阻塞锁;遍历容器(用于存放白名单内容,以提高遍历效率),以检查白名单中是否记录有物理地址。其中,阻塞锁可以保证只有一方访问白名单,若更新白名单的进程想要更新白名单,则等待阻塞锁被释放后,立即进行更新,因此阻塞锁可保障白名单的即时更新。
在一种具体实施方式中,判断白名单是否已上锁之前,还包括:判断白名单的当前文件信息与白名单的历史文件信息是否相同;若是,则直接执行遍历容器,以检查白名单中是否记录有物理地址的步骤;若否,则执行判断白名单是否已上锁;若是,则等待预设时长后,执行判断白名单是否已上锁的步骤,直至白名单未上锁;若否,则对白名单添加阻塞锁,将白名单记录的所有内存物理地址读取至容器后,释放阻塞锁;遍历容器,以检查白名单中是否记录有物理地址的步骤。其中,文件信息可以包括:创建时间、修改时间、大小等。
在一种具体实施方式中,白名单的生成过程包括:创建白名单,并对白名单添加非阻塞锁;将进程使用的内存物理地址写入白名单,并更新白名单的文件信息后,释放非阻塞锁。相应的,白名单的更新过程包括:在确定白名单未上锁的情况下,对白名单添加非阻塞锁;将进程使用的内存物理地址写入白名单,并更新白名单的文件信息后,释放非阻塞锁。其中,非阻塞锁可以保证只有一方访问白名单,若有另一方想要更新白名单或读取白名单,则让另一方直接退出,因此非阻塞锁可保障写入白名单时不出错。
在一种具体实施方式中,将进程使用的内存物理地址写入白名单,包括将进程使用的内存物理地址的地址范围写入白名单。地址范围可按照<首地址:地址长度>或者<首地址+默认页面长度>的方式记录,均采用16进制方式,如此可提升地址遍历效率。其中,默认页面长度即:内存的一个页面大小,如4K。
如图2所示,下述实施例以dp进程为例,提供了一种内存故障处理方案,在该方案中,隔离程序和dp进程通过白名单建立联系,dp进程负责将自身使用的大页地址(即内存物理地址)写入白名单,隔离程序在隔离大页地址前,对地址是否在白名单内进行检查,如果在白名单内,则不进行隔离,否则进行隔离。
方案流程请参见图3,具体包括如下几方面:
1、dp初始化(明确dp进程使用的内存物理地址),dp进程申请得到这些大页地址后,对白名单文件上非阻塞锁,写大页地址到白名单,然后释放锁,退出。白名单采用<首地址:长度>或者<首地址+默认页面长度>的方式,均采用16进制方式,提升白名单检查时遍历效率。
其中,如果文件已经上锁,则提出。如果长时间阻塞锁,则强行写大页地址到白名单,以确保白名单地址为最新的dp大页地址。
其中,dp进程申请得到这些大页地址后,通过/proc/pid(dp进程的进程号)/pagemap系统文件映射出其使用的大页地址。如是其他PA模式的进程申请大页地址,则通过其对应的系统文件(文件记录当前进程的进程号)映射其使用的大页地址。
2、隔离进程获知发生可修正错误的大页地址,其在进行大页地址隔离之前,会对白名单文件上阻塞锁,如果文件已经上锁,一直等待锁释放后再上锁,然后读取白名单,并释放文件锁。具体采用文件读取方式,一次性读取全部的白名单地址,并将结果保存至容器中,以便遍历容器中的地址。
其中,在每次白名单读取前,通过判断白名单文件信息是否发生改变来确定是否需要执行读取操作。如果发生改变,则读取白名单至容器中;如果没有发生改变,则跳过读取白名单文件步骤,直接遍历容器。
3、通过遍历容器对白名单的地址进行检查,如果发生可修正错误的地址出现在容器地址范围内,则打印信息(即输出该地址)并跳过隔离。如果发生可修正错误的地址没有出现在容器地址范围内,则进行隔离。
4、如果发生可修正错误的地址出现在容器地址范围内,则针对该地址进行数据纠错,可以使用自动恢复的ECC处理机制或内存镜像冗余机制,具体可参照上述实施例的相关介绍。
可见,本实施例针对dp进程使用的内存地址设置白名单,可以避免隔离其使用的内存地址,因此可避免dp进程出错、内核宕机等问题,降低了对系统的影响。
下面对本申请实施例提供的一种内存故障处理装置进行介绍,下文描述的一种内存故障处理装置与上文描述的一种内存故障处理方法可以相互参照。
参见图4所示,本申请实施例公开了一种内存故障处理装置,包括:
获取模块401,用于若内存发生可修正错误,则获取发生可修正错误的物理地址;
判断模块402,用于判断物理地址是否被PA模式的进程占用;
处理模块403,用于若物理地址被进程占用,则不隔离物理地址,并对物理地址进行数据纠错。
在一种具体实施方式中,判断模块包括:
判断单元,用于判断物理地址是否记录在白名单中;白名单记录有进程使用的内存物理地址;若是,则确定物理地址被进程占用;否则,确定物理地址未被进程占用。
在一种具体实施方式中,判断单元包括:
第一判断子单元,用于判断白名单是否已上锁;
迭代子单元,用于若白名单已上锁,则等待预设时长后,执行判断白名单是否已上锁的步骤;
检查单元,用于若白名单未上锁,则对白名单添加阻塞锁,将白名单记录的所有内存物理地址读取至容器后,释放阻塞锁;遍历容器,以检查白名单中是否记录有物理地址。
在一种具体实施方式中,判断单元还包括:
第二判断子单元,用于判断白名单的当前文件信息与白名单的历史文件信息是否相同;
第一执行子单元,用于若白名单的当前文件信息与白名单的历史文件信息相同,则执行遍历容器,以检查白名单中是否记录有物理地址的步骤;
第二执行子单元,用于若白名单的当前文件信息与白名单的历史文件信息不同,则执行判断白名单是否已上锁的步骤。
在一种具体实施方式中,还包括:
隔离模块,用于若物理地址未被进程占用,则隔离物理地址。
在一种具体实施方式中,白名单的生成过程包括:
创建白名单,并对白名单添加非阻塞锁;
将进程使用的内存物理地址写入白名单,并更新白名单的文件信息后,释放非阻塞锁。
在一种具体实施方式中,将进程使用的内存物理地址写入白名单,包括:
将进程使用的内存物理地址的地址范围写入白名单。
在一种具体实施方式中,处理模块包括:
第一纠错单元,用于读取物理地址存储的目标数据,并计算读取到的目标数据的第一校验结果,根据第一校验结果和第二校验结果对物理地址进行数据纠错;第二校验结果为:写入目标数据至物理地址时目标数据的校验结果;
第二纠错单元,用于读取物理地址存储的目标数据,以及物理地址的镜像地址存储的目标数据,对比读取到的两份目标数据,以对物理地址进行数据纠错。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种内存故障处理装置,该装置在内存发生可修正错误时,首先获取发生可修正错误的物理地址,进而判断该物理地址是否被PA模式的进程占用,若该物理地址被PA模式的进程占用,则不隔离该物理地址,并对该物理地址进行数据纠错,以使该物理地址能够正常被使用,当然PA模式的进程也能够正常使用该物理地址,避免引发进程出错或系统内核宕机等问题。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种内存故障处理方法及装置可以相互参照。
参见图5所示,本申请实施例公开了一种电子设备,包括:
存储器501,用于保存计算机程序;
处理器502,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
请参考图6,图6为本实施例提供的另一种电子设备示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processingunits,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在电子设备301上执行存储介质330中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
在图6中,应用程序342可以是执行内存故障处理方法的程序,数据344可以是执行内存故障处理方法所需的或产生的数据。
上文所描述的内存故障处理方法中的步骤可以由电子设备的结构实现。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种内存故障处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的内存故障处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种内存故障处理方法,其特征在于,包括:
若内存发生可修正错误,则获取发生可修正错误的物理地址;
判断所述物理地址是否被PA模式的进程占用;
若所述物理地址被所述进程占用,则不隔离所述物理地址,并对所述物理地址进行数据纠错。
2.根据权利要求1所述的方法,其特征在于,所述判断所述物理地址是否被PA模式的进程占用,包括:
判断所述物理地址是否记录在白名单中;所述白名单记录有所述进程使用的内存物理地址;
若所述物理地址记录在所述白名单中,则确定所述物理地址被所述进程占用;
若所述物理地址未记录在所述白名单中,则确定所述物理地址未被所述进程占用。
3.根据权利要求2所述的方法,其特征在于,所述判断所述物理地址是否记录在白名单中,包括:
判断所述白名单是否已上锁;
若所述白名单已上锁,则等待预设时长后,执行所述判断所述白名单是否已上锁的步骤;
若所述白名单未上锁,则对所述白名单添加阻塞锁,将所述白名单记录的所有内存物理地址读取至容器后,释放所述阻塞锁;遍历所述容器,以检查所述白名单中是否记录有所述物理地址。
4.根据权利要求3所述的方法,其特征在于,所述判断所述白名单是否已上锁之前,还包括:
判断所述白名单的当前文件信息与所述白名单的历史文件信息是否相同;
若所述当前文件信息与所述历史文件信息相同,则执行所述遍历所述容器,以检查所述白名单中是否记录有所述物理地址的步骤;
若所述当前文件信息与所述历史文件信息不同,则执行所述判断所述白名单是否已上锁的步骤。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述物理地址进行数据纠错,包括:
读取所述物理地址存储的目标数据,并计算读取到的目标数据的第一校验结果,根据所述第一校验结果和第二校验结果对所述物理地址进行数据纠错;所述第二校验结果为:写入所述目标数据至所述物理地址时所述目标数据的校验结果;
读取所述物理地址存储的目标数据,以及所述物理地址的镜像地址存储的目标数据,对比读取到的两份目标数据,以对所述物理地址进行数据纠错。
6.根据权利要求2至4任一项所述的方法,其特征在于,所述白名单的生成过程包括:
创建所述白名单,并对所述白名单添加非阻塞锁;
将所述进程使用的内存物理地址写入所述白名单,并更新所述白名单的文件信息后,释放所述非阻塞锁。
7.根据权利要求6所述的方法,其特征在于,所述将所述进程使用的内存物理地址写入所述白名单,包括:
将所述进程使用的内存物理地址的地址范围写入所述白名单。
8.一种内存故障处理装置,其特征在于,包括:
获取模块,用于若内存发生可修正错误,则获取发生可修正错误的物理地址;
判断模块,用于判断所述物理地址是否被PA模式的进程占用;
处理模块,用于若所述物理地址被所述进程占用,则不隔离所述物理地址,并对所述物理地址进行数据纠错。
9.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的方法。
10.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法。
CN202110731398.6A 2021-06-29 2021-06-29 一种内存故障处理方法、装置、设备及可读存储介质 Pending CN115543595A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110731398.6A CN115543595A (zh) 2021-06-29 2021-06-29 一种内存故障处理方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110731398.6A CN115543595A (zh) 2021-06-29 2021-06-29 一种内存故障处理方法、装置、设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN115543595A true CN115543595A (zh) 2022-12-30

Family

ID=84705784

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110731398.6A Pending CN115543595A (zh) 2021-06-29 2021-06-29 一种内存故障处理方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115543595A (zh)

Similar Documents

Publication Publication Date Title
JP4332205B2 (ja) キャッシュ制御装置およびキャッシュ制御方法
US6665813B1 (en) Method and apparatus for updateable flash memory design and recovery with minimal redundancy
EP2048579B1 (en) System and method for managing memory errors in an information handling system
WO2017215377A1 (zh) 内存硬错误的处理方法及装置
US8812910B2 (en) Pilot process method for system boot and associated apparatus
EP2458504B1 (en) Method and device for processing data caching
US20040123202A1 (en) Mechanisms for detecting silent errors in streaming media devices
JP2009522664A (ja) メモリ障害を処理するために、センサーネットワークで使用可能な方法及びシステム
CN110442473B (zh) 一种非易失性数据存储方法、装置、电子设备及介质
CN108932249B (zh) 一种管理文件系统的方法及装置
CN107479823B (zh) 随机读写文件测试中的数据校验方法和装置
US11314594B2 (en) Method, device and computer program product for recovering data
US6363457B1 (en) Method and system for non-disruptive addition and deletion of logical devices
CN114385418A (zh) 通信设备的保护方法、装置、设备和存储介质
JP2004220068A (ja) メモリカード及びメモリへのデータ書き込み方法
JP2004102395A (ja) メモリダンプデータの取得方法および情報処理装置、ならびにそのプログラム
CN115543595A (zh) 一种内存故障处理方法、装置、设备及可读存储介质
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
US6829739B1 (en) Apparatus and method for data buffering
EP3882774B1 (en) Data processing device
US6948112B2 (en) System and method for performing backward error recovery in a computer
US7299384B1 (en) Fixing prematurely freed objects
CN114840364A (zh) 对内存中的存储数据进行备份的方法、装置及电子设备
JP2005196680A (ja) コンピュータシステム
US7376806B2 (en) Efficient maintenance of memory list

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