CN118034985A - 数据处理方法、装置、电子设备以及存储介质 - Google Patents

数据处理方法、装置、电子设备以及存储介质 Download PDF

Info

Publication number
CN118034985A
CN118034985A CN202410231549.5A CN202410231549A CN118034985A CN 118034985 A CN118034985 A CN 118034985A CN 202410231549 A CN202410231549 A CN 202410231549A CN 118034985 A CN118034985 A CN 118034985A
Authority
CN
China
Prior art keywords
error
operating system
data
running
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
Application number
CN202410231549.5A
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202410231549.5A priority Critical patent/CN118034985A/zh
Publication of CN118034985A publication Critical patent/CN118034985A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种数据处理方法、装置、电子设备以及存储介质。该方法包括:在运行设备发生运行错误时,通过第一操作系统将运行错误的运行数据写入扩展日志中;通过第一操作系统向第二操作系统发送第一中断信号,第一操作系统为第二操作系统的引导系统;在第二操作系统中,基于第一中断信号从扩展日志中获取运行数据;以及在第二操作系统中,在确定运行数据指示运行设备发生运行错误的状态满足预设条件的情况下,对运行设备进行脱机处理。

Description

数据处理方法、装置、电子设备以及存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据处理方法、数据处理装置、电子设备以及存储介质。
背景技术
计算机设备在运行过程中常会出现错误,一般分为可纠正错误(CorrectableError,CE)和不可纠正错误(Uncorrectable Error,UCE)。当统一可扩展固体接口(Unified Extensible Firmware Interface,UEFI)检测到计算机设备出现错误时,会对通用硬件错误源(Generic Hardware Error resource,GHES)进行一一扫描,以获取相关的CE信息发送给操作系统(Operating System,OS)并进行处理。但往往需要扫描的GHES数量较多,会花费较多的时间进行扫描,造成了操作上的冗余。
发明内容
本公开提供了一种数据处理方法、装置、设备以及存储介质。本公开的一个方面提供了一种数据处理方法,包括:在运行设备发生运行错误时,通过第一操作系统将运行错误的运行数据写入扩展日志中;通过第一操作系统向第二操作系统发送第一中断信号,第一操作系统为第二操作系统的引导系统;在第二操作系统中,基于第一中断信号从扩展日志中获取运行数据;以及在第二操作系统中,在确定运行数据指示运行设备发生运行错误的状态满足预设条件的情况下,对运行设备进行脱机处理。
根据本公开的实施例,基于第一中断信号,从扩展日志中获取运行数据,包括:在第一中断信号对应的中断状态下,唤醒通知器;在中断状态结束后,通过通知器从扩展日志中确定运行错误对应的内存块;以及从内存块中解析得到运行数据。
根据本公开的实施例,运行错误包括内存页发生错误;从内存块中解析得到运行数据,包括:从内存块中解析得到错误数据条目;以及在确定错误数据条目的条目类型为存储器且错误数据条目对应的错误类型为可纠正的情况下,从错误数据条目中解析运行数据,运行数据指示内存页的运行信息。
根据本公开的实施例,通过第一操作系统向第二操作系统发送第一中断信号,包括:通过第一操作系统向第二操作系统中的指定处理器核发送第一中断信号,指定处理器核为运行错误对应的架构寄存器组所属的处理器核。
根据本公开的实施例,从扩展日志中获取运行数据,包括:根据处理器核的编号和架构寄存器组的编号,从扩展日志中确定运行错误对应的内存块,内存块包括运行数据。
根据本公开的实施例,在运行设备发生运行错误时,通过第一操作系统将运行错误的运行数据写入扩展日志中,包括:在运行设备发生运行错误时,通过第一操作系统生成第二中断信号;在第一操作系统中,响应于第二中断信号,根据运行设备发生运行错误的状态,生成运行数据;以及通过第一操作系统将运行错误的运行数据写入扩展日志中。
根据本公开的实施例,根据运行设备发生运行错误的状态,生成运行数据,包括:在确定运行设备发生可纠正错误的状态满足预设条件或者运行设备发生不可纠正错误的情况下,生成指定标识;以及在运行数据中设置指定标识。
本公开的另一方面提供了一种数据处理装置,包括:写入模块,用于在运行设备发生可运行错误时,通过第一操作系统将运行错误的运行数据写入扩展日志中;发送模块,用于通过第一操作系统向第二操作系统发送第一中断信号,第一操作系统为第二操作系统的引导系统;获取模块,用于在第二操作系统中,基于第一中断信号从扩展日志中获取运行数据;以及脱机模块,用于在第二操作系统中,在确定运行数据指示运行设备发生运行错误的状态满足预设条件的情况下,对运行设备进行脱机处理。
本公开的另一方面还提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的处理方法。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的处理方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1示意性示出了根据本公开实施例的数据处理方法的应用场景示意图;
图2示意性示出了根据本公开实施例的数据处理方法的流程图;
图3示意性示出了根据本公开实施例的数据处理方法的原理示意图;
图4A示意性示出了根据本公开另一实施例的数据处理方法的原理示意图;
图4B示意性示出了根据本公开实施例的扩展日志的结构示意图;
图5示意性示出了根据本公开实施例的数据处理装置的框图;以及
图6示意性示出了根据本公开实施例的数据处理系统的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开的技术方案中,所涉及的数据(如包括但不限于用户个人信息)的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
图1示意性示出了根据本公开实施例的数据处理方法的应用场景示意图。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该实施例的应用场景100可以包括运行设备101、102、103、104。运行设备101、102、103与运行设备104连接,运行设备101、102、103的运行过程可以受运行设备104的控制。运行设备104可以获取运行设备101、102、103的运行信息。
例如,运行设备101、102可以是计算机设备,例如平板电脑、膝上型便携计算机、智能移动终端和台式计算机等等。运行设备101、102可以通过有线和/或无线通信链路等与运行设备104连接。例如,运行设备103可以是外围组件快速互连(peripheral componentinterconnect express,PCIe)设备,例如显卡、固态硬盘、采集卡和无线网卡等。运行设备103是可以通过PCIe总线与运行设备104连接。
例如,运行设备104可以为主设备,运行设备101、102、103可以为从设备。
运行设备104内安装有基本输入输出系统(Basic Input/Output System,BIOS)和计算机操作系统(Operating System,OS)。运行设备104可以基于BIOS获取运行设备101、102、103的运行信息,并控制运行设备101、102、103的运行状态。
运行设备104还可以通过OS执行运行任务,并基于BIOS获取OS的运行信息,以控制运行设备104中硬件或软件的运行状态。
需要说明的是,本公开实施例所提供的数据处理方法一般可以由运行设备104执行。相应地,本公开实施例所提供的数据处理装置一般可以设置于运行设备104中。本公开实施例所提供的数据处理方法也可以由不同于运行设备104且能够与运行设备101、102、103、104通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据处理装置也可以设置于不同于运行设备104且能够与运行设备101、102、103、104通信的服务器或服务器集群中。
应该理解,图1中的运行设备的数量仅仅是示意性的。根据实现需要,可以具有任意数量的运行设备。
图2示意性示出了根据本公开实施例的数据处理方法的流程图。
如图2所示,该数据处理方法包括操作S201~S204。
在操作S201,在运行设备发生运行错误时,通过第一操作系统将运行错误的运行数据写入扩展日志中。
根据本公开的实施例,第一操作系统可以为基本输入输出系统BIOS。BIOS是基于UEFI代码为基础开发的,可以提供最底层的、最直接的硬件配置和控制,因此能够对运行设备进行检测和初始化等操作。BIOS具有获取运行设备运行情况的能力,在基于UEFI对运行设备进行检测时,如果发现有运行设备的运行过程发生错误,可以通过UEFI获取表征运行错误的运行数据,并将该运行数据写入扩展日志(extend log,ELOG)中。
例如,运行设备在使用内存时发生错误,可以通过BIOS的UEFI获取发生错误的内存页的相关信息,并将内存页的相关信息写入扩展日志。发生错误的运行设备可以是前文描述的主设备,可以为前文描述的从设备。执行将运行数据写入扩展日志的操作的设备可以为前文描述的主设备。
例如,扩展日志可以对系统进行安全日志的采集、存储和审计,可以实现日志管理、安全业务分析和日志审计等功能。此外,扩展日志提供基于关键字的日志全文联想检索功能。可以根据时间和日志类型等对扩展日志存储的内容进行检索,从而可以准确快速地获取扩展日志中的信息。
例如,扩展日志可以存储运行设备的多种运行记录,也可以存储操作系统的多种操作记录。例如,扩展日志可以存储了运行设备对内存的使用记录,存储了操作系统对内存的访存记录。通过读取扩展日志记录的信息,可以确定内存中内存页的使用情况。
例如,运行错误可以包括可纠正错误和不可纠正错误。运行错误可以是运行设备对内存进行访存操作时发生的错误,也可以是进行数据运算时发生的错误,也可以是接收或发送指令时发生的错误。本公开对运行错误的具体内容不做限定,运行错误可以是运行设备在正常运行中发生的任意错误。
例如,运行数据可以描述运行错误的详细信息。例如,运行数据可以包括发生运行错误的对象、运行错误的内容、发生运行错误的地址、发生运行错误的次数和运行错误的错误程度等。
例如,运行错误可以是运行设备中内存页发生错误。内存可以包括多个内存页。当内存中的某一内存页发生错误时,BISO可以将该内存页发生可纠正错误的详情记录在扩展日志中,以便后续基于扩展日志中记录的信息对该内存页进行处理。例如,运行数据可以包括内存页的地址信息、可纠正错误的内容信息、内存页发生可纠正错误的历史次数和可纠正错误的错误程度等。
通过将发生运行错误的运行设备的运行数据写入扩展日志中,可以利用扩展日志记录并保存与运行错误相关的运行数据,以便后续通过访问扩展日志获取该运行数据,对运行设备中的运行错误进行处理,而无需通过扫描运行设备的内部寻找发生运行错误的对象。
在操作S202,通过第一操作系统向第二操作系统发送第一中断信号,第一操作系统为第二操作系统的引导系统。
根据本公开的实施例,第二操作系统可以为计算机操作系统OS,例如Windows、Linux等。第一操作系统是在第二操作系统下的底层运行程序,位于计算机硬件和第二操作系统之间。第一操作系统用于设置硬件,为第二操作系统的运行做准备。
例如,运行错误可以为可纠正错误。第一中断信号可以为可纠正机器检查中断(Corrected Machine Check Interrupt,CMCI)。由于第二操作系统具有处理可纠正错误的能力,因此在运行设备发生可纠正错误时,第一操作系统向第二操作系统发送CMCI,以通知第二操作系统发生了可纠正错误。这一操作使得第二操作系统响应于第二中断信号对可纠正错误进行处理,避免第二操作系统主动进行周期性的轮询以检测硬件错误,减少了CPU的浪费。
例如,前文描述的主设备的第二操作系统在执行内存访问时发生了可纠正错误,主设备的第一操作系统可以向第二操作系统发送CMCI,以通知第二操作系统内存页发生了可纠正错误。例如,前文描述从主设备的在执行内存访问时发生了可纠正错误,主设备的第一操作系统可以向第二操作系统发送CMCI,以通知第二操作系统该从设备的内存页发生了可纠正错误。
在操作S203,在第二操作系统中,基于第一中断信号从扩展日志中获取运行数据。
根据本公开的实施例,在第二操作系统中,响应于第一中断信号,处理器暂停正在处理的其他事务,优先从扩展日志中获取运行数据。
扩展日志中存储了运行数据,处理器可以基于运行设备的相关信息在扩展日志中搜索对应的运行数据。例如,处理器还可以基于运行设备的属性,从扩展日志中搜索到运行设备的运行数据。运行设备的属性可以是运行设备的地址和编码信息等。例如,云运行设备的属性可以为内存页的地址和内存页的编号等。通过内存页的地址可以确定发生错误的运行设备,并定位到该运行设备的内存页。
在操作S204,在第二操作系统中,在确定运行数据指示运行设备发生运行错误的状态满足预设条件的情况下,对运行设备进行脱机处理。
根据本公开的实施例,第二操作系统通过解析运行数据,获取运行设备发生错误的状态,并根据运行设备发生错误的状态,对运行设备进行相应的处理。
例如,发生错误的运行设备可以是前面描述的从设备。当从设备发生错误的状态满足预设条件的情况下,前文描述的主设备可以对该从设备中发生错误的软件或硬件进行脱机处理,使得该从设备中的该软件或硬件不再参与运行。主设备也可以对该从设备整体脱机,使得该从设备暂停运行。
例如,发生错误的运行设备可以是主设备。当主设备发生错误的状态满足预设条件的情况下,主设备可以对自身中发生错误的软件或硬件进行脱机处理,使得该软件或硬件不再参与运行。
根据本公开的实施例,运行设备发生错误的状态可以为运行设备发生的运行错误的类型,也可以是发生运行错误的次数,可以是运行错误的错误程度。例如,内存页发生错误的状态可以为内存页发生错误的类型(可纠正错误和不可纠正错误)、发生可纠正错的次数和可纠正错误的错误程度。
例如,预设条件可以是运行错误的错误类型,也可以是运行设备发生错误的次数阈值。例如,运行错误为内存页错误,在确定运行错误的错误类型是不可纠正错的情况下,将该内存页脱机(page offline)。在确定运行错误的错误类型是可纠正错的情况下,获取该内存页发生可纠正错误的次数。在确定该内存页发生可纠正错误的次数达到次数阈值的情况下,将该内存页脱机。在确定该内存页发生可纠正错误的次数没有达到次数阈值的情况下,可以对该内存页的可纠正错误进行修正。
例如,当内存页发生可纠正错误的次数过多时,可认为该内存页的存储能力不足,或该内存页存在缺陷。此外,当该内存页发生多次可纠正错误后,该内存页可能会发生不可纠正错误。内存页发生不可纠正错误会导致内存页存储的数据丢失或损坏。因此,可以在确定内存页发生可纠正错误的次数达到阈值次数的情况下,在该内存页发生不可纠正错误之前,放弃使用该内存页,避免了避免对数据产生不良影响。
根据本公开的实施例,预设条件可以是在第一操作系统中确定的。BIOS系统中的UEFI了解运行设备对运行错误的最大容忍程度,例如内存页对可纠正错误的最大容忍程度。UEFI基于最大容忍程度设置预设条件,并将预设条件发送给第二操作系统,使得第二操作系统可以在运行设备达到最大容忍程度之前,对运行设备进行脱机处理,以控制运行设备的运行状态。
通过本公开实施例,利用BIOS中UEFI对运行设备使用情况的获取能力,在BIOS中生成运行设备的运行数据,并根据运行设备对于错误的最大容忍程度设置预设条件。利用OS系统对运行设备的执行能力,基于运行数据和预设条件对运行设备的运行状态进行控制,以对满足预设条件的运行设备进行脱机处理,避免运行设备运行异常。此外,UEFI将运行数据写入扩展日志中,便于OS从扩展日志中获取所需的运行数据,提高获取运行数据的速率,从而提高处理效率。
以下参考图3、图4A和图4B,对图2所示的方法做进一步说明。
图3示意性示出了根据本公开实施例的数据处理方法的原理示意图。以主设备的内存页发生错误为例,对数据处理方法进行示例性说明。
如图3所示,实施例300包括第一操作系统301、第二操作系统302、内存页303和扩展日志304。
在本公开实施例中,第一操作系统301为BISO,第二操作系统302为OS。在内存页303发生错误时,第一操作系统301通过UEFI获取内存页303的发生错误的相关信息,生成内存页信息,并将内存页信息写入扩展日志304中。
第一操作系统301向第二操作系统302发送第一中断信号。第二操作系统302响应于第一中断信号,从扩展日志304中获取内存页信息。在第二操作系统302中,在确定内存页信息指示内存页303发生错误的状态满足预设条件的情况下,将内存页303脱机。
图4A示意性示出了根据本公开另一实施例的数据处理方法的原理示意图。图4A与图3类似,以主设备的内存页发生错误为例。
如图4A所示,实施例400包括第一操作系统401、第二操作系统402、内存页403和扩展日志404。
在本公开实施例中,第一操作系统401、第二操作系统402、内存页403和扩展日志404分别与前文描述的第一操作系统301、第二操作系统302、内存页303和扩展日志304类似,为了简明,本公开不再赘述。
在本公开实施例中,第一操作系统401包括硬件平台411和中断处理器412。第二操作系统402包括处理器核421和通知器422。
例如,硬件平台411为第一操作系统401的底层硬件,硬件平台411用于处理底层硬件事务。中断处理器412可以为系统管理中断(System Management Interrupt,SMI)处理器。中断处理器412用于处理第一操作系统401中的中断事务。中断处理器412是基于UEFI执行操作的。
例如,处理器核421用于在第二操作系统402中处理各种事务,处理器核421可以从内存页403中读取数据,也可以将数据写入内存页403中,还可以控制内存页403的使用。通知器422可以为误差检测与校正(Error Detection And Correction,EDAC)通知器(notifier)。通过通知器422可以在扩展日志404中获取内存页信息。
在本公开实施例中,在运行设备发生运行错误时,通过第一操作系统生成第二中断信号;在第一操作系统中,响应于第二中断信号,根据运行设备发生运行错误的状态,生成运行数据;以及通过第一操作系统将运行错误的运行数据写入扩展日志中。
例如,在内存页403发生正错误时,通过第一操作系统401生成第二中断信号,在第一操作系统中,响应于第二中断信号,根据内存页403发生错误的状态,生成内存页信息。通过第一操作系统401将错误的内存页信息写入扩展日志404中。
例如,在内存页403发生错误时,硬件平台411向中断处理器412发送第二中断信号,使中断处理器412将内存页信息写入扩展日志404中。例如,内存页403发生的错误为可纠正错误。第二中断信号可以为可纠正系统管理中断(CorrectedSystem ManagementInterrupt,CSMI)。CSMI属于SMI,SMI的类型是不可屏蔽外部中断,优先级高于其他所有中断。在触发第二中断信号后,进入系统管理模式(System Management Mode,SMM)。此时中断处理器412会对可纠正错误的状态进行判断,从而生成对应的内存页信息并存入扩展日志404中。
中断信号可以用于启动中断处理程序,该中断处理是指当出现可纠正错误时,CPU暂时停止当前程序的运行而执行与可纠正错误相关的操作。例如,获取可纠正错误的内容信息和发生可纠正错误的内存页的信息,并基于可纠正错误的内容信息和发生可纠正错误的内存页的信息,生成内存页信息。
例如,在进入SMM模式后,中断处理器412通过预测性故障分析(PredictiveFailure Analysis,PFA)进行逻辑判断,如果内存页达到了页面脱机逻辑,则说明内存页出现了可纠正错误,需要将可纠正信息上报给硬件故障检查架构(Machine CheckArchitecture,MCA),存入对应的MCA寄存器组(MCA bank)中。中断处理器412还结合平台拓扑和层次结构获取内存页发生可纠正错误的状态,以生成内存页信息。根据公共平台错误记录(Common Platform Error Record,CPER)定义的数据结构,中断处理器412将内存页信息存入扩展日志404指定的内存中。
在一些实施例中,在确定运行设备发生可纠正错误的状态满足预设条件或者运行设备发生不可纠正错误的情况下,生成指定标识;以及在所述内存页信息中设置指定标识。
例如,在确定内存页发生不可纠正错误的情况下,运行设备发生错误的状态满足预设条件,生成指定标识,并在内存页信息中设置指定标识。
例如,在确定运行设备发生可纠正错误的情况下,根据运行设备发生可纠正错误的状态进行进一步判断。例如,在确定内存页403发生可纠正错误的状态满足预设条件的情况下,生成指定标识,并在内存页信息中设置指定标识。
不同内存页的可纠正错误的发生次数不同,当内存页403发生的可纠正错误的发生次数超过一定数值后内存页403可能会发生不可纠正错误,影响系统运行,因此需要对可发生不可纠正错误的内存页403进行处理。内存页403发生可纠正错误的状态满足预设条件表征该内存页403有可能发生不可纠正错误。
例如,可以设置一个次数阈值,当内存页403中可纠正错误的发生次数的超过次数阈值后,说明该内存页403发生可纠正错误的状态满足预设条件,可以生成一个用于表示可纠正错误满足预设条件的标识,并在内存页信息中显示该标识,用于第二操作系统基于该标识对可纠正错误进行对应的处理。
例如,由于UEFI了解内存页对于可纠正错误的最大容忍度。容忍度可以是发生可纠正错误的次数。中断处理器412基于UEFI确定内存页的最大容忍度和可纠正错误已经发生的次数。在确定内存页发生可纠正错误的次数达到次数阈值的情况下,中断处理器412可以生成指定标识,将指定标识嵌入在内存页信息中,指定标识可以仅占用3bit数据量。第二操作系统402从内存页信息中解析得到指定标识时,可认为内存页信息指示内存页发生可纠正错误的状态满足预设条件。
在本公开实施例中,利用UFEI对内存页403的使用状态的了解能力,基于UEFI获取内存页403发生可纠正错误的状态和最大容忍程度,并由UEFI判断是否需要对内存页也403进行脱机。这可以充分发挥UEFI的作用,准确获取内存页403的使用状态,及时对内存页403作出相应的处理,确保设备的正常运行。
在一些实施例中,在第一操作系统401将运行数据写入扩展日志440后,第一操作系统401向第二操作系统402中的指定处理器核421发送第一中断信号,指定处理器核为运行错误对应的处理器核。
例如,第二操作系统402的处理器包括多个处理器核(CPU core),每个处理器核可以各自执行不同的运行任务。指定处理器核可以为执行运行任务时发生运行错误的处理器核。
例如,每个处理器核可以访问多个内存页,每个内存页可以对应一个架构寄存器组(MCA bank)。架构寄存器组记录了内存页403的存储信息,例如架构寄存器组记录了处理器核421从内存页403读取数据和将数据写入内存页403的操作记录。指定处理器核421为运行错误对应的架构寄存器组所属的处理器核。
在一些实施例中,根据处理器核的编号和架构寄存器组的编号,从扩展日志404中确定运行错误对应的内存块,内存块包括运行数据。
例如,每个处理器核和每个架构寄存器组分别拥有各自的编号。例如,处理器核421可以为指定处理器核。通过处理器核421的编号和架构寄存器组的编号,能够从扩展日志404中找到存储有内存页403的内存页信息的内存块。
例如,通过处理器核421的编号可以确定处理器核421访问的多个内存页各自对应的架构寄存器组,通过架构寄存器组的编号可以确定该架构寄存器组的编号对应的内存块。
在本公开实施例中,通过处理器核421和架构寄存器组的编号,可以直接从扩展日志404中确定内存块的位置,从而可以快速获取内存页403的内存块,从而获取内存页信息,缩短处理时间,提高处理效率。
在第二操作系统402收到第一中断信号401后,进入CMCI中断处理,并获取第一中断信号指示内存页信息。
内存页信息可包括架构寄存器组的信息和表征内存页发生可纠正错误状态的信息。通过CMCI中断,第二操作系统402读取到架构寄存器组的信息和表征内存页发生可纠正错误状态的信息。
根据架构寄存器组的信息可以确定可纠正错误的内容信息,因此第二操作系统402基于架构寄存器组的信息可以对可纠正错误进行纠正,以改正内存页中的错误。基于表征内存页发生可纠正错误状态的信息可以确定是否对内存页进行脱机,使得第二操作系统402可以合理的控制内存页的使用状态。
在一些实施例,在第一中断信号对应的中断状态下,唤醒第二操作系统402的通知器422。在中断状态结束后,通过通知器422从扩展日志404中确定运行错误对应的内存块,以从内存块中解析得到运行数据。
例如,通知器422可以为错误检测纠正框架(Error Detection And Correction,EDAC)的通知器(notifier),EDAC可以明确的获取到服务器的所有内存中存在的可纠正错误信息以及错误个数。通知器422被唤醒后,通过映射指针从扩展日志404中读取可纠正错误对应的内存块,以获取对应的内存页信息。
例如,通知器422还可以是根据内存页403的地址获取的内存块。例如,在发生CMCI时,通知器422可以获取发生中断的物理地址,从而获取内存页403的物理地址。通知器422可以基于内存页403的物理地址从扩展日志404中获取对应内存块。第二操作系统402可以基于通知器422获取的内存页403的物理地址,选中内存页403,从而控制内存页403的使用状态。
在本公开实施例中,通知器422从扩展日志404中确定可纠正错误对应的内存块的操作是在CMCI结束后执行的。在CMCI对应的中断状态下,第二操作系统402仅执行了通知器422被唤醒。这可以缩短中断状态的持续时间,从而减少处理器核421处于中断状态的时间,优化处理器核421的工作过程,避免处理器核421长时间处于中断状态而无法及时处理其他事务。
在一些实施例中,处理器核421从内存块中解析得到错误数据条目;以及在确定错误数据条目的条目类型为存储器且错误数据条目对应的错误类型为可纠正的情况下,从错误数据条目中解析内存页信息,以确定内存页信息中是否设置有指定标识,从而确定内存页发生可纠正错误的状态。
在一些实施例中,在满足条目类型为存储器、错误类型为不可纠正错误的情况下,认为内存页发生可纠正错误的状态满足预设条件,对内存块对应的内存页进行脱机。
本公开还提供了扩展日志404的一种示例性结构。结合扩展日志404的结构对第二操作系统402的操作进行示意性说明。
图4B示意性示出了根据本公开实施例的扩展日志的结构示意图。
如图4B所示,通知器确定扩展日志404中的扩展日志指针,根据扩展日志指针确定内存块。
例如,通知器可以根据处理器核的编号和架构寄存器组的编号,确定扩展日志指针。
例如,通知器确定扩展日志指针1,映射获取扩展日志指针1指向的内存块。内存块可以是通用错误状态块(Generic Error status block)。通知器通过通知检测函数可以按照的数据结构,解析出数据条目,数据条目可以是通用错误数据条目(Generic Error DataEntry)。
内存块中包括内存页的多种类型数据,通过判断条目类型和错误类型获取所需的数据条目,从数据条目中解析获取内存页信息。
例如,判断数据条目1的条目类型是否为memory,如果是则判断错误类型是否为可纠正错误,如果是则从错误数据条目中解析内存页信息。
数据条目的条目类型与数据部分相关。例如,数据部分1包括存储器错误数据(Memory Error Data),数据条目1为存储器类型。数据部分2包括通信总线错误数据(PCIeError Data),数据条目2为通信总线类型。
在本公开实施例中,通知检测函数还会识别数据条目1的标识。在确定数据条目1的标识为指定标识的情况下,认为该内存块对应的内存页需要进行脱机处理。
例如,在满足条目类型为memory、错误类型为可纠正错误且数据条目中具有指定标识的情况下,对内存块对应的内存页进行脱机。
在本公开实施例中,通知器通过处理器核和架构寄存器组直接确定内存块对应的位置,确定位置后读取并分析内存页信息,这一操作通过第二操作系统从扩展日志中获取出现可纠正错误的内存页信息,避免第二操作系统避免在海量数据中逐个扫描以获取内存页信息,减少了冗余操作,提高机器效率。此外,第二操作系统通过解析扩展日志中增加的内存块的数据条目中被UEFI设置的标识flags,基于标识flags指示的内存页发生可纠正错误的状态,对内存页进行脱机操作,能够达到对故障的预测性分析,在内存页发生不可纠正错误之前优化内存页的使用状态。
图5示意性示出了根据本公开实施例的数据处理装置的框图。
如图5所示,数据处理装置500包括写入模块510、发送模块520、获取模块530和脱机模块540。
该数据处理装置500可以用于实现参考图2、图3、图4A和图4B描述的根据本公开实施例的数据处理方法。
写入模块510可以执行例如操作S210,用于在运行设备发生运行错误时,通过第一操作系统将运行错误的运行数据写入扩展日志中。
发送模块520可以执行例如操作S220,用于通过第一操作系统向第二操作系统发送第一中断信号,第一操作系统为第二操作系统的引导系统。
获取模块530可以执行例如操作S230,用于在第二操作系统中,基于第一中断信号从扩展日志中获取运行数据。
脱机模块540可以执行例如操作S240,用于在第二操作系统中,在确定运行数据指示运行设备发生运行错误的状态满足预设条件的情况下,对运行设备进行脱机处理。
获取模块530包括:唤醒子模块,用于在第一中断信号对应的中断状态下,唤醒通知器;第一确定子模块,用于在中断状态结束后,通过通知器从扩展日志中确定运行错误对应的内存块;以及解析子模块,用于从内存块中解析得到运行数据。
解析子模块包括:第一解析单元,用于从内存块中解析得到错误数据条目;以及第二解析单元,用于在确定错误数据条目的条目类型为存储器且错误数据条目对应的错误类型为可纠正的情况下,从错误数据条目中解析运行数据,运行错误包括内存页发生错误,运行数据指示内存页的运行信息。
发送模块520包括:信号发送子模块,用于通过第一操作系统向第二操作系统中的指定处理器核发送第一中断信号,指定处理器核为运行错误对应的处理器核。
获取模块530还包括:第二确定子模块,用于根据处理器核的编号和架构寄存器组的编号,从扩展日志中确定运行错误对应的内存块,内存块包括运行数据。
写入模块510包括:第一生成子模块,用于在运行设备发生运行错误时,通过第一操作系统生成第二中断信号;第二生成子模块,用于在第一操作系统中,响应于第二中断信号,根据运行设备发生运行错误的状态,生成运行数据;以及信息写入子模块,用于通过第一操作系统将运行错误的运行数据写入扩展日志中。
第二生成子模块包括:标识生成单元,用于在确定运行设备发生可纠正错误的状态满足预设条件或者运行设备发生不可纠正错误的情况下,生成指定标识;以及设置单元,用于在运行数据中设置指定标识。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,写入模块510,发送模块520,获取模块530和脱机模块540中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,写入模块510,发送模块520,获取模块530和脱机模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,写入模块510,发送模块520,获取模块530和脱机模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图6示出了可以用来实施本公开实施例的方法的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(ROM)602中的计算机程序或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序,来执行各种适当的动作和处理。在RAM 603中,还可存储电子设备600操作所需的各种程序和数据。计算单元601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
电子设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如数据处理方法。例如,在一些实施例中,数据处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的数据处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。其中,服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(“Virtual Private Server”,或简称“VPS”)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (10)

1.一种数据处理方法,包括:
在运行设备发生运行错误时,通过第一操作系统将所述运行错误的运行数据写入扩展日志中;
通过所述第一操作系统向第二操作系统发送第一中断信号,所述第一操作系统为所述第二操作系统的引导系统;
在所述第二操作系统中,基于所述第一中断信号从所述扩展日志中获取所述运行数据;以及
在所述第二操作系统中,在确定所述运行数据指示所述运行设备发生运行错误的状态满足预设条件的情况下,对所述运行设备进行脱机处理。
2.根据权利要求1所述的方法,其中,所述基于所述第一中断信号,从所述扩展日志中获取所述运行数据,包括:
在所述第一中断信号对应的中断状态下,唤醒通知器;
在所述中断状态结束后,通过所述通知器从所述扩展日志中确定所述运行错误对应的内存块;以及
从所述内存块中解析得到所述运行数据。
3.根据权利要求2所述的方法,其中,所述运行错误包括内存页发生错误;所述从所述内存块中解析得到所述运行数据,包括:
从所述内存块中解析得到错误数据条目;以及
在确定所述错误数据条目的条目类型为存储器且所述错误数据条目对应的错误类型为可纠正的情况下,从所述错误数据条目中解析所述运行数据,所述运行数据指示所述内存页的运行信息。
4.根据权利要求1所述的方法,其中,所述通过所述第一操作系统向第二操作系统发送第一中断信号,包括:
通过所述第一操作系统向所述第二操作系统中的指定处理器核发送所述第一中断信号,所述指定处理器核为所述运行错误对应的处理器核。
5.根据权利要求4所述的方法,其中,所述从所述扩展日志中获取所述运行数据,包括:
根据所述处理器核的编号和架构寄存器组的编号,从所述扩展日志中确定所述运行错误对应的内存块,所述内存块包括所述运行数据。
6.根据权利要求1项所述的方法,其中,所述在运行设备发生运行错误时,通过所述第一操作系统将所述运行错误的运行数据写入扩展日志中,包括:
在所述运行设备发生运行错误时,通过所述第一操作系统生成第二中断信号;
在所述第一操作系统中,响应于所述第二中断信号,根据所述运行设备发生所述运行错误的状态,生成所述运行数据;以及
通过所述第一操作系统将所述运行错误的运行数据写入所述扩展日志中。
7.根据权利要求6项所述的方法,其中,所述根据所述运行设备发生所述运行错误的状态,生成所述运行数据,包括:
在确定所述运行设备发生可纠正错误的状态满足预设条件或者所述运行设备发生不可纠正错误的情况下,生成指定标识;以及
在所述运行数据中设置所述指定标识。
8.一种数据处理装置,包括:
写入模块,用于在运行设备发生可运行错误时,通过第一操作系统将所述运行错误的运行数据写入扩展日志中;
发送模块,用于通过所述第一操作系统向第二操作系统发送第一中断信号,所述第一操作系统为所述第二操作系统的引导系统;
获取模块,用于在所述第二操作系统中,基于所述第一中断信号从所述扩展日志中获取所述运行数据;以及
脱机模块,用于在所述第二操作系统中,在确定所述运行数据指示所述运行设备发生所述运行错误的状态满足预设条件的情况下,对所述运行设备进行脱机处理。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
CN202410231549.5A 2024-02-29 2024-02-29 数据处理方法、装置、电子设备以及存储介质 Pending CN118034985A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410231549.5A CN118034985A (zh) 2024-02-29 2024-02-29 数据处理方法、装置、电子设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410231549.5A CN118034985A (zh) 2024-02-29 2024-02-29 数据处理方法、装置、电子设备以及存储介质

Publications (1)

Publication Number Publication Date
CN118034985A true CN118034985A (zh) 2024-05-14

Family

ID=91002022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410231549.5A Pending CN118034985A (zh) 2024-02-29 2024-02-29 数据处理方法、装置、电子设备以及存储介质

Country Status (1)

Country Link
CN (1) CN118034985A (zh)

Similar Documents

Publication Publication Date Title
US11604711B2 (en) Error recovery method and apparatus
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
US8122176B2 (en) System and method for logging system management interrupts
CN113821257B (zh) 处理器内核调用栈信息查询方法及装置
EP3859528A2 (en) Method and apparatus for handling memory failure, electronic device and storage medium
CN116578502A (zh) 访问请求处理装置、处理方法、设备及存储介质
CN118034985A (zh) 数据处理方法、装置、电子设备以及存储介质
CN115757039A (zh) 一种程序监控方法、装置、电子设备和存储介质
CN115033441A (zh) PCIe设备故障检测方法、装置、设备和存储介质
CN114936135A (zh) 一种异常检测方法、装置及可读存储介质
EP3557422A1 (en) Method for accessing code sram, and electronic device
CN113645056B (zh) 一种定位智能网卡故障的方法及系统
TWI789983B (zh) 電源管理方法及電源管理裝置
Zhang et al. Software-Based Detecting and Recovering from ECC-Memory Faults
WO2024016864A1 (zh) 处理器、获取信息的方法、单板及网络设备
CN118277138A (zh) 一种服务器故障定位方法、装置、电子设备和存储介质
CN115373923A (zh) 一种0x7c错误定位方法、装置及介质
CN115061842A (zh) 一种数据处理方法、装置、设备和存储介质
CN118069056A (zh) 一种数据写入方法、装置、设备及介质
CN116737430A (zh) 一种bmc控制方法、装置、电子设备及存储介质
CN114661511A (zh) 一种设备报错处理方法、装置、设备及存储介质
CN117743012A (zh) 一种芯片失效的处理系统、方法、电子设备及存储介质
CN116467144A (zh) 一种应用程序监控方法、装置、设备、芯片及介质
CN116560936A (zh) 异常监测方法、协处理器及计算设备
CN117075977A (zh) 一种处理器的启动方法、装置、电子设备及存储介质

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