CN115617479A - Bios日志存储方法及计算设备 - Google Patents
Bios日志存储方法及计算设备 Download PDFInfo
- Publication number
- CN115617479A CN115617479A CN202211289511.0A CN202211289511A CN115617479A CN 115617479 A CN115617479 A CN 115617479A CN 202211289511 A CN202211289511 A CN 202211289511A CN 115617479 A CN115617479 A CN 115617479A
- Authority
- CN
- China
- Prior art keywords
- data
- bios
- cache
- memory
- log
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 230000006870 function Effects 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 29
- 238000007639 printing Methods 0.000 claims description 24
- 230000003139 buffering effect Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 38
- 238000012423 maintenance Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种BIOS日志存储方法及计算设备,该方法包括:在BIOS启动时,将第一数据写入缓存空间,该第一数据为在内存的初始化完成之前的BIOS日志;该缓存空间为CPU分配的CPU高速缓存,用于缓存该第一数据;在内存的初始化完成后,将该第一数据从CPU高速缓存迁移至内存;再将第二数据写入内存,该第二数据为内存的初始化完成之后的BIOS日志,从而得到完整的BIOS日志。通过以内存初始化完成的时刻作为分界将BIOS日志数据划分为第一数据和第二数据,并在CPU高速缓存中设置用于缓存第一数据的缓存空间,能够获取到包括内存初始化完成前的BIOS日志在内的、尽可能完整的BIOS日志并存储,从而提高BIOS问题定位的准确率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种BIOS日志存储方法及计算设备。
背景技术
在基本输入/输出系统(basic input/output system,BIOS)引导计算设备开机过程中,BIOS会对计算设备中的硬件设备进行扫描检测、设备初始化、资源分配与适配。若在引导过程中出现引导失败系统宕机、或者其他故障现象,往往需要开启BIOS代码中的启动串口打印函数的控制开关,保存选项机器重启后,再通过串口线或者通过基板管理控制器(baseboard management controller,BMC)收集串口打印函数输出的BIOS日志数据,最后根据该BIOS日志数据对BIOS问题进行分析定位。
由于串口是一种低速访问设备,BIOS在通过串口输出日志数据时需要消耗大量时间,从而加长了系统启动时间,影响用户对产品的使用体验。为了解决该问题,相关技术通过关闭串口打印函数,在BIOS启动过程中将日志数据写入内存、带外管理系统或其他存储设备中,以达到自动化采集日志数据的效果,使得BIOS出现故障时用户可以直接获取对应的日志数据进行BIOS问题定位。
然而,计算设备中的硬件设备需要完成初始化后才能行使相应功能,上述存储方法获取的BIOS日志数据不完整。
发明内容
本申请提供一种BIOS日志存储方法及计算设备,能够在启动BIOS的过程中获取更完整的BIOS日志数据,从而更准确地定位BIOS问题。
第一方面,本申请提供了一种BIOS日志存储方法,应用于计算设备,该方法包括:
在BIOS启动时,将第一数据写入缓存空间,该第一数据为在内存的初始化完成之前,该BIOS的启动过程中生成的BIOS日志;该缓存空间为中央处理器CPU分配的CPU高速缓存,用于缓存该第一数据;在该内存的初始化完成后,将该第一数据从该CPU高速缓存迁移至该内存;将第二数据写入该内存,该第二数据为该内存的初始化完成之后的该BIOS日志。
本申请中,通过以内存初始化完成的时刻作为分界将BIOS日志数据划分为第一数据和第二数据,并在CPU高速缓存中设置用于缓存第一数据的缓存空间,能够获取到包括内存初始化完成前的BIOS日志在内的、尽可能完整的BIOS日志并存储,从而提高BIOS问题定位的准确率。
在一种可能的实现中,在该将第一数据写入缓存空间之前,该方法还包括:调整串口打印函数的函数值为用于关闭该串口打印函数输出的第一预设值或用于指示输出第三数据的第二预设值,该第三数据为该BIOS日志中能够反映BIOS问题的数据,该第三数据的数据量小于对应该BIOS日志。
本申请中,通过设置串口打印函数的函数值以控制BIOS启动过程中串口的输出数据量,可以减少BIOS的启动时间;结合将第一数据写入缓存空间的方案,达到在快速启动BIOS的同时获取到完整的BIOS日志的目的。另外,通过详略结合的方式输出BIOS日志,能够使得BIOS日志的查看方式更灵活,用户或维护人员可以通过第二预设值控制下的输出的简略版BIOS日志定位异常或发生故障的硬件,再从内存中的详细BIOS日志中快速找到对应日志记录确定对应的BIOS问题。
在一种可能的实现中,该第一数据包括多条日志记录;在该将第一数据写入缓存空间之前,该方法还包括:当该缓存空间的可用空间不足以缓存待写入的该日志记录时,将该缓存空间中的该日志记录压缩为数据包;将该数据包缓存于除该缓存空间外的该CPU高速缓存;清空该缓存空间;该将第一数据写入缓存空间包括:将该待写入的日志记录写入缓存空间。
本申请中,通过在缓存空间不足以缓存待写入的日志记录时,将缓存空间中已有的日志记录压缩并迁移到其他的CPU高速缓存中,能够提高CPU高速缓存的利用率。
在一种可能的实现中,该数据包的标识信息缓存于该CPU高速缓存中的标识队列,该标识信息用于标识该数据包在该CPU高速缓存中的位置;在该将该第一数据从该CPU高速缓存迁移至该内存之前,该方法还包括:根据该标识队列中的该标识信息获取该数据包;拼接该数据包中的该日志记录和该缓存空间中的该日志记录,得到该第一数据。
在一种可能的实现中,该数据包的标识信息缓存于该CPU高速缓存中的标识队列,该标识信息用于标识该数据包在该CPU高速缓存中的位置;该将该第一数据从该CPU高速缓存迁移至该内存,包括:根据该标识队列中的该标识信息获取该数据包;将该数据包和该缓存空间中的该日志记录迁移至该内存;拼接该数据包中的该日志记录和该内存中该第一数据对应的日志记录,得到该第一数据。
本申请中,通过标识队列中的标识信息定位数据包,并以拼接的方式还原第一数据,能够减少数据包的丢失和乱序,得到准确、完整的第一数据。
在一种可能的实现中,该CPU高速缓存包括一级缓存和二级缓存;该将第一数据写入缓存空间,包括:将该第一数据写入该一级缓存中的该缓存空间;该将该数据包缓存于除该缓存空间外的该CPU高速缓存,包括:将该数据包缓存于该二级缓存。
本申请中,在第一数据较大时,通过将日志记录压缩后缓存于二级缓存中,能够减少CPU的缓存压力,提高CPU的工作效率。
在一种可能的实现中,在该将第二数据写入该内存之后,该方法还包括:在BIOS启动完成后,向带外管理装置发送该第一数据和该第二数据。
本申请中,通过将第一数据和第二数据上传至带外管理装置,带外管理装置可以根据第一数据和第二数据生成便于用户或维护人员查看的文件,提高维护效率。
在一种可能的实现中,该带外管理装置为基板管理控制器BMC。
本申请第二方面提供一种计算设备,该计算设备包括处理器、BIOS芯片和内存,该处理器包括缓存空间,该BIOS芯片中存储有用于启动BIOS的BIOS程序;
该处理器用于在该处理器执行该BIOS程序时,将第一数据写入该缓存空间,该第一数据为在该内存的初始化完成之前,该BIOS的启动过程中生成的BIOS日志;该缓存空间为该处理器分配的CPU高速缓存,用于缓存该第一数据;
该处理器还用于在该内存的初始化完成后,将该第一数据从该CPU高速缓存迁移至该内存;
该处理器还用于将第二数据写入该内存,该第二数据为该内存的初始化完成之后的该BIOS日志。
在一种可能的实现中,该计算设备还包括带外管理装置;该处理器还用于在该BIOS启动完成后,向该带外管理装置发送该第一数据和该第二数据。
第三方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算设备的至少一个处理器执行该计算机执行指令时,计算设备执行第一方面所提供的方法。
第四方面,本申请提供了一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;计算设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得计算设备执行第一方面所提供的方法。
上述第二方面至第四方面提供的方案,用于实现或配合实现上述第一方面提供的方法,因此可以与第一方面达到相同或相应的有益效果,此处不再进行赘述。
附图说明
图1为本申请实施例提供的一种计算设备100的系统框架图;
图2为本申请实施例提供的一种BIOS日志存储方法的流程示意图;
图3为本申请实施例提供的一种BIOS启动后的处理流程示意图;
图4为本申请实施例提供的另一BIOS日志存储方法的流程示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
BIOS日志是指BIOS在启动过程中生成的工作日志。BIOS日志是定位BIOS问题所必要的数据材料,其中包含了在BIOS启动过程中,计算设备中各个硬件设备的检测记录和初始化记录,以及BIOS引导加载操作系统(operating system,OS)的记录。当BIOS启动过程中发生故障时,可以通过阅读分析该启动过程对应的BIOS日志定位BIOS问题。
传统的方案中,通过串口输出的方式,在BIOS启动过程中实时向外输出BIOS日志,以使得用户、维护人员或相应的软件工具能够分析该BIOS日志以定位BIOS问题。然而,除了测试场景之外的大部分应用场景中,出于对系统安全和启动速度的考虑,BIOS启动时将不输出日志数据或输出少量的日志数据。而在对BIOS的启动参数进行更改,例如打开串口打印函数的控制开关或改变串口打印函数的打印等级,再重启BIOS之后,计算设备中发生故障的环境将被破坏,从而影响BIOS问题定位的准确性。
因此,在大部分应用场景中,BIOS启动发生故障时无法获取到能够准确定位BIOS问题的BIOS日志。基于此,业界开始研究自动化采集并存储BIOS日志的方法。
目前的BIOS日志存储过程:通过设置具有追踪或映射功能的函数,在BIOS启动时,将BIOS生成的BIOS日志数据写入计算设备的内存中进行存储。
但是,由于内存需要完成初始化后才为可用状态,目前的BIOS日志存储方法最终得到的BIOS日志将缺少内存初始化完成之前的BIOS日志数据。
为了解决上述问题,本申请实施例提供一种BIOS日志存储方法,该方法能够在启动BIOS的过程中获取更完整的BIOS日志数据,从而更准确地定位BIOS问题。
本申请实施例提供的BIOS日志存储方法可以应用于图1所示的计算设备100,该计算设备100可以为服务器、存储控制器、交换机、路由器、基站控制器、计算卸载卡、计算加速卡、计算机、笔记本电脑等设备,本申请实施例对于图1所示的计算设备的具体形式并不进行限定。如图1所示,该计算设备100包括处理器110、BIOS芯片120、内存130及管理装置140。
处理器110为计算设备100的中央处理器(central processing unit,CPU),用于执行BIOS芯片120或内存130中的指令,以实现BIOS启动和引导OS启动。其中,处理器110可以执行BIOS芯片120中的BIOS程序,以启动BIOS。
具体地,在计算设备100上电后,计算设备100的主控芯片组可以向处理器110发送重置信号;处理器110根据该重置信号恢复初始状态;在该主控芯片组检测到处理器110的供电稳定后,撤去该重置信号,然后处理器110执行该BIOS程序,以启动BIOS。
其中,该主控芯片组可以是计算设备100的南北桥芯片。
处理器110还用于在执行BIOS程序时,将第一数据写入缓存空间中,该缓存空间为处理器110分配的用于缓存该第一数据的CPU高速缓存。其中,该第一数据是指在内存130的初始化完成之前,BIOS启动过程中生成的BIOS日志。
处理器110还用于在内存130的初始化完成之后,将第二数据写入内存130中,并将该CPU高速缓存中的第一数据迁移至内存130。其中,该第二数据是指在内存130的初始化完成之后的BIOS日志。
BIOS芯片120为存储有BIOS程序的只读存储器(read-only memory,ROM)芯片。
内存130可以为计算系统100的运行内存,用于存储BIOS日志,内存130中存储的该BIOS日志可以包括第一数据和第二数据。计算设备100中的内存130可以为一个或多个,内存130具体可以为动态随机存取存储器(dynamic random access memory,DRAM)。
在处理器110完成对计算设备100的各个硬件设备的检测和初始化后,处理器110还用于读取硬盘或磁盘中的引导程序或引导代码,执行引导OS启动的指令。此时,处理器110的控制权移交给该引导程序或该引导代码,以完成OS启动。
在处理器110的控制权移交给该引导程序或该引导代码后,此时BIOS已启动完成,内存130中存储了整个BIOS启动过程中生成的BIOS日志,处理器110还可用于将内存130中的BIOS日志,也即第一数据和第二数据,发送至管理装置140。
管理装置140可以为非业务模块的管理单元,该管理装置140也可以称为带外管理装置140。例如,管理装置140可以通过专用的数据通道对计算设备100进行远程维护和管理;管理装置140是完全独立于计算设备100的操作系统之外的,可以通过计算设备100的带外管理接口与处理器120中进行通信。
具体地,管理装置140可以为计算设备100运行状态的管理单元、内置于处理器120的管理单元、处理器外管理芯片中的管理系统、基板管理控制器(baseboard managementcontroller,BMC)、系统管理模块(system management module,SMM)、内置于业务单元中的管理单元、或操作系统中的设备管理系统等管理单元中的一个或多个的组合。本申请实施例对于管理装置140的具体形式并不进行限定,在此仅是示例性说明。
需要说明的是,不同计算设备对BMC有不同的称呼,例如一些公司称为BMC,一些公司称为integrated lights-out(iLO),另一些公司称为integrated dell remote accesscontroller(iDRAC)。不论是叫BMC,还是叫iLO或iDRAC,都可以理解为是本发明实施例中的BMC。
管理装置140可以用于将BIOS日志存储为便于用户或维护人员查看的文件,无需采用其他工具进行数据的转化。
可选的,处理器还用于在将第一数据写入缓存空间之前,调整串口打印函数的函数值为用于关闭该串口打印函数输出的第一预设值或用于指示输出第三数据的第二预设值,该第三数据为该BIOS日志中能够反映BIOS问题的数据,该第三数据的数据量小于对应的BIOS日志。
可以理解的是,第一数据包括多条日志记录。可选的,当该缓存空间的可用空间不足以缓存待写入的该日志记录时,处理器还用于将该缓存空间中的该日志记录压缩为数据包;再将该数据包缓存于除该缓存空间外的该CPU高速缓存;然后清空该缓存空间;最后将该待写入的日志记录写入缓存空间。
可选的,该数据包的标识信息缓存于该CPU高速缓存中的标识队列,该标识信息用于标识该数据包在该CPU高速缓存中的位置;处理器具体用于根据该标识队列中的该标识信息获取该数据包;拼接该数据包中的该日志记录和该缓存空间中的该日志记录,得到该第一数据。
可选的,该数据包的标识信息缓存于该CPU高速缓存中的标识队列,该标识信息用于标识该数据包在该CPU高速缓存中的位置;处理器具体用于根据该标识队列中的该标识信息获取该数据包;将该数据包和该缓存空间中的该日志记录迁移至该内存;拼接该数据包中的该日志记录和该内存中该第一数据对应的日志记录,得到该第一数据。
可选的,该CPU高速缓存包括一级缓存和二级缓存;处理器具体用于将该第一数据写入该一级缓存中的该缓存空间;将该数据包缓存于该二级缓存。
需要说明的是,在具体实现中,计算设备100可以是任何包括图1中类似结构的设备。本申请实施例不限定计算设备100的具体组成结构。此外,图1中示出的组成结构并不构成对计算设备100的限定,除图1所示的部件之外,该计算系统100可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
基于图1所示的计算设备,请参阅图2,图2为本申请实施例提供的一种BIOS日志存储方法的流程示意图,该方法通过图1所示的计算设备执行,该方法包括步骤201至203。
201、在BIOS启动时,CPU将第一数据写入缓存空间。
其中,第一数据为在完成对内存的初始化之前,BIOS启动过程中生成的BIOS日志;缓存空间为CPU分配的CPU高速缓存(CPU cache),用于缓存第一数据。
其中,CPU可以在执行步骤201前分配CPU高速缓存中的一部分缓存分配作为该缓存空间。
可以理解的是,BIOS程序包括多条程序指令;在BIOS启动时,CPU每执行一条程序指令,则生成一条日志记录,并将该条日志记录写入该缓存空间。
在一种可能的实现中,在CPU将第一数据写入缓存空间之前,CPU可以将串口打印函数的函数值调整为用于关闭该串口打印函数输出的第一预设值或用于指示输出第三数据的第二预设值。
其中,该第三数据为BIOS日志数据中能够反映BIOS问题的数据,该第三数据的数据量小于对应的BIOS日志。例如,BIOS日志数据中包括硬件名称、硬件编号、是否故障、故障代码、故障的详细信息;对应的第三数据可以设置为包括硬件编号、是否故障以及故障代码。
其中,串口打印函数是指控制串口将BIOS日志打印输出的函数。可以理解的是,本实施例对该串口打印函数的具体名称不作限定,例如可以为Debug Mode开关中的调试函数,该调试函数可以调用串口服务打印CPU执行BIOS程序所生成的BIOS日志数据。
其中,该串口打印函数的函数值用于控制串口服务的输出内容。
可以理解的是,本实施例对该函数值的具体形式同样不作限定,例如该函数值可以是上述调试函数中的函数值,当该函数值为第一预设值,例如0时,则表示打印功能关闭,调试函数直接返回,不输出任何日志信息;若该函数值为第二预设值,例如1时,则表示开启日志信息的精简打印功能,调试函数可以输出BIOS日志的部分数据,也即是第三数据;若该函数值为第三预设值,例如2时,则表示开启日志信息的完整打印功能,调试函数可以输出BIOS日志的所有数据。
可以参阅图3,图3为本申请实施例提供的一种BIOS启动后的处理流程示意图。如图3所示,本实施例中以内存初始化完成的时刻为分界,在内存初始化完成前,CPU向缓存空间中写入CPU执行BIOS程序产生的完整、详细的BIOS日志,也即第一数据;在内存初始化完成时,将缓存空间中的BIOS日志迁移至内存;在内存初始化完成后,CPU向内存写入后续产生的完整、详细的BIOS日志,也即第二数据。而在CPU向缓存空间或内存写入BIOS日志的同时,CPU还通过在第一预设值或第二预设值控制下的串口控制函数输出BIOS日志。
通过设置串口打印函数的函数值以控制BIOS启动过程中串口的输出数据量,可以减少BIOS的启动时间;结合将第一数据写入缓存空间的方案,达到在快速启动BIOS的同时获取到完整的BIOS日志的目的。
另外,通过详略结合的方式输出BIOS日志,能够使得BIOS日志的查看方式更灵活,用户或维护人员可以通过第二预设值控制下的输出的简略版BIOS日志定位异常或发生故障的硬件,再从内存中的详细BIOS日志中快速找到对应日志记录确定对应的BIOS问题。
具体地,CPU可以在生成BIOS日志时,将BIOS日志的输出重定向至该缓存空间,以向该缓存空间写入BIOS日志。
在一种可能的实现中,每次CPU向该缓存空间写入日志记录时,判断一次该缓存空间的可用空间是否足以存储该待写入的日志记录。
若足够,则写入该待写入的日志记录。
若不足,则将当前该缓存空间中的日志记录压缩为数据包,并将该数据包缓存至除了该缓存空间之外的CPU高速缓存中;在清空该缓存空间后,将该待写入的日志记录写入该缓存空间。
其中,在将数据包迁移后,CPU可以根据该数据包迁移后的缓存位置生成标识信息,并将该标识信息存储于CPU高速缓存的标识队列中。具体地,该标识信息可以是全局唯一标识符(globally unique identifier,GUID)。
其中,该标识队列可以为在CPU高速缓存中预设的队列,也可以为CPU在生成标识信息后生成的临时队列,用于缓存该标识信息。
其中,该CPU高速缓存可以包括一级缓存和二级缓存。在一种可能的实现中,该缓存空间为CPU分配的一级缓存;当该缓存空间中的日志记录被压缩为数据包时,该数据包被缓存至二级缓存中。
可以理解的是,CPU也可以不压缩该日志记录,直接将该日志记录作为数据包缓存于除了该缓存空间之外的CPU高速缓存中。
在第一数据较大时,通过将对应的日志记录压缩后缓存于二级缓存中,能够减少CPU的缓存压力,提高CPU的工作效率。
202、在内存的初始化完成后,CPU将该第一数据从CPU高速缓存迁移至内存。
在CPU执行BIOS程序,启动BIOS的过程中,CPU将会对计算设备中的各个硬件进行初始化,使得各个硬件能够被纳入统一的系统中行使对应的功能。该过程中包括对内存的初始化,通过初始化内存,使得CPU可以向内存写入数据或从内存读取数据。
具体地,CPU可以先初始化内核中的分页机制和页表信息,再初始化内存中的基础数据结构(节点pg_data,内存域zone,页page),最后将每个节点中的内存域zone链入到zonelist中,以使得内存节点迁入内存管理器便于进行内存的分配管理。此时,CPU可以向内存写入数据或从内存读取数据,也即在CPU将内存节点的内存域zone链入到zonelist时,可以确定内存初始化完成。
在CPU执行BIOS程序对内存完成初始化后,CPU可以执行步骤202和步骤203。可以理解的是,步骤202和步骤203可以按顺序执行,也可以同时执行;按顺序执行时,可以先执行步骤202,也可以先执行步骤203,本申请实施例对步骤202和步骤203的执行顺序不作具体限定。
在一种可能的实现中,CPU可以根据标识队列中的标识信息从CPU高速缓存中获取对应的数据包;将该数据包中的日志记录和缓存空间的日志记录进行拼接,得到该第一数据;最后将该第一数据从CPU高速缓存迁移至内存。
其中,CPU可以将该数据包解压得到该数据包中的日志记录,并根据日志记录的生成时间拼接得到该第一数据。
其中,该标识队列为先进先出队列。可以理解的是,CPU可以根据标识队列中数据包的入队或出队的先后顺序进行拼接,得到顺序无误的第一数据。
在另一可能的实现中,CPU可以根据标识队列中的标识信息从CPU高速缓存中获取对应的数据包;将该数据包和缓存空间的日志记录迁移至内存;最后在内存中拼接该数据包中的日志记录和内存中的第一数据对应的日志记录,得到第一数据。
203、CPU将第二数据写入内存。
其中,第二数据为完成对内存的初始化之后,BIOS启动过程中生成的BIOS日志。
在一种可能的实现中,CPU执行步骤202后,CPU可以通过追加重定向的方式,在内存中的存储第一数据的文件中追加写入第二数据。
本申请实施例中,通过以内存初始化完成的时刻作为分界将BIOS日志数据划分为第一数据和第二数据,并在CPU高速缓存中设置用于缓存第一数据的缓存空间,能够在BIOS启动的过程中获取到包括内存初始化完成前的BIOS日志在内的、尽可能完整的BIOS日志并存储,从而提高BIOS问题定位的准确率。
可以参阅图4,图4为本申请实施例提供的另一BIOS日志存储方法的流程示意图,包括步骤401至406。
401、在BIOS启动时,分配CPU高速缓存中的部分缓存作为缓存空间。
在CPU执行BIOS程序生成第一条BIOS日志的日志记录的时间点,或在BIOS启动过程中,该时间点之前,CPU可以分配CPU高速缓存中预设大小的空间作为该缓存空间。
在CPU执行BIOS程序生成相应的日志记录后,执行步骤402。
402、判断该缓存空间的可用空间是否足以缓存待写入的日志记录;若否,则执行步骤403;若是,则执行步骤404。
403、将该缓存空间中的数据压缩为数据包,并将该数据包迁移至CPU高速缓存中的其他缓存区域;清除该缓存空间中的数据内容,执行步骤404。
404、将该日志记录写入缓存空间。
405、在内存初始化完成后,将CPU高速缓存中的第一数据迁移到内存中;将第二数据写入内存。
其中,本实施例中的步骤401至405与前述图2所示实施例中的步骤201至203中的技术内容类似,具体可以参照相关描述,此处不再赘述。
406、BIOS启动完成后,向带外管理装置发送该内存中的第一数据和第二数据。
可以理解的是,当BIOS启动完成,且CPU将BIOS启动过程中产生的第一数据和第二数据均写入内存后,CPU可以进一步将第一数据和第二数据上传到带外管理装置,以使得带外管理装置根据第一数据和第二数据生成便于用户或维护人员查看的文件,BIOS日志能够被更好的利用。
其中,当CPU开始执行引导程序中的指令时,CPU的控制权移交给该引导程序,此时可以视为BIOS启动完成。
具体地,当BIOS的启动模式为传统(legacy)模式时,CPU可以读取硬盘或磁盘中的主引导记录(master boot record,MBR),并执行MBR中的指令;当BIOS的启动模式为统一的可扩展固定接口(unified extensible firmware interface,UEFI)模式时,CPU可以执行UEFI的引导程序中的指令。
其中,该带外管理装置可以为BMC。
本申请实施例中,通过将第一数据和第二数据上传至带外管理装置,带外管理装置可以根据第一数据和第二数据生成便于用户或维护人员查看的文件,提高维护效率。
在本申请的另一实施例中,还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当计算设备的至少一个处理器执行该计算机执行指令时,计算设备执行上述图2至图4部分实施例所描述的BIOS日志存储方法。
在本申请的另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括计算机执行指令,该计算机执行指令存储在计算机可读存储介质中;计算设备的至少一个处理器可以从计算机可读存储介质读取该计算机执行指令,至少一个处理器执行该计算机执行指令使得计算设备执行上述图2至图4部分实施例所描述的BIOS日志存储方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请实施例所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种BIOS日志存储方法,其特征在于,所述方法包括:
在基本输入输出系统BIOS启动时,将第一数据写入缓存空间,所述第一数据为在内存的初始化完成之前,所述BIOS的启动过程中生成的BIOS日志;所述缓存空间为中央处理器CPU分配的CPU高速缓存,用于缓存所述第一数据;
在所述内存的初始化完成后,将所述第一数据从所述CPU高速缓存迁移至所述内存;
将第二数据写入所述内存,所述第二数据为所述内存的初始化完成之后的所述BIOS日志。
2.根据权利要求1所述的方法,其特征在于,在所述将第一数据写入缓存空间之前,所述方法还包括:
调整串口打印函数的函数值为用于关闭所述串口打印函数输出的第一预设值或用于指示输出第三数据的第二预设值,所述第三数据为所述BIOS日志中能够反映BIOS问题的数据,所述第三数据的数据量小于对应所述BIOS日志。
3.根据权利要求1或2所述的方法,其特征在于,所述第一数据包括多条日志记录;在所述将第一数据写入缓存空间之前,所述方法还包括:
当所述缓存空间的可用空间不足以缓存待写入的所述日志记录时,将所述缓存空间中的所述日志记录压缩为数据包;
将所述数据包缓存于除所述缓存空间外的所述CPU高速缓存;
清空所述缓存空间;
所述将第一数据写入缓存空间包括:
将所述待写入的日志记录写入所述缓存空间。
4.根据权利要求3所述的方法,其特征在于,所述数据包的标识信息缓存于所述CPU高速缓存中的标识队列,所述标识信息用于标识所述数据包在所述CPU高速缓存中的位置;在所述将所述第一数据从所述CPU高速缓存迁移至所述内存之前,所述方法还包括:
根据所述标识队列中的所述标识信息获取所述数据包;
拼接所述数据包中的所述日志记录和所述缓存空间中的所述日志记录,得到所述第一数据。
5.根据权利要求3所述的方法,其特征在于,所述数据包的标识信息缓存于所述CPU高速缓存中的标识队列,所述标识信息用于标识所述数据包在所述CPU高速缓存中的位置;所述将所述第一数据从所述CPU高速缓存迁移至所述内存,包括:
根据所述标识队列中的所述标识信息获取所述数据包;
将所述数据包和所述缓存空间中的所述日志记录迁移至所述内存;
拼接所述数据包中的所述日志记录和所述内存中所述第一数据对应的日志记录,得到所述第一数据。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述CPU高速缓存包括一级缓存和二级缓存;所述将第一数据写入缓存空间,包括:
将所述第一数据写入所述一级缓存中的所述缓存空间;
所述将所述数据包缓存于除所述缓存空间外的所述CPU高速缓存,包括:
将所述数据包缓存于所述二级缓存。
7.根据权利要求1至6中任一项所述的方法,其特征在于,在所述将第二数据写入所述内存之后,所述方法还包括:
在所述BIOS的启动完成后,向带外管理装置发送所述第一数据和所述第二数据。
8.根据权利要求7所述的方法,其特征在于,所述带外管理装置为基板管理控制器BMC。
9.一种计算设备,其特征在于,所述计算设备包括处理器、BIOS芯片和内存,所述处理器包括缓存空间,所述BIOS芯片中存储有用于启动BIOS的BIOS程序;
所述处理器用于在所述处理器执行所述BIOS程序时,将第一数据写入所述缓存空间,所述第一数据为在所述内存的初始化完成之前,所述BIOS的启动过程中生成的BIOS日志;所述缓存空间为所述处理器分配的CPU高速缓存,用于缓存所述第一数据;
所述处理器还用于在所述内存的初始化完成后,将所述第一数据从所述CPU高速缓存迁移至所述内存;
所述处理器还用于将第二数据写入所述内存,所述第二数据为所述内存的初始化完成之后的所述BIOS日志。
10.根据权利要求9所述的计算设备,其特征在于,所述计算设备还包括带外管理装置;
所述处理器还用于在所述BIOS启动完成后,向所述带外管理装置发送所述第一数据和所述第二数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211289511.0A CN115617479A (zh) | 2022-10-20 | 2022-10-20 | Bios日志存储方法及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211289511.0A CN115617479A (zh) | 2022-10-20 | 2022-10-20 | Bios日志存储方法及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115617479A true CN115617479A (zh) | 2023-01-17 |
Family
ID=84864481
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211289511.0A Pending CN115617479A (zh) | 2022-10-20 | 2022-10-20 | Bios日志存储方法及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617479A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112520A (zh) * | 2023-04-10 | 2023-11-24 | 荣耀终端有限公司 | 一种日志处理方法和电子设备 |
-
2022
- 2022-10-20 CN CN202211289511.0A patent/CN115617479A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112520A (zh) * | 2023-04-10 | 2023-11-24 | 荣耀终端有限公司 | 一种日志处理方法和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230138736A1 (en) | Cluster file system-based data backup method and apparatus, and readable storage medium | |
US10296423B2 (en) | System and method for live virtual incremental restoring of data from cloud storage | |
US9811369B2 (en) | Method and system for physical computer system virtualization | |
US9519496B2 (en) | Detecting and preventing virtual disk storage linkage faults | |
KR101903818B1 (ko) | 가상 디스크 스토리지 기술 | |
EP3227783B1 (en) | Live rollback for a computing environment | |
US7506203B2 (en) | Extracting log and trace buffers in the event of system crashes | |
TWI410864B (zh) | 在一處理環境中控制指令執行 | |
CN102436410B (zh) | 虚拟机检查点的在线保存方法 | |
US20070226436A1 (en) | File system based offline disk management | |
CN104518917A (zh) | 一种服务器自动巡检方法 | |
CN114706661B (zh) | 虚拟机的容灾备份方法、系统、计算机设备及存储介质 | |
CN112231005B (zh) | 一种基于uboot管理fpga版本的方法 | |
CN110968392B (zh) | 一种升级虚拟化模拟器的方法和装置 | |
CN111679889B (zh) | 一种虚拟机的转换迁移方法和系统 | |
CN111444119B (zh) | 一种基于内核参数的飞腾平台非易失内存注册方法 | |
CN115617479A (zh) | Bios日志存储方法及计算设备 | |
CN115407943A (zh) | 一种内存转储文件生成方法、装置、设备及可读存储介质 | |
CN117370107A (zh) | 一种bios日志收集方法及计算设备 | |
CN116991546B (zh) | 一种跨平台存储热迁移方法及装置 | |
CN113076233B (zh) | 一种io性能检测方法、装置、设备及存储介质 | |
Clerc et al. | Os streaming deployment | |
CN114138424B (zh) | 一种虚拟机内存快照生成方法、装置及电子设备 | |
CN114691223B (zh) | 一种通过网络传输bios日志的方法及装置 | |
CN116382991A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20231109 Address after: 10/F, Chuangzhi Tiandi Building, Dongshigeng Street, Zhongdao East Road, Longzihu Wisdom Island, Zhengdong New District, Zhengzhou City, Henan Province, 450000 Applicant after: Henan Kunlun Technology Co.,Ltd. Address before: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Applicant before: Super fusion Digital Technology Co.,Ltd. |