本说明书一个或多个实施例涉及故障处理,尤其涉及一种内存故障处理方法、装置、系统、设备及存储介质。
背景技术:
1、在相关技术中,当有进程或者虚拟机访问内存时可能会触发内存故障,触发的内存故障的类型可能为可纠正错误(corrected error,ce)类的内存故障,也可能为不可纠正错误 (uncorrected error,ue)类的内存故障。对于ue内存故障常用的处理方法是直接停止相关进程或虚拟机的运行以防止错误进一步传播,但这可能导致进程或者虚拟机的误结束。
技术实现思路
1、有鉴于此,本说明书一个或多个实施例提供一种内存故障处理方法、装置、系统、设备及存储介质。
2、为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
3、根据本说明书一个或多个实施例的第一方面,提出了一种接收处理器基于不可纠正错误的内存故障所发送的中断信号;
4、响应于所述中断信号,确定本次故障是属于第一故障类型还是属于第二故障类型,其中,所述第一故障类型指示必须处理的错误,所述第二故障类型指示可选处理的错误;
5、若为所述第一故障类型,根据所述处理器或内存控制器记录的故障信息确定出现所述不可纠正错误的内存页,查找访问所述内存页的进程或虚拟机,并结束所述进程或虚拟机;
6、若为所述第二故障类型,不结束访问所述故障信息指示的内存页的进程或虚拟机。
7、可选的,所述确定本次故障是属于第一故障类型还是属于第二故障类,包括:
8、根据所述中断信号的类型确定本次故障是属于第一故障类型还是属于第二故障类型;其中,若所述中断信号的类型为同步中断,确定本次故障属于第一故障类型;若所述中断信号的类型为异步中断,确定本次故障属于第二故障类型。
9、可选的,若为所述第一故障类型,还包括:
10、在确定出现所述不可纠正错误的内存页之后,解除出现所述不可纠正错误的内存页的读写映射关系;
11、若为所述第二故障类型,还包括:
12、根据所述处理器或内存控制器记录的故障信息确定出现所述不可纠正错误的内存页,并解除所述内存页的读写映射关系。
13、可选的,由固件在接收所述中断信号之后,将所述处理器记录的故障信息和所述中断信号的类型上报给操作系统;
14、由操作系统根据所述中断信号的类型确定本次故障是属于第一故障类型还是属于第二故障类型,并基于不同的故障类型进行不同处理。
15、可选的,所述固件在接收到所述中断信号之后,将所述故障信息和所述中断信号的类型写入目标内存中;以及,在写入完成后,调用apei接口通知所述操作系统;其中,所述目标内存指示所述固件和所述操作系统预先约定好的共享内存;
16、所述操作系统在接收到所述通知之后,调用所述apei接口的回调函数,以从所述目标内存中获取所述故障信息和所述中断信号的类型。
17、可选的,所述故障信息和所述中断信号的类型是由所述固件按照预设数据结构写入所述目标内存的;其中,所述预设数据结构指示所述固件按照标准错误接口格式将所述故障信息写入目标内存中、以及按照自定义数据格式将所述中断信号的类型写入目标内存中;
18、以及,所述操作系统按照所述预设数据结构解析写入所述目标内存中的数据,以获取所述故障信息和所述中断信号的类型。
19、可选的,所述自定义数据格式指示利用apei数据结构中的原始数据字段来上报所述中断信号的类型;
20、其中,所述原始数据字段包括头部字段和主体字段;
21、所述头部字段用于描述校验信息;所述主体字段用于描述所述中断信号的类型;
22、所述操作系统按照所述自定义格式解析所述头部字段中的校验信息进行校验,并在校验无误之后从体部字段中获取所述中断信号的类型。
23、可选的,由固件在接收所述中断信号之后,根据所述中断信号的类型确定本次故障是属于第一故障类型还是属于第二故障类型,在确定本次故障的故障类型之后,将所述处理器记录的故障信息和本次故障的故障类型上报给操作系统;
24、由操作系统基于不同的故障类型进行不同处理。
25、根据本说明书一个或多个实施例的第二方面,提出了一种内存故障处理装置,包括:
26、中断信号接收模块,用于接收处理器基于不可纠正错误的内存故障所发送的中断信号;
27、故障类型确定模块,用于响应于所述中断信号,确定本次故障是属于第一故障类型还是属于第二故障类型,其中,所述第一故障类型指示必须处理的错误,所述第二故障类型指示可选处理的错误;
28、故障处理模块,用于若为所述第一故障类型,根据所述处理器或内存控制器记录的故障信息确定出现所述不可纠正错误的内存页,查找访问所述内存页的进程或虚拟机,并结束所述进程或虚拟机;
29、所述故障处理模块,还用于若为所述第二故障类型,不结束访问所述故障信息指示的内存页的进程或虚拟机。
30、根据本说明书一个或多个实施例的第三方面,提出了一种资源调度系统,该资源调度系统包括:
31、与资源节点集群中的任一目标资源节点对应的目标资源节点端调度器,用于执行第一方面任意一项所述方法的步骤;
32、与所述资源节点集群对应的中心调度器,用于执行第一方面任意一项所述方法的步骤。
33、根据本说明书一个或多个实施例的第四方面,提出了一种电子设备,包括:
34、处理器;
35、用于存储处理器可执行指令的存储器;
36、其中,所述处理器通过运行所述可执行指令以实现如第一方面中任一项所述的方法。
37、根据本说明书一个或多个实施例的第五方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
38、本说明书实施例提供了一种内存故障处理方法,可以接收处理器基于不可纠正错误的内存故障所发送的中断信号;然后响应于所述中断信号,确定本次故障是属于第一故障类型还是属于第二故障类型;若为所述第一故障类型,根据所述处理器或内存控制器记录的故障信息确定出现所述不可纠正错误的内存页,查找访问所述内存页的进程或虚拟机,并结束所述进程或虚拟机;若为所述第二故障类型,不结束访问所述故障信息指示的内存页的进程或虚拟机。本实施例实现在出现不可纠正错误的内存故障时,可以进一步区分是必须处理的错误还是可选处理的错误,进而基于不同的故障类型进行不同处理,提高了错误处理的准确性,避免或减少进程或者虚拟机误结束的情况发生。
1.一种内存故障处理方法,包括:
2.根据权利要求1所述的方法,所述确定本次故障是属于第一故障类型还是属于第二故障类,包括:
3.根据权利要求1所述的方法,若为所述第一故障类型,还包括:
4.根据权利要求1至3任意一项所述的方法,由固件在接收所述中断信号之后,将所述处理器记录的故障信息和所述中断信号的类型上报给操作系统;
5.根据权利要求4所述的方法,所述固件在接收到所述中断信号之后,将所述故障信息和所述中断信号的类型写入目标内存中;以及,在写入完成后,调用apei接口通知所述操作系统;其中,所述目标内存指示所述固件和所述操作系统预先约定好的共享内存;
6.根据权利要求5所述的方法,所述故障信息和所述中断信号的类型是由所述固件按照预设数据结构写入所述目标内存的;其中,所述预设数据结构指示所述固件按照标准错误接口格式将所述故障信息写入目标内存中、以及按照自定义数据格式将所述中断信号的类型写入目标内存中;
7.根据权利要求6所述的方法,所述自定义数据格式指示利用apei数据结构中的原始数据字段来上报所述中断信号的类型;
8.根据权利要求1至3任意一项所述的方法,由固件在接收所述中断信号之后,根据所述中断信号的类型确定本次故障是属于第一故障类型还是属于第二故障类型,在确定本次故障的故障类型之后,将所述处理器记录的故障信息和本次故障的故障类型上报给操作系统;
9.一种内存故障处理装置,包括:
10.一种资源调度系统,该资源调度系统包括:
11.一种电子设备,包括:
12.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1至8中任一项所述方法的步骤。