1.本技术涉及计算机技术领域,特别涉及一种系统事件日志上报方法、装置、芯片、设备及存储介质。
背景技术:
2.服务器芯片包括已发展多年的以intel和amd为代表的x86架构芯片和近年来不断发展的arm架构芯片。为了兼容x86架构芯片的各项服务器管理功能,arm架构芯片需要支持与x86架构芯片相同的各项服务器管理功能,例如,运维场景中,针对重启、关机、休眠及热插拔等系统处理器电源管理事件的系统事件日志进行记录的管理功能,即系统事件日志(system event log,sel)记录功能。
3.对于sel记录功能,当软件使用操作系统的reboot或shutdown等命令对服务器进行重启或关机等系统处理器电源管理事件时,由于x86架构芯片支持系统管理模式(system management mode,smm)机制,软件可以通过x86架构芯片触发系统管理中断(system management interrupt,smi),x86架构芯片在smm下执行系统管理的中断处理函数(即smi handler)将系统处理器电源管理事件上报至基板管理控制器(baseboard management controller,bmc)进行记录。
4.然而,arm架构芯片不支持smm机制,无法将系统处理器电源管理事件上报至bmc进行记录。
技术实现要素:
5.本技术公开了一种系统事件日志上报方法、装置、芯片、设备及存储介质,可以解决arm架构芯片因不支持smm机制而无法将系统处理器电源管理事件上报至bmc进行记录的问题。
6.根据本技术实施例的第一方面,提供一种系统事件日志上报方法,应用于arm架构芯片,芯片与基板管理控制器bmc连接,芯片至少包括操作系统、第一固件及第二固件,所述方法包括:操作系统接收第一命令,并根据第一命令发送第二命令至第一固件,其中,第一命令是指示操作系统执行系统事件的命令,第二命令是操作系统指示第一固件执行系统事件的命令;第一固件接收第二命令,并根据第二命令发送第三命令至第二固件,其中,第三命令是第一固件指示第二固件将系统事件日志发送至基板管理控制器bmc的命令;第二固件接收第三命令,并根据第三命令将系统事件日志发送至基板管理控制器bmc。
7.可选地,操作系统包括操作系统电源管理模块ospm,操作系统根据第一命令发送第二命令至第一固件的步骤具体为:操作系统通过操作系统电源管理模块ospm将第一命令转换成第二命令,并将第二
命令发送至第一固件。
8.可选地,操作系统电源管理模块ospm将第二命令写入系统寄存器以发送至第一固件。
9.可选地,第一固件根据第二命令发送第三命令至第二固件的步骤具体包括:第一固件通过与第二命令对应的处理函数将第二命令转换成第三命令,并将第三命令发送至第二固件。
10.可选地,第一固件通过与第二命令对应的处理函数将第三命令写入共享内存以发送至第二固件。
11.可选地,第二固件根据第三命令将系统事件日志发送至基板管理控制器bmc的步骤包括:第二固件运行与第三命令对应的管理模式接口处理函数mmi handle将系统事件日志发送至基板管理控制器bmc。
12.根据本技术实施例的第二方面,提供一种系统事件日志上报装置,集成于arm架构芯片,芯片与基板管理控制器bmc连接,芯片至少包括操作系统、第一固件及第二固件,所述装置包括:第一接收与发送模块,用于通过操作系统接收第一命令,并根据第一命令发送第二命令至第一固件,其中,第一命令是指示操作系统执行系统事件的命令,第二命令是操作系统指示第一固件执行系统事件的命令;第二接收与发送模块,用于通过第一固件接收第二命令,并根据第二命令发送第三命令至第二固件,其中,第三命令是第一固件指示第二固件将系统事件日志发送至基板管理控制器bmc的命令;第三接收与发送模块,用于通过第二固件接收第三命令,并根据第三命令将系统事件日志发送至基板管理控制器bmc。
13.根据本技术实施例的第三方面,提供一种芯片,包括存储器和处理器,存储器存储有计算机可执行指令,处理器执行存储器存储的计算机可执行指令时实现如本技术实施例的第一方面提供的系统事件日志上报方法。
14.根据本技术实施例的第四方面,提供一种电子设备,包括基板管理控制器bmc和与其连接的如本技术实施例的第三方面提供的芯片。
15.根据本技术实施例的第五方面,提供一种计算机可读存储介质,包括计算机可执行指令,计算机可执行指令被处理器执行时实现如本技术实施例的第一方面提供的系统事件日志上报方法。
16.本技术的实施例提供的技术方案可以包括以下有益效果:由以上技术方案可知,本技术提供的系统事件日志上报方法,利用第二固件具有与bmc通信能力的特点,在操作系统调用第一固件执行系统事件时,通过第一固件指示第二固件将执行系统事件的日志发送至bmc进行记录,实现arm架构服务器芯片即使不支持smm机制,也可以将系统事件日志上报至bmc进行记录。
17.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
附图说明
18.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
19.图1为本技术一实施例提供的一种系统事件日志上报方法的流程示意图;图2为本技术另一实施例提供的一种系统事件日志上报装置的结构示意图;图3为本技术另一实施例提供的一种电子设备的结构示意图。
实施方式
20.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
21.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”也旨在包括多数形式,除非上下文清楚地表示其他含义。
22.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
23.为了使本领域技术人员更好地理解本技术实施例提供的技术方案,并使本技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本技术实施例提供的方法实施例进行描述。
24.系统事件日志(system event log,sel)可以记录操作系统(operating system,os)的各种系统事件(如重启、关机、休眠等系统处理器电源管理事件),经常应用在服务器的运维场景中。通常数据中心的服务器都需要支持sel上报功能,以便运维人员在服务器发生异常时通过通过sel分析异常。
25.然而,当前arm架构服务器芯片没有像x86架构服务器芯片那样预设一个端口以提供一个渠道给软件来触发系统管理中断(system management interrupt,smi)来进入系统管理模式(system management mode,smm),以将sel上报至基板管理控制器(baseboard management controller,bmc)进行记录,即当前arm架构服务器芯片不支持smm机制,无法将sel上报至bmc进行记录。
26.本技术提供一种系统事件日志上报方法,可以通过arm架构芯片的固件(firmware)来实现sel的上报,克服当前arm架构服务器芯片不支持smm机制,无法将sel上报至bmc进行记录的问题。
27.下文将通过实施例对本技术提供的系统事件日志上报方法进行详述:需要说明的是,在本实施例中,本技术提供的系统事件日志上报方法应用于基于arm架构的片上系统(system on chip,soc)型芯片。芯片至少包括操作系统、第一固件及第二固件。其中,操作系统处于arm架构芯片的普通世界(normal world)。normal world用于
指示非安全状态。第一固件和第二固件处于arm架构芯片的安全世界(secure world)。secure world用于指示安全状态。第一固件可以用于操作芯片的硬件资源以执行系统事件。例如,第一固件可以是arm可信固件(arm trusted firmware,atf)。第二固件被部署为可以与芯片外的bmc通信。例如,第二固件可以是安全分区(secure partition,sp),sp是被部署为可以将sel上传至bmc的固件。
28.请参见图1,图1是本技术一实施例提供的一种系统事件日志上报方法的流程示意图。如图1所示,本技术提供的系统事件日志上报方法包括下述步骤:步骤10:操作系统接收第一命令,并根据第一命令发送第二命令至第一固件。其中,第一命令是指示操作系统执行系统事件的命令,第二命令是操作系统指示第一固件执行系统事件的命令。
29.在本实施例中,当操作系统接收用户或应用发出的指示操作系统执行系统事件的命令时,操作系统通过操作系统电源管理模块(operating system power management,ospm)将第一命令转换成第二命令,并将第二命令发送至第一固件。需要说明的是,ospm通过电源状态协作接口(power state coordination interface,psci)协议与第一固件通信,ospm允许操作系统控制电源管理,其功能属于本领域公知常识,在本技术中不赘述。
30.在其他实施例中,ospm可以将第二命令写入系统寄存器以发送至第一固件,或者,通过其他方式将第二命令发送至第一固件,本技术不限定具体的发送方式。
31.具体地,操作系统通过ospm将执行系统事件的命令转换成与系统事件对应的功能标识符funtion id(即第二命令),并将功能标识符funtion id作为参数写入系统寄存器以指示第一固件执行系统事件。
32.例如,当操作系统接收到用户或应用触发的指示操作系统执行重启(reset)的命令时,操作系统触发ospm处理重启事件。ospm将执行重启(reset)的命令转换成对应的数值psci_system_reset=0x84000009(即与重启事件对应的funtion id),并将0x84000009作为参数写入系统寄存器x0以指示第一固件执行重启事件。或者,当操作系统接收到用户或应用触发的指示操作系统执行关机(off)的命令时,操作系统触发ospm处理重启事件。ospm将执行关机(off)的命令转换成对应的数值psci_system_off=0x84000008(即与关机事件对应的funtion id),并将0x84000008作为参数写入系统寄存器x0以指示第一固件执行关机事件。
33.步骤12:第一固件接收第二命令,并根据第二命令发送第三命令至第二固件。其中,第三命令是第一固件指示第二固件将系统事件日志发送至基板管理控制器bmc的命令。
34.在本实施例中,当第一固件接收到第二命令时,第一固件通过与第二命令对应的处理函数将第二命令转换成第三命令,并将第三命令发送至第二固件。
35.在其他实施例中,第一固件可以通过与第二命令对应的处理函数将第三命令写入共享内存以发送至第二固件。或者,通过其他方式将第三命令发送至第二固件,本技术不限定具体的发送方式。
36.具体地,当第一固件从系统寄存器x0获取与系统事件对应的功能标识符funtion id(即第二命令)时,第一固件运行与功能标识符funtion id对应的处理函数,通过管理模式通信协议(即mm_communication协议)将与系统事件对应的功能标识符funtion id转换为与系统事件对应的全局唯一标识符guid(即第三命令),以及将与系统事件对应的全局唯
一标识符guid作为参数写入管理模式缓存mm buffer(即共享内存)以指示第二固件将系统事件日志发送至基板管理控制器bmc。
37.步骤14:第二固件接收第三命令,并根据第三命令将系统事件日志发送至基板管理控制器bmc。
38.在本实施例中,当第二固件接收到第三命令时,第二固件运行与第三命令对应的管理模式接口处理函数mmi handle将sel发送至bmc进行记录。
39.具体地,当第二固件从管理模式缓存mm buffer获取与系统事件对应的全局唯一标识符guid时,第二固件运行与全局唯一标识符guid对应的管理模式接口处理函数mmi handle。mmi handle通过智能平台管理接口(intelligent platform management interface,ipmi)协议将sel发送至bmc进行记录。
40.本技术提供的系统事件日志上报方法利用arm架构芯片已有的资源,在操作系统调用能操作硬件资源的第一固件以执行系统事件时,通过第一固件调用能与bmc通信的第二固件以上报系统事件日志至bmc进行记录。系统事件日志上报方法的适用性强。
41.在其他实施例中,本技术提供的系统事件日志上报方法还可以包括下述步骤:步骤16:当接收到bmc返回的已记录系统事件日志的响应后,第二固件发送第三命令的响应至第一固件。
42.步骤18:当接收到第二固件返回的第三命令的响应后,第一固件继续根据第二命令执行系统事件。具体地,当接收到第二固件返回的第三命令的响应后,第一固件继续将与系统事件对应的功能标识符funtion id写入系统寄存器或者根据与系统事件对应的功能标识符funtion id配置通用输入输出(general purpose input output,gpio)以控制芯片执行系统事件。
43.本技术提供的系统事件日志上报方法,利用第二固件具有与bmc通信能力的特点,在操作系统调用第一固件执行系统事件时,通过第一固件指示第二固件将执行系统事件的日志发送至bmc进行记录,实现arm架构服务器芯片即使不支持smm机制,也可以将系统事件日志上报至bmc进行记录。
44.相应地,本技术还提供一种系统事件日志上报装置。所述装置集成于基于arm架构的soc型芯片。请参见图2,图2是本技术另一实施例提供的一种系统事件日志上报装置的结构示意图。如图2所示,本技术提供的系统事件日志上报装置200包括:第一接收与发送模块210、第二接收与发送模块220及第三接收与发送模块230。第一接收与发送模块210包括操作系统212。第二接收与发送模块220包括第一固件222,其中,第一固件222可以用于操作芯片的硬件资源以执行系统事件,以及与第二固件230通信,例如,第一固件222可以是atf。第三接收与发送模块230包括第二固件232,其中,第二固件232可以分别与第一固件222和bmc通信,例如,第二固件232可以是sp。
45.在本实施例中,第一接收与发送模块210,用于通过操作系统212接收第一命令,并根据第一命令发送第二命令至第一固件222。其中,第一命令是指示操作系统212执行系统事件的命令,第二命令是操作系统212指示第一固件222执行系统事件的命令。操作系统212通过操作系统电源管理模块ospm将第一命令转换成第二命令,并将第二命令发送至第一固件222。
46.在其他实施例中,操作系统电源管理模块ospm将第二命令写入系统寄存器以发送
至第一固件222。或者,通过其他方式将第二命令发送至第一固件222,本技术不限定具体的发送方式。
47.在本实施例中,第二接收与发送模块220,用于通过第一固件222接收第二命令,并根据第二命令发送第三命令至第二固件232,其中,第三命令是第一固件222指示第二固件232将系统事件日志发送至基板管理控制器bmc的命令。第一固件222通过与第二命令对应的处理函数将第二命令转换成第三命令,并将第三命令发送至第二固件232。
48.在其他实施例中,第一固件222可以通过与第二命令对应的处理函数将第三命令写入共享内存以发送至第二固件232。或者,通过其他方式将第三命令发送至第二固件232,本技术不限定具体的发送方式。
49.在本实施例中,第三接收与发送模块230,用于通过第二固件232接收第三命令,并根据第三命令将系统事件日志发送至基板管理控制器bmc。其中,第二固件232运行与第三命令对应的管理模式接口处理函数mmi handle将系统事件日志发送至基板管理控制器bmc。
50.在其他实施例中,第三接收与发送模块230还用于在接收到bmc返回的已记录系统事件日志的响应后,通过第二固件232发送第三命令的响应至第一固件222。第二接收与发送模块还用于在接收到第二固件232返回的第三命令的响应后,通过第一固件222继续根据第二命令执行系统事件。
51.需要说明的是,本技术提供的系统事件日志上报装置与本技术提供的系统事件日志上报方法对应,系统事件日志上报装置的实施例中描述的内容可以参考系统事件日志上报方法的实施例中描述的内容。
52.本技术提供的系统事件日志上报装置,利用第二固件具有与bmc通信能力的特点,在操作系统调用第一固件执行系统事件时,通过第一固件指示第二固件将执行系统事件的日志发送至bmc进行记录,实现arm架构服务器芯片即使不支持smm机制,也可以将系统事件日志上报至bmc进行记录。
53.相应地,本技术还提供一种芯片。芯片是基于arm架构的soc型芯片,包括存储器和处理器。存储器存储有计算机可执行指令。处理器执行存储器存储的计算机可执行指令时实现如本技术一实施例提供的一种系统事件日志上报方法。可选地,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是ram(radom access memory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。其中,芯片可以是数据处理器(data processing unit,dpu)芯片、中央处理器(central processing unit,cpu)芯片及图形处理器(graphic processing unit,gpu)芯片。
54.对应地,本技术还提供一种电子设备。请参见图3,图3是本技术另一实施例提供的一种电子设备的结构示意图。电子设备1可以包括基板管理控制器bmc30和本技术提供的芯片20。芯片20和bmc30连接。芯片20包括本技术实施例提供的系统事件日志上报装置200。可选地,所述电子设备1可以是数据中心的服务器或服务器集群。
55.对应地,本技术还提供一种计算机可读存储介质,包括计算机可执行指令,计算机可执行指令被处理器执行时实现如本技术实施例提供的系统事件日志上报方法。
56.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。