CN118132386A - ***崩溃信息保存方法、装置和计算机*** - Google Patents
***崩溃信息保存方法、装置和计算机*** Download PDFInfo
- Publication number
- CN118132386A CN118132386A CN202410535742.8A CN202410535742A CN118132386A CN 118132386 A CN118132386 A CN 118132386A CN 202410535742 A CN202410535742 A CN 202410535742A CN 118132386 A CN118132386 A CN 118132386A
- Authority
- CN
- China
- Prior art keywords
- information
- core
- processor
- interrupt
- monitoring device
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 107
- 238000000034 method Methods 0.000 title claims abstract description 99
- 238000012806 monitoring device Methods 0.000 claims abstract description 142
- 230000015556 catabolic process Effects 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims description 45
- 230000002159 abnormal effect Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004321 preservation Methods 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims 1
- 238000003745 diagnosis Methods 0.000 abstract description 11
- 230000008569 process Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011423 initialization method Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种***崩溃信息保存方法、装置和计算机***,涉及计算机技术领域,其中包括:接收***监测装置发送的目标中断信号;将所述目标中断信号发送至处理器中的第一核和第二核;控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;所述***监测装置、所述***内存分别与所述处理器连接。本申请提供的方法和装置,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息,提高了计算机***的故障诊断效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种***崩溃信息保存方法、装置和计算机***。
背景技术
计算机***在运行过程中可能会出现一些不可恢复的故障,此时计算机***无法继续正常运行,这种现象也被称之为***崩溃。这些故障可能是软件程序出错引起的,可能是硬件故障(比如温度过高、固件卡死、对外连接信号不稳定等)导致的,也可能是人为误操作原因触发的。为了便于进行故障诊断,用户通常需要获得足够的现场信息(即故障发生时计算机的状态,包括异常代码的调用栈、关键寄存器的值、芯片的运行温度等),才有可能分析出故障发生的原因。
因此,如何尽可能多地保存计算机***在发生***崩溃时的相关信息,提高计算机***的故障诊断效率成为业界亟待解决的技术问题。
发明内容
本申请提供一种***崩溃信息保存方法、装置和计算机***,用于解决如何尽可能多地保存计算机***在发生***崩溃时的相关信息,提高计算机***的故障诊断效率的技术问题。
本申请提供一种***崩溃信息保存方法,包括:
接收***监测装置发送的目标中断信号;
将所述目标中断信号发送至处理器中的第一核和第二核;
控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;
控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;
其中,所述***监测装置、所述***内存分别与所述处理器连接。
在一些实施例中,所述第一中断处理程序存储在所述***内存中;所述第二中断处理程序存储在所述***监测装置中。
在一些实施例中,所述接收***监测装置发送的目标中断信号之前,所述方法还包括:
在所述处理器的运行状态为异常的情况下,停止向所述***监测装置中的看门狗模块发送喂狗信号;
其中,所述***监测装置对计算机***中各个设备的运行温度进行周期性监测;在任一设备的运行温度异常或者所述看门狗模块在监测周期内未接收到所述喂狗信号的情况下,向所述处理器发送所述目标中断信号。
在一些实施例中,所述将所述目标中断信号发送至处理器中的第一核和第二核,包括:
在所述第一核和所述第二核支持不可屏蔽中断的情况下,将所述处理器中的中断控制器配置为基于所述第一核的不可屏蔽中断输入接口和所述第二核的不可屏蔽中断输入接口,同时向所述第一核和所述第二核发送所述目标中断信号。
在一些实施例中,所述控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间之前,所述方法还包括:
在所述计算机***初始化的情况下,将所述第一中断处理程序在所述***内存中的地址设置为所述第一核的中断入口地址;
启动监测线程;所述监测线程用于对所述处理器的运行状态进行监测,在所述处理器的运行状态为正常的情况下,周期性地向所述看门狗模块发送喂狗信号。
在一些实施例中,所述控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间,包括:
控制所述第一核在接收到所述目标中断信号的情况下,执行所述第一中断处理程序;
获取所述处理器中各个核的调用栈信息;
读取所述***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及各个核的调用栈信息,生成所述第一***崩溃信息;
将所述第一***崩溃信息保存至所述***内存的预留存储空间。
在一些实施例中,所述将所述第一***崩溃信息保存至所述***内存的预留存储空间之后,所述方法还包括:
将所述***内存配置为自刷新状态;
调用重启命令对所述计算机***进行重启。
在一些实施例中,所述调用重启命令对所述计算机***进行重启之前,所述方法还包括:
确定所述第二中断处理程序的执行状态;
在所述第二中断处理程序的执行状态为完成的情况下,调用重启命令对所述计算机***进行重启。
在一些实施例中,所述控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置之前,所述方法还包括:
在所述计算机***初始化的情况下,将所述第二中断处理程序从所述***内存复制到所述***监测装置的崩溃信息存储器中;
将所述第二中断处理程序在所述崩溃信息存储器中的地址设置为所述第二核的中断入口地址。
在一些实施例中,所述控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置,包括:
控制所述第二核在接收到所述目标中断信号的情况下,执行所述第二中断处理程序;
获取所述***内存的运行状态信息;
读取所述***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及所述***内存的运行状态信息,生成所述第二***崩溃信息;
将所述第二***崩溃信息保存至所述***监测装置的崩溃信息存储器。
在一些实施例中,所述基于各个设备的运行温度信息和获取时间信息,以及所述***内存的运行状态信息,生成所述第二***崩溃信息,包括:
基于各个设备的运行温度信息和获取时间信息,所述处理器的电源通断信息,以及所述***内存的运行状态信息,生成所述第二***崩溃信息。
在一些实施例中,所述方法还包括:
在计算机***重启的情况下,获取所述***内存的刷新设置信息;
在所述***内存的刷新设置信息为自刷新的情况下,将所述***内存配置为***刷新;
在所述***内存中设置预留存储空间。
在一些实施例中,所述方法还包括:
在计算机***重启的情况下,从所述***内存的预留存储空间中获取所述第一***崩溃信息;
从所述***监测装置中获取所述第二***崩溃信息;
显示所述第一***崩溃信息和所述第二***崩溃信息。
本申请提供一种***崩溃信息保存装置,包括:
接收单元,用于接收***监测装置发送的目标中断信号;
发送单元,用于将所述目标中断信号发送至处理器中的第一核和第二核;
第一保存单元,用于控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;
第二保存单元,用于控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;
其中,所述***监测装置、所述***内存分别与所述处理器连接;所述第一中断处理程序存储在所述***内存中;所述第二中断处理程序存储在所述***监测装置中。
本申请提供一种计算机***,包括处理器、***监测装置和***内存;
所述处理器用于执行所述的***崩溃信息保存方法。
在一些实施例中,所述处理器包括中断输入接口和总线接口;
所述处理器基于所述中断输入接口接收所述***监测装置发送的目标中断信号;
所述处理器基于所述总线接口读取所述***监测装置中实时保存的各个设备的运行温度信息和获取时间信息。
在一些实施例中,所述***监测装置还包括温度采集模块;
所述温度采集模块,与所述计算机***中各个设备的温度传感器连接,用于采集各个设备的运行温度信息。
在一些实施例中,所述***监测装置还包括计时模块;
所述计时模块用于确定各个设备的运行温度信息对应的获取时间信息。
在一些实施例中,所述***监测装置还包括电源管理模块;
所述电源管理模块,用于对所述处理器和所述***内存的工作电源控制,生成电源通断信息。
本申请提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的***崩溃信息保存方法。
本申请提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的***崩溃信息保存方法。
本申请提供的***崩溃信息保存方法、装置和计算机***,接收***监测装置发送的目标中断信号;将目标中断信号发送至处理器中的第一核和第二核;控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;由于采用了第一核和第二核分别执行不同的中断处理程序,对计算机***的***崩溃信息进行了分别保存在了***内存和***监测装置中,使得执行中断处理程序的核、中断处理程序的存储位置和***崩溃信息的保存位置等均是互相独立的,提高了***崩溃信息保存的冗余度,即使在***内存发生故障的情况下也依然能够保存***崩溃信息,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息,提高了计算机***的故障诊断效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的***崩溃信息保存方法的流程示意图;
图2是本申请提供的计算机***的结构示意图之一;
图3是本申请提供的计算机***初始化方法的流程示意图之一;
图4是本申请提供的第一中断处理程序的处理流程图;
图5是本申请提供的计算机***初始化方法的流程示意图之二;
图6是本申请提供的第二中断处理程序的处理流程图;
图7是本申请提供的计算机***重启方法的流程示意图;
图8是本申请提供的***崩溃信息保存装置的结构示意图;
图9是本申请提供的计算机***的结构示意图之二;
图10是本申请提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在计算机***中运行的软件如果存在缺陷,一般会引起指令执行异常(包括无效指令、无效地址等),从而导致***崩溃。这些异常类似于处理器核自身产生的中断,操作***会停止执行当前正在执行的程序,立即执行异常处理程序。如果异常是应用程序产生的,操作***会解析程序的调用栈(函数的调用顺序),并保存到核心转储文件(coredump)中供工程师后续调查。工程师还可以通过写程序或脚本自动重新执行应用程序。但是对于操作***内部代码产生的异常,一般就无法恢复了,此时只能重启。在重启的过程中,中央处理器(Central Processing Unit,CPU)中的双倍速率同步动态随机存取存储器(Double DataRate SDRAM,DDR)控制器处于不工作状态,不会再刷新(refresh)DDR中的数据,并且在重启之后基本输入输出***(Basic Input Output System,BIOS)或者通用引导加载程序(Universal Boot Loader,U-boot)等会重新初始化和配置DDR控制器,所以DDR中的所有数据会丢失,因此在异常处理程序中将现场信息保存到DDR中是没有意义的。此时也很难将现场信息存储到硬盘等非易失性介质中,因为硬盘的驱动程序也属于操作***的一部分,无法保证它在操作***内部代码出现异常的情况下还能正常工作,如果调用硬盘的驱动程序将现场信息数据保存到硬盘,会冒着在此过程中程序卡住,无法正常执行之后的重启流程以恢复***执行的风险。所以,对于以上描述的操作***内部代码出错产生的***崩溃,由于工程师无法获取足够的现场信息,很难调查问题出现的原因。
对于硬件和人为操作原因引起的***崩溃,一般由中断传递到处理器核,处理器核会立即执行中断处理程序,查询中断原因,并做相应处理(一般是重启)。由于重启后DDR中的数据就消失了,此时也很难将足够的现场信息保存下来。
相关技术通过在DDR中预留专用地址段存储现场信息,在计算机***发生崩溃重启之前设置DDR为自刷新(self-refresh)状态,从而使得DDR在计算机重启之后能够避免数据丢失。但是相关技术依然存在以下不足:
(1)如果DDR和DDR控制器本身存在故障,则***崩溃的现场信息保存不下来,负责执行保存信息和重启的代码都无法执行(因为代码也在DDR中),此时***会卡死;
(2)对于因用户按关机键、用户误输入关机命令等引起的关机后重启,由于CPU曾经断过电,DDR中的数据无法保存下来,导致无法获得***重启的具体原因;
(3)保存的现场信息不全,无法准确分析计算机***崩溃的具体原因。
为了解决相关技术的不足,图1是本申请提供的***崩溃信息保存方法的流程示意图,如图1所示,该方法的执行步骤包括步骤110、步骤120、步骤130和步骤140。
步骤110、接收***监测装置发送的目标中断信号。***监测装置、***内存分别与计算机***的处理器连接。
具体地,本申请实施例提供的***崩溃信息保存方法的执行主体为***崩溃信息保存装置。该装置可以通过软件实现,例如***崩溃信息保存程序;也可以为执行***崩溃信息保存方法的装置,例如计算机或者服务器等。
***崩溃是指计算机***硬件或者软件出现严重故障或者错误,导致***无法正常运行。***崩溃可能会导致数据丢失、任务中断、生产效率降低等。
***崩溃信息是指与计算机***发生***崩溃的原因相关的信息,也被称为***崩溃时的现场信息,例如可以包括各个硬件设备的运行状态、错误代码、日志信息、堆栈跟踪信息和运行环境等信息。
图2是本申请提供的计算机***的结构示意图之一,如图2所示,计算机***200至少包括处理器210,以及与处理器连接的***监测装置220和***内存230。
处理器可以为CPU芯片,是整个***的核心。它的内部可以包括至少两个处理器核、集成电路总线(Inter-Integrated Circuit,I2C)控制器、通用异步收发器(UniversalAsynchronous Receiver and Transmitter,UART)控制器、本地总线(Local Bus)控制器、DDR控制器、高速串行计算机扩展总线(Peripheral Component Interconnect express,PCIe)控制器等硬件模块。
***内存是指***临时存储程序指令和数据的主要区域,通常采用双倍速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR)。
***监测装置是指对计算机***中各个硬件设备(包括处理器)进行状态监测的装置。
在计算机***中,中断信号是一种特殊的信号,用于通知处理器需要立即停止当前正在执行的任务,转而处理来自外部设备或其他部件的紧急事件或请求。中断信号可以来自多种源头,包括硬件设备、操作***或其他软件组件。
目标中断信号是指计算机***出现***崩溃,需要处理器对***崩溃信息进行保存的中断信号。
目标中断信号可以由***监测装置发出,通过处理器的中断信号接口(通常为中断输入管脚)输入。
步骤120、将目标中断信号发送至处理器中的第一核和第二核。
具体地,处理器可以包含一个或多个核。每个核都是一个独立的处理单元,可以执行指令并处理数据。在多核处理器中,每个核心可以同时执行不同的任务。
在本申请实施例中,处理器中至少包括两个核,分别为第一核和第二核。处理器在接收到目标中断信号之后,会立即将该目标中断信号发送至第一核和第二核。
步骤130、控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间。第一中断处理程序存储在***内存中。
具体地,***内存的预留存储空间是指在***内存中预留的专门用于保存***崩溃信息的存储空间。可以在计算机***执行***引导的过程中,通过***引导程序对***内存进行初始化,预留部分存储空间作为用于保存***崩溃信息的预留存储空间,将剩下的存储空间作为内存供操作***使用。操作***将不会在启动或正常运行过程中自动使用预留存储空间。
中断处理程序是一段特殊的代码,用于响应和处理中断信号。当处理器接收到中断信号时,它会暂停当前正在执行的任务,转而执行中断处理程序来处理中断引发的事件或请求。中断处理程序的主要任务包括保存当前状态、响应中断请求、执行中断服务、恢复执行状态和清除中断标志等。
可以将第一中断处理程序存储在***内存中,例如存储在***内存的预留存储空间。处理器将目标中断信号发送至第一核,控制第一核从***内存的预留存储空间中读取并运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间。
步骤140、控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置。第二中断处理程序存储在***监测装置中。
具体地,***监测装置独立于处理器外部,其内部可以单独设置崩溃信息存储器,例如可以采用随机存取存储器(Random Access Memory,RAM)来实现。
可以将第二中断处理程序存储在***监测装置的崩溃信息存储器中。处理器将目标中断信号发送至第二核,控制第二核从***监测装置的崩溃信息存储器中读取并运行第二中断处理程序,将第二***崩溃信息保存至***监测装置的崩溃信息存储器中。
本申请实施例提供的***崩溃信息保存方法,接收***监测装置发送的目标中断信号;将目标中断信号发送至处理器中的第一核和第二核;控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;由于采用了第一核和第二核分别执行不同的中断处理程序,对计算机***的***崩溃信息进行了分别保存在了***内存和***监测装置中,使得执行中断处理程序的核、中断处理程序的存储位置和***崩溃信息的保存位置等均是互相独立的,提高了***崩溃信息保存的冗余度,即使在***内存发生故障的情况下也依然能够保存***崩溃信息,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息,提高了计算机***的故障诊断效率。
需要说明的是,本申请每一个实施方式可以自由组合、调换顺序或者单独执行,并不需要依靠或依赖固定的执行顺序。
在一些实施例中,接收***监测装置发送的目标中断信号之前,方法还包括:
在处理器的运行状态为异常的情况下,停止向***监测装置中的看门狗模块发送喂狗信号;
其中,***监测装置对计算机***中各个设备的运行温度进行周期性监测;在任一设备的运行温度异常或者看门狗模块在监测周期内未接收到喂狗信号的情况下,向处理器发送目标中断信号。
具体地,看门狗是一种硬件或软件机制,用于监视***的运行状态,并在***出现异常或停止响应时采取措施来恢复***的正常运行。可以在计算机***中设置看门狗模块来实现对处理器的运行状态进行监测。
可以在处理器中创建线程用于对处理器的运行状态进行监测。例如该线程可以通过在设定周期内是否被处理器调用来确定处理器的运行状态。如果该线程在设定周期(例如10秒)内被处理器调用,则表示处理器的运行状态为正常;如果该线程在超出设定周期内未被处理器调用,则表示处理器的运行状态为异常,可能停止响应或者陷入死锁状态。
在处理器的运行状态为正常的情况下,可以向***监测装置中的看门狗模块发送喂狗信号,该喂狗信号防止看门狗模块中的定时器超时。在处理器的运行状态为异常的情况下,停止向***监测装置中的看门狗模块发送喂狗信号。看门狗模块在监测周期(例如30秒)内未接收到喂狗信号,则看门狗模块中的定时器超时,触发***监测装置向处理器发送目标中断信号。
可以在***监测装置中设置温度采集模块,该模块与计算机***中各个设备的温度传感器连接,用于周期性采集和监测各个设备的运行温度。在任一设备的运行温度异常或者看门狗模块在监测周期内未接收到喂狗信号的情况下,***监测装置判断发生***崩溃,向处理器发送目标中断信号。
本申请实施例提供的***崩溃信息保存方法,在***监测装置中设置看门狗模块,在任一设备的运行温度异常或者看门狗模块在监测周期内未接收到喂狗信号的情况下发送目标中断信号,实现了对计算机***中各个设备的监控,能够及时根据各个设备的运行状态发送中断信号,及时有效地保存***崩溃信息。
在一些实施例中,将目标中断信号发送至处理器中的第一核和第二核,包括:
在第一核和第二核支持不可屏蔽中断的情况下,将处理器中的中断控制器配置为基于第一核的不可屏蔽中断输入接口和第二核的不可屏蔽中断输入接口,同时向第一核和第二核发送目标中断信号。
具体地,处理器中的核支持的中断类型通常包括可屏蔽中断(普通中断)和不可屏蔽中断(Non-Maskable Interrupt,NMI)。
不可屏蔽中断是一种特殊类型的中断,它具有比其他中断更高的优先级,通常用于处理***中的紧急事件或关键异常情况。与可屏蔽中断不同,不可屏蔽中断无法通过软件执行指令来关闭,即使***处于屏蔽所有中断的状态,不可屏蔽中断仍然能够触发。
处理器中的核通常有一个管脚(中断输入接口)接收中断信号,这个管脚接收中断的功能一旦被关闭(一般是正在处理中断),核就无法处理一些比普通中断更紧急的事件了。这些事件包括:机器温度过高、硬件出现异常(例如DDR无法写入)、用户执行重启或关机操作(此时需要紧急保存信息,以便后来调查重启或关机原因)。因此,处理器的核除了接收普通中断信号的管脚,一般还会有至少1个接收不可屏蔽中断信号的管脚。例如某些型号的处理器,可以通过设置中断控制器,支持将外部设备或控制器的中断信号连接到处理器核的不可屏蔽中断管脚上。
如果第一核和第二核支持不可屏蔽中断,可以对处理器中的中断控制器进行配置,使得中断控制器通过第一核的不可屏蔽中断输入接口和第二核的不可屏蔽中断输入接口,同时向第一核和第二核发送目标中断信号,使得第一核和第二核分别执行第一中断处理程序和第二中断处理程序,对***崩溃信息进行保存。
本申请实施例提供的***崩溃信息保存方法,通过第一核的不可屏蔽中断输入接口和第二核的不可屏蔽中断输入接口,同时向第一核和第二核发送目标中断信号,使得目标中断信号具有较高的优先级,及时有效地保存***崩溃信息。
在一些实施例中,控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间之前,方法还包括:
在计算机***初始化的情况下,将第一中断处理程序在***内存中的地址设置为第一核的中断入口地址;
启动监测线程;监测线程用于对处理器的运行状态进行监测,在处理器的运行状态为正常的情况下,周期性地向看门狗模块发送喂狗信号。
具体地,计算机***初始化后,会加载一系列的驱动程序。其中之一是用来加载第一中断处理程序。由于第一中断处理程序的加载涉及到了看门狗模块,因此加载第一中断处理程序的驱动程序也可以被称为看门狗驱动。
图3是本申请提供的计算机***初始化方法的流程示意图之一,如图3所示,该流程为看门狗驱动的初始化流程。看门狗驱动的所有代码和数据都位于DDR中,作为保存***崩溃信息的主力程序,可以在DDR和操作***没有出严重问题(至少看门狗驱动还能执行)的情况下保存所有需要的现场信息。
在计算机***初始化的情况下,看门狗驱动会对中断控制器进行配置,将来自***监测模块的目标中断信号通过第一核的不可屏蔽中断接口发送至第一核。将第一中断处理程序在***内存中的地址设置为第一核的中断入口地址,使得第一核在收到目标中断信号后会立即跳转到第一中断处理程序执行。
此外,看门狗驱动还启动监测线程。将该监测线程与第一核进行绑定,使得监测线程可以用于对处理器的运行状态进行监测,在处理器的运行状态为正常的情况下,周期性(例如周期可以为10秒)地向看门狗模块发送喂狗信号,也就是以每10秒1次的频率踢狗。
本申请实施例提供的***崩溃信息保存方法,在计算机***初始化的情况下,将第一中断处理程序在***内存中的地址设置为第一核的中断入口地址并启动监测线程对处理器的运行状态进行监测,实现了第一中断处理程序的加载,便于第一核执行,使得第一核能够及时有效地保存***崩溃信息。
在一些实施例中,控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间,包括:
控制第一核在接收到目标中断信号的情况下,执行第一中断处理程序;
获取处理器中各个核的调用栈信息;
读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及各个核的调用栈信息,生成第一***崩溃信息;
将第一***崩溃信息保存至***内存的预留存储空间。
具体地,图4是本申请提供的第一中断处理程序的处理流程图,如图4所示,第一核在接收到中断信号的情况下,会读取中断控制器的状态寄存器,判断所接收到的中断信号是否来自于***监测装置。如果不是,则确定中断信号可能是其他中断,进入其他中断的处理流程。如果是,则确定该中断信号来自于***监测装置。
通过处理器与***监测装置进行数据通信,第一核读取***监测装置中的标识寄存器,判断***监测装置是否可以访问。如果不能访问,则确定***监测装置可能出现故障,则获取处理器中各个核的调用栈信息。如果能够访问,则通过中断状态寄存器判断任一设备的运行温度是否异常或者看门狗模块在监测周期内是否接收到喂狗信号(看门狗报警),如果均不是,则表示中断信号可能是其他中断,进入其他中断的处理流程。如果确定任一设备的运行温度异常或者看门狗模块在监测周期内未接收到喂狗信号,则表示中断信号为目标中断信号,获取处理器中各个核的调用栈信息,读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息。
根据各个设备的运行温度信息和获取时间信息,以及各个核的调用栈信息,生成第一***崩溃信息,并将第一***崩溃信息保存至***内存的预留存储空间。
此处,获取时间信息是指各个设备的运行温度信息的实时采集时间信息。调用栈用于跟踪函数调用的顺序,还可以用于异常处理、调试和内存管理等方面。调用栈信息为各个核中软件程序执行中的函数调用信息。通过调用栈信息,可以确定程序执行的流程和定位出现的错误。
本申请实施例提供的***崩溃信息保存方法,控制第一核执行第一中断处理程序,将各个设备的运行温度信息和获取时间信息,以及各个核的调用栈信息作为第一***崩溃信息,保存至***内存的预留存储空间,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息。
在一些实施例中,将第一***崩溃信息保存至***内存的预留存储空间之后,方法还包括:
将***内存配置为自刷新状态;
调用重启命令对计算机***进行重启。
具体地,***内存可以采用DDR存储器实现。DDR存储器用于存储数据和程序,但需要处理器中的DDR控制器定期刷新以保持数据的有效性。如果不对***内存中的数据进行刷新,数据将逐渐消失。
在计算机***崩溃的情况下,需要进行重启。在重启的过程中,处理器中的DDR控制器处于不工作状态,不会再刷新(refresh)DDR中的数据,并且在重启之后BIOS或者U-boot等***引导程序会重新初始化和配置DDR控制器,所以DDR中的所有数据会丢失。
因此在重启之前,可以***内存配置为自刷新状态。DDR存储器通常会内置刷新控制器,负责定期刷新存储器中存储的数据。这种自动刷新过程被称为内存自刷新。内存自刷新是计算机内存管理的一部分,它确保了***中的数据持久性和稳定性,同时减少了对操作***或应用程序的干预。
本申请实施例提供的***崩溃信息保存方法,在重启计算机***之前将***内存配置为自刷新状态,实现了对第一***崩溃信息的有效保存,避免了数据丢失,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息。
在一些实施例中,调用重启命令对计算机***进行重启之前,方法还包括:
确定第二中断处理程序的执行状态;
在第二中断处理程序的执行状态为完成的情况下,调用重启命令对计算机***进行重启。
具体地,由于第一中断处理程序和第二中断处理程序分别由第一核和第二核独立执行,而由第一核负责对计算机***进行重启,因此在第一核调用重启命令对计算机***进行重启之前,可以通过核间通信,获取第二中断处理程序的执行状态。
如果第二中断处理程序的执行状态为完成,则第一核调用重启命令对计算机***进行重启;如果第二中断处理程序的执行状态为未完成,则第一核可以等待第二中断处理程序执行完成之后,调用重启命令对计算机***进行重启。
本申请实施例提供的***崩溃信息保存方法,在第二中断处理程序的执行状态为完成的情况下,调用重启命令对计算机***进行重启,使得第一中断处理程序和第二中断处理程序均能执行完毕,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息。
在一些实施例中,控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置之前,方法还包括:
在计算机***初始化的情况下,将第二中断处理程序从***内存复制到***监测装置的崩溃信息存储器中;
将第二中断处理程序在崩溃信息存储器中的地址设置为第二核的中断入口地址。
具体地,计算机***初始化后,在加载第一中断处理程序的情况下,还会加载第二中断处理程序。由于第二中断处理程序的加载涉及到了***监测装置,因此加载第二中断处理程序的驱动程序也可以被称为***监测装置驱动。
图5是本申请提供的计算机***初始化方法的流程示意图之二,如图5所示,该流程为***监测装置驱动的初始化流程。***监测装置驱动的所有代码(包括第二中断处理程序)在初始化之前存储在***内存中。在计算机***初始化的情况下,***监测装置驱动将第二中断处理程序从***内存复制到***监测装置的崩溃信息存储器中。崩溃信息存储器为***监测装置中单独设置的存储器,用于存储***崩溃信息以及第二中断处理程序。
将第二中断处理程序从***内存复制到***监测装置的崩溃信息存储器中之后,将第二中断处理程序在崩溃信息存储器中的地址设置为第二核的中断入口地址,使得第二核在收到目标中断信号后会立即跳转到第二中断处理程序执行。
此时,即使***内存发生故障,无法访问,第二核也可以执行第二中断处理程序,保存第二***崩溃信息。
本申请实施例提供的***崩溃信息保存方法,在计算机***初始化的情况下,将第二中断处理程序从***内存复制到***监测装置的崩溃信息存储器中,将第二中断处理程序在崩溃信息存储器中的地址设置为第二核的中断入口地址,实现了第二中断处理程序的加载,便于第二核执行,使得第二核能够及时有效地保存***崩溃信息。
在一些实施例中,控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置,包括:
控制第二核在接收到目标中断信号的情况下,执行第二中断处理程序;
获取***内存的运行状态信息;
读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及***内存的运行状态信息,生成第二***崩溃信息;
将第二***崩溃信息保存至***监测装置的崩溃信息存储器。
具体地,图6是本申请提供的第二中断处理程序的处理流程图,如图6所示,第二核在接收到中断信号的情况下,会跳转执行第二中断处理程序。第二中断处理程序的代码均存储在***监测装置的崩溃信息存储器中。
第二核读取***监测装置的中断状态寄存器,通过中断状态寄存器判断任一设备的运行温度是否异常或者看门狗模块在监测周期内是否接收到喂狗信号。如果均不是,则无需进行任何处理。如果确定任一设备的运行温度异常或者看门狗模块在监测周期内未接收到喂狗信号,则获取***内存的运行状态信息,读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息。第二核将各个设备的运行温度信息和获取时间信息,以及***内存的运行状态信息,作为第二***崩溃信息保存至***监测装置的崩溃信息存储器。
第二***崩溃信息主要是用在***内存发生故障的情况下,因此所保存的信息相对于第一***崩溃信息来说较为有限,但是依然可以提供各个设备的运行温度信息和***内存的运行状态信息,以便于进行计算机***的故障诊断。
本申请实施例提供的***崩溃信息保存方法,控制第二核在接收到目标中断信号的情况下,执行第二中断处理程序,将各个设备的运行温度信息和获取时间信息,以及***内存的运行状态信息,作为第二***崩溃信息保存至***监测装置的崩溃信息存储器,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息。
在一些实施例中,基于各个设备的运行温度信息和获取时间信息,以及***内存的运行状态信息,生成第二***崩溃信息,包括:
基于各个设备的运行温度信息和获取时间信息,处理器的电源通断信息,以及***内存的运行状态信息,生成第二***崩溃信息。
具体地,处理器的电源通断信息是指处理器的接通和断开的相关信息。
计算机***的用户可能通过断电重启或者误输入关机命令等操作,使得计算机***发生崩溃。可以通过计算机***中的电源管理模块获取处理器的电源通断信息,可以将其也作为第二***崩溃信息进行存储。
本申请实施例提供的***崩溃信息保存方法,将各个设备的运行温度信息和获取时间信息,处理器的电源通断信息,以及***内存的运行状态信息,作为第二***崩溃信息进行存储,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息。
在一些实施例中,方法还包括:
在计算机***重启的情况下,获取***内存的刷新设置信息;
在***内存的刷新设置信息为自刷新的情况下,将***内存配置为***刷新;
在***内存中设置预留存储空间。
具体地,计算机***重启可以通过BIOS或者U-boot等***引导程序实现。
图7是本申请提供的计算机***重启方法的流程示意图,如图7所示,在计算机***重启的情况下,***引导程序在加载操作***之前,会检查内存(DDR)控制器的状态,获取***内存的刷新设置信息。
如果刷新设置信息表示***内存未设置自刷新,则***引导程序会对***内存进行重新初始化;如果刷新设置信息表示***内存设置为自刷新,则***引导程序会取消***内存的自刷新设置,将刷新设置修改为***刷新,也就是由计算机***的处理器中的内存控制器来实现对***内存进行刷新。
***引导程序会检测***内存的总大小,并在***内存中划分部分存储空间作为预留存储空间。预留存储空间的大小可以根据需要设置。在完成预留存储空间之后,***引导程序启动操作***,并将***内存中除预留存储空间之外的存储空间的地址段传递至操作***,使得操作***不会在启动或正常运行过程中自动使用预留存储空间。用户可以通过编写程序访问预留存储空间。
本申请实施例提供的***崩溃信息保存方法,通过在计算机***重启的情况下,将***内存取消自刷新,并在***内存中设置预留存储空间,保证了***内存中预留存储空间的所有数据处于重启之前的状态,避免了在之后的操作***启动过程中***作***和应用程序改写,实现了保存计算机***在发生***崩溃时的相关信息。
在一些实施例中,方法还包括:
在计算机***重启的情况下,从***内存的预留存储空间中获取第一***崩溃信息;
从***监测装置中获取第二***崩溃信息;
显示第一***崩溃信息和第二***崩溃信息。
具体地,在计算机***重启之后,可以对***内存和***监测装置进行访问,可以通过将***内存的预留存储空间的地址和***监测装置的崩溃信息存储器的地址映射到处理器可以访问的地址,从而使得可以从***内存的预留存储空间中获取第一***崩溃信息,以及从***监测装置的崩溃信息存储器中获取第二***崩溃信息。
在计算机***中显示第一***崩溃信息和第二***崩溃信息,使得用户或者工程师可以进行计算机***的故障诊断。此外,还可以通过计算机***中的电源管理模块获取处理器的电源通断信息,一并进行显示。
用户或者工程师可以导出相关的信息,并在***内存和***监测装置中分别删除本次保存的***崩溃信息,以免影响下一次的***崩溃信息的保存。
本申请实施例提供的***崩溃信息保存方法,在计算机***重启的情况下,从***内存和***监测装置中分别获取并显示第一***崩溃信息和第二***崩溃信息,提高了计算机***的故障诊断效率。
下面对本申请实施例提供的装置进行描述,下文描述的装置与上文描述的方法可相互对应参照。
图8是本申请提供的***崩溃信息保存装置的结构示意图,如图8所示,***崩溃信息保存装置包括:
接收单元810,用于接收***监测装置发送的目标中断信号;
发送单元820,用于将目标中断信号发送至处理器中的第一核和第二核;
第一保存单元830,用于控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;
第二保存单元840,用于控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;
其中,***监测装置、***内存分别与处理器连接;第一中断处理程序存储在***内存中;第二中断处理程序存储在***监测装置中。
本申请实施例提供的***崩溃信息保存装置,接收***监测装置发送的目标中断信号;将目标中断信号发送至处理器中的第一核和第二核;控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;由于采用了第一核和第二核分别执行不同的中断处理程序,对计算机***的***崩溃信息进行了分别保存在了***内存和***监测装置中,使得执行中断处理程序的核、中断处理程序的存储位置和***崩溃信息的保存位置等均是互相独立的,提高了***崩溃信息保存的冗余度,即使在***内存发生故障的情况下也依然能够保存***崩溃信息,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息,提高了计算机***的故障诊断效率。
在一些实施例中,该装置还用于:
在处理器的运行状态为异常的情况下,停止向***监测装置中的看门狗模块发送喂狗信号;
其中,***监测装置对计算机***中各个设备的运行温度进行周期性监测;在任一设备的运行温度异常或者看门狗模块在监测周期内未接收到喂狗信号的情况下,向处理器发送目标中断信号。
在一些实施例中,发送单元用于:
在第一核和第二核支持不可屏蔽中断的情况下,将处理器中的中断控制器配置为基于第一核的不可屏蔽中断输入接口和第二核的不可屏蔽中断输入接口,同时向第一核和第二核发送目标中断信号。
在一些实施例中,第一保存单元用于:
在计算机***初始化的情况下,将第一中断处理程序在***内存中的地址设置为第一核的中断入口地址;
启动监测线程;监测线程用于对处理器的运行状态进行监测,在处理器的运行状态为正常的情况下,周期性地向看门狗模块发送喂狗信号。
在一些实施例中,第一保存单元用于:
控制第一核在接收到目标中断信号的情况下,执行第一中断处理程序;
获取处理器中各个核的调用栈信息;
读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及各个核的调用栈信息,生成第一***崩溃信息;
将第一***崩溃信息保存至***内存的预留存储空间。
在一些实施例中,该装置还用于:
将***内存配置为自刷新状态;
调用重启命令对计算机***进行重启。
在一些实施例中,该装置还用于:
确定第二中断处理程序的执行状态;
在第二中断处理程序的执行状态为完成的情况下,调用重启命令对计算机***进行重启。
在一些实施例中,第二保存单元用于:
在计算机***初始化的情况下,将第二中断处理程序从***内存复制到***监测装置的崩溃信息存储器中;
将第二中断处理程序在崩溃信息存储器中的地址设置为第二核的中断入口地址。
在一些实施例中,第二保存单元用于:
控制第二核在接收到目标中断信号的情况下,执行第二中断处理程序;
获取***内存的运行状态信息;
读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及***内存的运行状态信息,生成第二***崩溃信息;
将第二***崩溃信息保存至***监测装置的崩溃信息存储器。
在一些实施例中,第二保存单元用于:
基于各个设备的运行温度信息和获取时间信息,处理器的电源通断信息,以及***内存的运行状态信息,生成第二***崩溃信息。
在一些实施例中,该装置用于:
在计算机***重启的情况下,获取***内存的刷新设置信息;
在***内存的刷新设置信息为自刷新的情况下,将***内存配置为***刷新;
在***内存中设置预留存储空间。
在一些实施例中,该装置用于:
在计算机***重启的情况下,从***内存的预留存储空间中获取第一***崩溃信息;
从***监测装置中获取第二***崩溃信息;
显示第一***崩溃信息和第二***崩溃信息。
图9是本申请提供的计算机***的结构示意图之二,如图9所示,计算机***200至少包括处理器210,以及与处理器连接的***监测装置220和***内存230。
处理器210包括第一核211、第二核212、中断控制器213和内存控制器214。处理器用于上述实施例的***崩溃信息保存方法。
***监测装置220还包括I2C控制器221、温度采集模块222、计时模块223、电源管理模块224、看门狗模块225和崩溃信息存储器226。***监测装置可以通过复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)芯片或者现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)芯片实现。崩溃信息存储器可以采用随机存取存储器(Random Access Memory,RAM)实现。
***内存230被划分为预留存储空间和内存读写空间。预留存储空间专门用于保存***崩溃信息和相关的中断处理程序。
本申请实施例提供的计算机***,包括处理器、***监测装置和***内存,处理器执行***崩溃信息保存方法,由于采用了第一核和第二核分别执行不同的中断处理程序,对计算机***的***崩溃信息进行了分别保存在了***内存和***监测装置中,使得执行中断处理程序的核、中断处理程序的存储位置和***崩溃信息的保存位置等均是互相独立的,提高了***崩溃信息保存的冗余度,即使在***内存发生故障的情况下也依然能够保存***崩溃信息,实现了尽可能多地保存计算机***在发生***崩溃时的相关信息,提高了计算机***的故障诊断效率。
在一些实施例中,处理器包括中断输入接口和总线接口;
处理器基于中断输入接口接收***监测装置发送的目标中断信号;
处理器基于总线接口读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息。
具体地,处理器通过中断输入接口和总线接口与***监测装置连接。中断输入接口和总线接口可以为处理器的管脚。
处理器通过中断输入接口接收***监测装置发送的目标中断信号,通过总线接口读取***监测装置中实时保存的各个设备的运行温度信息和获取时间信息。
本申请实施例提供的计算机***,处理器通过中断输入接口和总线接口,实现了与***监测装置进行连接。
在一些实施例中,温度采集模块,与计算机***中各个设备的温度传感器连接,用于采集各个设备的运行温度信息。
具体地,计算机***中各个设备的温度传感器可以通过I2C总线接入I2C控制器。温度采集模块会周期性的(比如每秒)通过I2C控制器读取各个设备内部或旁边的温度传感器,获取采集各个设备的运行温度信息。此处的各个设备包括计算机***中的各个芯片,也包括重要的硬件设备。
本申请实施例提供的计算机***,通过***监测装置中的温度采集模块采集各个设备的运行温度信息,对计算机***的各个设备的运行状态进行监测,温度读取由***监测装置中的模块进行,稳定性较高且和处理器之间彼此独立,即使软件出了故障,也不会影响温度的获取。
在一些实施例中,计时模块用于确定各个设备的运行温度信息对应的获取时间信息。
具体地,计时模块会根据获取的时间信息确定各个设备的运行温度信息对应的获取时间信息,有助于用户或者工程师更好地对计算机***进行故障诊断。
计时模块可以从网络时间或者计算机***的时间获取时间信息,在温度采集模块获取各个设备的运行温度信息时,自动确定对应的获取时间信息。
在一些实施例中,电源管理模块,用于对处理器和***内存的工作电源控制,生成电源通断信息。
具体地,电源管理模块可以用于负责对处理器、***内存以及其他芯片或者设备提供工作电源,并对工作电源进行控制,生成电源通断信息。
在计算机***上电后,电源管理模块自动给其它设备供电。但也可以由处理器中运行的电源管理程序控制,主动给某些芯片上下电(如果给处理器下了电,***监测装置必须马上再给处理器自动上电,起到重启***的作用),用来省电或者重启以恢复芯片。
电源管理模块自身可以记录给各个设备(例如各类芯片)上下电、给处理器断电重启等操作,具体包括用户按了重启键或者电源键(电源管理模块可以连接外部设置的重启键或者电源键)、软件通过控制电源管理模块让处理器断电重启或让某芯片断电、看门狗超时主动让处理器断电重启等。每种操作对应某个具体的编号,***监测装置会把最后一次上述操作的编号保存到某个寄存器中,处理器通过读取此寄存器获取编号,也就获得了相应的操作记录(电源通断信息)。如果没有记录,则意味着整个***(包括***监测装置)是断电后第一次上电。这些记录对调查***重启原因非常重要。
在一些实施例中,看门狗模块在第一监测周期(例如30秒)内未接收到喂狗信号,则看门狗模块中的定时器超时,触发***监测装置向处理器发送目标中断信号。看门狗模块在第二监测周期(例如1分钟)内未接收到喂狗信号,会通知电源管理模块给处理器断电重启(下电然后上电),防止***长时间卡死。
在一些实施例中,崩溃信息存储器用于存储处理器重启前调用的第二中断处理程序(以防此时DDR不可用)的代码,以及第二中断处理程序写入的第二***崩溃信息。
在一些实施例中,处理器配置中断控制器,使来自***监测模块的中断同时发往两个核。如果核支持不可屏蔽中断,软件还需配置中断控制器,改为将中断发往核的不可屏蔽中断的管脚。两个核会分别运行不同的中断处理程序,程序的代码分别保存在DDR和***监测模块RAM中,并分别负责往DDR、***监测模块RAM中写入现场信息。其中负责往DDR中写入现场信息的中断处理程序还负责重启***。如果当前CPU的中断控制器不支持将一个外部中断同时发往两个核,则需要修改硬件设计,使***监测模块同时发出两个中断信号给CPU的两个输入输出(Input Output,I/O)管脚,再让中断控制器分别转给两个核。
图10是本申请提供的电子设备的结构示意图,如图10所示,该电子设备可以包括:处理器(Processor)1010、通信接口(Communications Interface)1020、存储器(Memory)1030和通信总线(Communications Bus)1040,其中,处理器1010,通信接口1020,存储器1030通过通信总线1040完成相互间的通信。处理器1010可以调用存储器1030中的逻辑命令,以执行上述实施例中所述的方法,例如:
接收***监测装置发送的目标中断信号;将目标中断信号发送至处理器中的第一核和第二核;控制第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;控制第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;其中,***监测装置、***内存分别与处理器连接;第一中断处理程序存储在***内存中;第二中断处理程序存储在***监测装置中。
此外,上述的存储器中的逻辑命令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供的电子设备中的处理器可以调用存储器中的逻辑指令,实现上述方法,其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本申请实施例还提供一种计算机可读的存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法。
其具体的实施方式与前述方法实施方式一致,且可以达到相同的有益效果,此处不再赘述。
本申请实施例提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述各实施例提供的方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (21)
1.一种***崩溃信息保存方法,其特征在于,包括:
接收***监测装置发送的目标中断信号;
将所述目标中断信号发送至处理器中的第一核和第二核;
控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;
控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;
其中,所述***监测装置、所述***内存分别与所述处理器连接。
2.根据权利要求1所述的***崩溃信息保存方法,其特征在于,所述第一中断处理程序存储在所述***内存中;所述第二中断处理程序存储在所述***监测装置中。
3.根据权利要求2所述的***崩溃信息保存方法,其特征在于,所述接收***监测装置发送的目标中断信号之前,所述方法还包括:
在所述处理器的运行状态为异常的情况下,停止向所述***监测装置中的看门狗模块发送喂狗信号;
其中,所述***监测装置对计算机***中各个设备的运行温度进行周期性监测;在任一设备的运行温度异常或者所述看门狗模块在监测周期内未接收到所述喂狗信号的情况下,向所述处理器发送所述目标中断信号。
4.根据权利要求2所述的***崩溃信息保存方法,其特征在于,所述将所述目标中断信号发送至处理器中的第一核和第二核,包括:
在所述第一核和所述第二核支持不可屏蔽中断的情况下,将所述处理器中的中断控制器配置为基于所述第一核的不可屏蔽中断输入接口和所述第二核的不可屏蔽中断输入接口,同时向所述第一核和所述第二核发送所述目标中断信号。
5.根据权利要求3所述的***崩溃信息保存方法,其特征在于,所述控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间之前,所述方法还包括:
在所述计算机***初始化的情况下,将所述第一中断处理程序在所述***内存中的地址设置为所述第一核的中断入口地址;
启动监测线程;所述监测线程用于对所述处理器的运行状态进行监测,在所述处理器的运行状态为正常的情况下,周期性地向所述看门狗模块发送喂狗信号。
6.根据权利要求5所述的***崩溃信息保存方法,其特征在于,所述控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间,包括:
控制所述第一核在接收到所述目标中断信号的情况下,执行所述第一中断处理程序;
获取所述处理器中各个核的调用栈信息;
读取所述***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及各个核的调用栈信息,生成所述第一***崩溃信息;
将所述第一***崩溃信息保存至所述***内存的预留存储空间。
7.根据权利要求6所述的***崩溃信息保存方法,其特征在于,所述将所述第一***崩溃信息保存至所述***内存的预留存储空间之后,所述方法还包括:
将所述***内存配置为自刷新状态;
调用重启命令对所述计算机***进行重启。
8.根据权利要求7所述的***崩溃信息保存方法,其特征在于,所述调用重启命令对所述计算机***进行重启之前,所述方法还包括:
确定所述第二中断处理程序的执行状态;
在所述第二中断处理程序的执行状态为完成的情况下,调用重启命令对所述计算机***进行重启。
9.根据权利要求3所述的***崩溃信息保存方法,其特征在于,所述控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置之前,所述方法还包括:
在所述计算机***初始化的情况下,将所述第二中断处理程序从所述***内存复制到所述***监测装置的崩溃信息存储器中;
将所述第二中断处理程序在所述崩溃信息存储器中的地址设置为所述第二核的中断入口地址。
10.根据权利要求9所述的***崩溃信息保存方法,其特征在于,所述控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置,包括:
控制所述第二核在接收到所述目标中断信号的情况下,执行所述第二中断处理程序;
获取所述***内存的运行状态信息;
读取所述***监测装置中实时保存的各个设备的运行温度信息和获取时间信息;
基于各个设备的运行温度信息和获取时间信息,以及所述***内存的运行状态信息,生成所述第二***崩溃信息;
将所述第二***崩溃信息保存至所述***监测装置的崩溃信息存储器。
11.根据权利要求10所述的***崩溃信息保存方法,其特征在于,所述基于各个设备的运行温度信息和获取时间信息,以及所述***内存的运行状态信息,生成所述第二***崩溃信息,包括:
基于各个设备的运行温度信息和获取时间信息,所述处理器的电源通断信息,以及所述***内存的运行状态信息,生成所述第二***崩溃信息。
12.根据权利要求1至11任一项所述的***崩溃信息保存方法,其特征在于,所述方法还包括:
在计算机***重启的情况下,获取所述***内存的刷新设置信息;
在所述***内存的刷新设置信息为自刷新的情况下,将所述***内存配置为***刷新;
在所述***内存中设置预留存储空间。
13.根据权利要求1至11任一项所述的***崩溃信息保存方法,其特征在于,所述方法还包括:
在计算机***重启的情况下,从所述***内存的预留存储空间中获取所述第一***崩溃信息;
从所述***监测装置中获取所述第二***崩溃信息;
显示所述第一***崩溃信息和所述第二***崩溃信息。
14.一种***崩溃信息保存装置,其特征在于,包括:
接收单元,用于接收***监测装置发送的目标中断信号;
发送单元,用于将所述目标中断信号发送至处理器中的第一核和第二核;
第一保存单元,用于控制所述第一核运行第一中断处理程序,将第一***崩溃信息保存至***内存的预留存储空间;
第二保存单元,用于控制所述第二核运行第二中断处理程序,将第二***崩溃信息保存至***监测装置;
其中,所述***监测装置、所述***内存分别与所述处理器连接。
15.一种计算机***,其特征在于,包括处理器、***监测装置和***内存;
所述处理器用于执行权利要求1至13任一项所述的***崩溃信息保存方法。
16.根据权利要求15所述的计算机***,其特征在于,所述处理器包括中断输入接口和总线接口;
所述处理器基于所述中断输入接口接收所述***监测装置发送的目标中断信号;
所述处理器基于所述总线接口读取所述***监测装置中实时保存的各个设备的运行温度信息和获取时间信息。
17.根据权利要求15所述的计算机***,其特征在于,所述***监测装置还包括温度采集模块;
所述温度采集模块,与所述计算机***中各个设备的温度传感器连接,用于采集各个设备的运行温度信息。
18.根据权利要求17所述的计算机***,其特征在于,所述***监测装置还包括计时模块;
所述计时模块用于确定各个设备的运行温度信息对应的获取时间信息。
19.根据权利要求15所述的计算机***,其特征在于,所述***监测装置还包括电源管理模块;
所述电源管理模块,用于对所述处理器和所述***内存的工作电源控制,生成电源通断信息。
20.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至13任一项所述的***崩溃信息保存方法。
21.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述的***崩溃信息保存方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410535742.8A CN118132386A (zh) | 2024-04-30 | 2024-04-30 | ***崩溃信息保存方法、装置和计算机*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410535742.8A CN118132386A (zh) | 2024-04-30 | 2024-04-30 | ***崩溃信息保存方法、装置和计算机*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118132386A true CN118132386A (zh) | 2024-06-04 |
Family
ID=91245960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410535742.8A Pending CN118132386A (zh) | 2024-04-30 | 2024-04-30 | ***崩溃信息保存方法、装置和计算机*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118132386A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389227A (zh) * | 2015-11-05 | 2016-03-09 | 上海斐讯数据通信技术有限公司 | 一种***崩溃信息远程发送方法及网络设备 |
CN108170552A (zh) * | 2018-01-05 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种抓取Dump文件的方法、装置和设备 |
CN112596980A (zh) * | 2020-12-24 | 2021-04-02 | 上海艾融软件股份有限公司 | ios性能收集方法及装置、移动终端、计算机可读存储介质 |
CN116150111A (zh) * | 2022-11-08 | 2023-05-23 | 博为科技有限公司 | 内核崩溃日志的保存方法、装置、介质以及电子设备 |
CN116627702A (zh) * | 2023-05-30 | 2023-08-22 | 杭州迪普科技股份有限公司 | 虚拟机的宕机重启方法及装置 |
-
2024
- 2024-04-30 CN CN202410535742.8A patent/CN118132386A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389227A (zh) * | 2015-11-05 | 2016-03-09 | 上海斐讯数据通信技术有限公司 | 一种***崩溃信息远程发送方法及网络设备 |
CN108170552A (zh) * | 2018-01-05 | 2018-06-15 | 武汉斗鱼网络科技有限公司 | 一种抓取Dump文件的方法、装置和设备 |
CN112596980A (zh) * | 2020-12-24 | 2021-04-02 | 上海艾融软件股份有限公司 | ios性能收集方法及装置、移动终端、计算机可读存储介质 |
CN116150111A (zh) * | 2022-11-08 | 2023-05-23 | 博为科技有限公司 | 内核崩溃日志的保存方法、装置、介质以及电子设备 |
CN116627702A (zh) * | 2023-05-30 | 2023-08-22 | 杭州迪普科技股份有限公司 | 虚拟机的宕机重启方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163623B2 (en) | Serializing machine check exceptions for predictive failure analysis | |
US7251746B2 (en) | Autonomous fail-over to hot-spare processor using SMI | |
CN109032822B (zh) | 一种死机信息的保存方法和装置 | |
CN107463459B (zh) | ***异常内存数据的保存方法、装置、***及终端设备 | |
US11526411B2 (en) | System and method for improving detection and capture of a host system catastrophic failure | |
US11068360B2 (en) | Error recovery method and apparatus based on a lockup mechanism | |
US10102045B2 (en) | Control device, control method and program | |
JP3301992B2 (ja) | 電源故障対策を備えたコンピュータシステム及びその動作方法 | |
JP2010186242A (ja) | 計算機システム | |
CN115576734B (zh) | 一种多核异构日志存储方法和*** | |
US20160179626A1 (en) | Computer system, adaptable hibernation control module and control method thereof | |
JP2004302731A (ja) | 情報処理装置および障害診断方法 | |
CN118132386A (zh) | ***崩溃信息保存方法、装置和计算机*** | |
JP2000112790A (ja) | 障害情報収集機能付きコンピュータ | |
JP2785992B2 (ja) | サーバプログラムの管理処理方式 | |
JP2015130023A (ja) | 情報記録装置、情報処理装置、情報記録方法、及び情報記録プログラム | |
CN111190632B (zh) | 一种实现服务器bmc双活的方法及装置 | |
JPH11120154A (ja) | コンピュータシステムにおけるアクセス制御装置および方法 | |
CN116483612B (zh) | 内存故障处理方法、装置、计算机设备和存储介质 | |
US11422877B2 (en) | Information processing apparatus, method, and non-transitory computer-readable storage medium for storing control program of information processing apparatus | |
CN108415788B (zh) | 用于对无响应处理电路作出响应的数据处理设备和方法 | |
JPH03138753A (ja) | マルチプロセッサシステムのブートロード装置 | |
JPS62212865A (ja) | マルチプロセツサ制御方式 | |
CN118269859A (zh) | 车机操作***的控制方法、控制器、车辆和介质 | |
CN116662117A (zh) | 基于定时器监控linux***的方法、装置及存储介质 |
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 |