CN116991452A - 在OpenPower架构热更新OPAL功能固件代码的方法及装置 - Google Patents
在OpenPower架构热更新OPAL功能固件代码的方法及装置 Download PDFInfo
- Publication number
- CN116991452A CN116991452A CN202310928491.5A CN202310928491A CN116991452A CN 116991452 A CN116991452 A CN 116991452A CN 202310928491 A CN202310928491 A CN 202310928491A CN 116991452 A CN116991452 A CN 116991452A
- Authority
- CN
- China
- Prior art keywords
- opal
- code
- openpower
- updating
- function
- 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 76
- 239000011022 opal Substances 0.000 title claims abstract 52
- 230000008569 process Effects 0.000 claims abstract description 42
- 238000012795 verification Methods 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 104
- 230000007246 mechanism Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 6
- 238000013480 data collection Methods 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 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
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种在OpenPower架构热更新OPAL功能固件代码的方法及装置,通过编写的OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;再通过所述操作系统驱动接口调用OPAL功能固件的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;在校验通过的情况下,执行热更新以及进程恢复操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。本发明减少服务器停机时间、减少运维时间以及增加CPU使用率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种在OpenPower架构热更新OPAL功能固件代码的方法及装置。
背景技术
随着云计算、大数据等高性能需求市场的快速发展,相对于传统的x86系统,具有高性能优势的OpenPower得到了越来越广泛的应用。由于应用Open Power架构的服务器的CPU(Central Processing Unit,中央处理器)具有更多的核数、能够提供更多的线程,所以,Open Power服务器在数据存储方面会具有更大的优势,OpenPower架构的服务器也应用的更加广泛。
固件通过OpenPower抽象层(OPAL,OpenPower Abstraction Layer)给操作系统提供抽象层操作,目前OpenPower操作系统所有硬件底层操作都是通过OPAL来完成,例如CPU启停,功耗性能操作,PCI-Express(peripheral component interconnect express,高速串行计算机扩展总线标准),中断控制器,RAS(Remote Access Service,远程访问服务)处理等等,那么对于OPAL更新会非常频繁。目前业界的方案是要重新走刷新流程,一般是整体刷新闪存芯片然后重新启动。但是采用该方案服务器重新启动时间非常慢,而且机器这段时间是不可用的。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种在OpenPower架构热更新OPAL功能固件代码的方法及装置,用于解决以上现有技术问题。
为实现上述目的及其他相关目的,本发明提供一种在OpenPower架构热更新OPAL功能固件代码的方法,应用于服务器,所述方法包括:通过OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;通过所述操作系统驱动接口调用OPAL的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;响应于确定所述待更新OPAL文件代码签名校验通过,执行热更新操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。
于本发明的一实施例中,所述热更新操作包括:利用当前OPAL核心代码执行所有CPU核心的中断控制操作,并令当前OPAL核心代码对应的所有OPAL功能函数刷新为待更新OPAL文件代码。
于本发明的一实施例中,所述中断控制操作包括:利用当前OPAL核心代码广播发送中断给所有CPU核心,以供各CPU核心将所有上下文内容保存在固定位置堆栈中。
于本发明的一实施例中,所述方法还包括:刷新完毕后,利用当前OPAL核心代码令所有CPU核心执行中断返回,以供恢复运行各CPU核心的进程。
于本发明的一实施例中,在OPAL的功能函数入口之前设置有自旋锁,以供启动上锁机制以及解锁机制;其中,所述功能函数入口用于CPU核心通过OpenPower操作系统从OPAL访问OPAL功能函数。
于本发明的一实施例中,所述热更新操作包括:启动所述上锁机制,令所述自旋锁进入上锁状态,以中断各CPU核心访问OPAL功能函数的进程;利用当前OPAL核心代码执行热更新操作,以供将所述服务器的Flash闪存Opal更新区域的所有OPAL功能函数刷新为OPAL文件代码。
于本发明的一实施例中,所述方法还包括:刷新完毕后,启动解锁机制,令所述自旋锁进入解锁状态,以供恢复各CPU核心中断访问OPAL功能函数的进程。
于本发明的一实施例中,当所述自旋锁进入上锁状态后,通过与所述自旋锁搭配设置的工作队列机制将CPU核心访问OPAL功能函数的进程放入等待队列。
为实现上述目的及其他相关目的,本发明提供一种在OpenPower架构热更新OPAL功能固件代码的装置,应用于服务器,所述装置包括:待更新数据收集模块,用于通过OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;签名校验模块,用于通过所述操作系统驱动接口调用OPAL的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;热更新模块,用于响应于确定所述待更新OPAL文件代码签名校验通过,执行热更新操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。
于本发明的一实施例中,所述热更新模块用于利用当前OPAL核心代码执行所有CPU核心的中断控制操作,并令当前OPAL核心代码对应的所有OPAL功能函数刷新为待更新OPAL文件代码。
如上所述,本发明是一种在OpenPower架构热更新OPAL功能固件代码的方法及装置,具有以下有益效果:通过编写的OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;再通过所述操作系统驱动接口调用OPAL功能固件的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;在校验通过的情况下,执行热更新以及进程恢复操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。本发明减少服务器停机时间、减少运维时间以及增加CPU使用率。
附图说明
图1显示为本发明一实施例中的在OpenPower架构热更新OPAL功能固件代码的方法的流程示意图。
图2显示为本发明一实施例中的OpenPower架构的结构示意图。
图3显示为本发明一实施例中的在OpenPower架构热更新OPAL功能固件代码的第一种实施方式的流程示意图。
图4显示为本发明一实施例中的在OpenPower架构热更新OPAL功能固件代码的第二种实施方式的流程示意图。
图5显示为本发明一实施例中的在OpenPower架构热更新OPAL功能固件代码的系统的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、““下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本发明范围的范围内,可以言及到第二部分、成分、区域、层或段。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本发明的一种在OpenPower架构热更新OPAL功能固件代码的方法,通过编写的OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;再通过所述操作系统驱动接口调用OPAL功能固件的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;在校验通过的情况下,执行热更新以及进程恢复操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。本发明减少服务器停机时间、减少运维时间以及增加CPU使用率。
与此同时,为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
在对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:
<1>OpenPower是国际商业机器公司(International Business MachinesCorporation,简称IBM)、谷歌(Google)、英伟达(NVIDIA)以及许多其他的硬件、软件开发商组成的联盟共同开发的芯片架构。
<2>OPAL(OpenPower抽象层,OpenPower Abstraction Layer),OpenPower操作系统所有硬件底层操作都是通过OPAL来完成,例如CPU启停,功耗性能操作,PCIE,中断控制器,RAS处理等等。
<3>CPU(中央处理器,Central Processing Unit);本发明的CPU包含多个CPU核心,应用于基于OpenPower架构的服务器。所述CPU核心指的是CPU内核,是CPU中间的核心芯片,由单晶硅制成,用来完成所有的计算、接受/存储命令、处理数据等,是数字处理核心。
下面以附图为参考,针对本发明的实施例进行详细说明,以便本发明所述技术领域的技术人员能够容易地实施。本发明可以以多种不同形态体现,并不限于此处说明的实施例。
如图1展示本发明实施例中的一种在OpenPower架构热更新OPAL功能固件代码的方法的流程示意图。
应用于基于OpenPower架构的服务器;如图2所示,本发明的OpenPower架构包括:应用层、OpenPower操作系统以及OPAL。
所述方法包括:
步骤S1:通过对应OpenPower操作系统的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码。
在一实施例中,编写架构中使用的OpenPower操作系统的操作系统驱动,该操作系统驱动具有给应用层提供更新OPAL的操作系统驱动接口。
在一实施例中,该操作系统驱动接口可以从应用层收集由用户层传递下来的待更新OPAL文件代码并下载到OpenPower操作系统中。其中,待更新OPAL文件代码,为最新版本的OPAL数据包括:多个OPAL功能函数。需要说明的是,所述待更新OPAL文件代码可以为数据包的形式传递,也可以直接以数据形式传递。
步骤S2:通过所述操作系统驱动接口调用OPAL的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验。
在一实施例中,待更新OPAL文件代码之前通过私钥签名,当前OPAL核心代码通过对应设置的公钥验证待更新OPAL文件代码的签名,签名通过执行更新动作,不通过则不执行更新动作。
步骤S3:响应于确定所述待更新OPAL文件代码签名校验通过,执行热更新操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。
为了更好的描述热更操作,现结合以下具体实施例说明两种热更新的方式。
以下为第一种方式的具体实施方式:
在一实施例中,如图3所示,所述热更新第一种方式包括:
利用当前OPAL核心代码执行所有CPU核心的中断控制操作以及执行热更新操作,以供所有CPU核心中断进程且将当前OPAL核心代码对应的所有OPAL功能函数,也就是所述服务器的Flash闪存Opal更新区域的所有OPAL功能函数刷新为待更新OPAL文件代码。
在本实施例中,刷新完毕后,利用当前OPAL核心代码令所有CPU核心执行中断返回,以供恢复运行各CPU核心的进程。
在一优选实施例中,所述中断控制操作包括:利用当前OPAL核心代码广播发送中断给所有CPU核心,以供各CPU核心将所有上下文内容保存在固定位置堆栈中。
以下为第二种方式的具体实施方式:
在一实施例中,由于更新的时候把所有的CPU核心中断,那么如果更新时让操作系统进程无感知并且继续进行,且各CPU核心通过OpenPower操作系统访问OPAL的OPAL功能函数需要通过在OPAL设置的功能函数入口访问;
因此为了实现第二种方式需在功能函数入口之前设置有自旋锁,可实现启动上锁机制以及解锁机制;
其中,自旋锁(spin lock)是一种非阻塞锁,也就是说,如果某线程需要获取锁,但该锁已经被其他线程占用时,该线程不会被挂起,而是在不断的消耗CPU的时间,不停的试图获取锁。自旋锁是计算机科学用于多线程同步的一种锁,线程反复检查锁变量是否可用。由于线程在这一过程中保持执行,因此是一种忙等待。自旋锁避免了进程上下文的调度开销,因此对于线程只会阻塞很短时间的场合是有效的。因此操作系统的实现在很多地方往往用自旋锁。
本发明在使用时,因为正在更新,所以不运行访问OPAL功能函数的进程;即当启动上锁机制后,所述自旋锁进入上锁状态,CPU核心不能访问OPAL层的OPAL功能函数,即对应的访问OPAL功能函数的进程中断,但其他不操作OPAL功能函数的进程可以继续;当启动解锁机制后,所述自旋锁进入解锁状态,CPU核心可以继续访问OPAL层的OPAL功能函数,即恢复访问OPAL功能函数的进程。
在一优选实施例中,所述自旋锁搭配有一工作队列机制,即将CPU核心访问OPAL功能函数的进程放入等待队列。工作队列机制机制是保证如果某个进程访问了OPAL功能函数,那么这个进程会进入等待队列,这个CPU核心可以运行其他不操作OPAL的进程。
在一实施例中,基于以上,如图4所示,所述热更新的第二种方式包括:
启动所述上锁机制,令所述自旋锁进入上锁状态,以供中断各CPU核心对应访问OPAL功能函数的进程;
利用当前OPAL核心代码执行热更新操作,以供将所述服务器的Flash闪存Opal更新区域的所有OPAL功能函数刷新为OPAL文件代码数据。
在本实施例中,刷新完毕后,启动解锁机制,令所述自旋锁进入解锁状态,以供恢复各CPU核心对应中断访问OPAL功能函数的进程。
因此,通过这种方式当OPAL功能函数刷新,CPU核心对应的访问OPAL功能函数的进程中断,但其他不操作OPAL功能函数的进程可以继续,不需要访问OPAL功能函数的CPU核心的进程也可以正常运行。
在一优选的实施例中,当所述自旋锁进入上锁状态时,以供通过与所述自旋锁搭配设置的工作队列机制将CPU核心访问OPAL功能函数的进程放入等待队列。
为了更好的说明上述在OpenPower架构热更新OPAL功能固件代码的方法,本发明提供以下具体实施例。
实施例1:一种在OpenPower架构热更新OPAL功能固件代码的方法。
应用于基于OpenPower架构的服务器;在OpenPower架构热更新OPAL功能固件代码的方法实现步骤如下:
步骤1:编写操作系统驱动,并且这个驱动可以给应用层提供更新OPAL的接口。
步骤2:驱动接口会去收集到用户层传递下来的待更新OPAL文件代码OPAL Image。
步骤3:驱动接口会调用原来的OPAL合芯代码OPAL kernel对这个要更新的OPALimage做签名校验。
步骤4:校验通过OPAL kernel会广播发送中断给所有CPU核心core,所有的core会把所有上下文内容保存在固定位置堆栈中。
步骤5:OPAL kernel会把OPAL更新区域所有OPAL功能函数OPAL function刷新成OPAL image。
步骤6:刷新完成,OPAL kernel部分会让所有core执行中断返回。
实施例2:一种在OpenPower架构热更新OPAL功能固件代码的方法。
应用于基于OpenPower架构的服务器;由于更新的时候把所有的core中断,那么如果更新时让操作系统进程无感知并且继续进行,因此在OPAL功能固件上用于CPU核心通过OpenPower操作系统数据访问OPAL功能函数的OPAL Entry之前新增一把自旋锁还有workqueue机制。workqueue机制机制是保证如果某个进程访问了OPAL function(这个时候因为正在更新,所以不运行访问),那么这个进程会进入等待队列,这个CPU core可以运行其他不操作OPAL的进程。
在OpenPower架构热更新OPAL功能固件代码的方法实现步骤如下:
步骤1:编写操作系统驱动,并且这个驱动可以给应用层提供更新OPAL的接口。
步骤2:驱动接口会去收集到用户层传递下来的待更新OPAL文件代码OPAL Image。
步骤3:驱动接口会调用原来的OPAL合芯代码OPAL kernel对这个要更新的OPALimage做签名校验。
步骤4:启动所述上锁机制,令所述自旋锁进入上锁状态,中断对应CPU核心访问OPAL功能函数的进程且通过workqueue机制将该进程进入等待队列,这个CPU core可以运行其他不操作OPAL的进程。
步骤5:OPAL kernel会把OPAL更新区域所有OPAL功能函数OPAL function刷新成OPAL image。
步骤6:刷新完毕后,启动解锁机制,令所述自旋锁进入解锁状态,以供恢复对应中断访问OPAL功能函数的进程。
与上述实施例原理相似的是,本发明提供一种在OpenPower架构热更新OPAL功能固件代码的系统。
以下结合附图提供具体实施例:
如图5展示本发明实施例中的一种在OpenPower架构热更新OPAL功能固件代码的装置的结构示意图。
应用于服务器,所述装置包括:
待更新数据收集模块51,用于通过OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;
签名校验模块52,连接所述待更新数据收集模块51,用于通过所述操作系统驱动接口调用OPAL的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;
热更新模块53,连接所述签名校验模块52,用于响应于确定所述待更新OPAL文件代码签名校验通过,执行热更新操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。
由于该在OpenPower架构热更新OPAL功能固件代码的装置的实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
在一实施例中,所述热更新模块53用于利用当前OPAL核心代码执行所有CPU核心的中断控制操作,并令当前OPAL核心代码对应的所有OPAL功能函数刷新为待更新OPAL文件代码。
在一实施例中,所述中断控制操作包括:所述中断控制操作包括:利用当前OPAL核心代码广播发送中断给所有CPU核心,以供各CPU核心将所有上下文内容保存在固定位置堆栈中。
在一实施例中,所述热更新模块53还用于刷新完毕后,利用当前OPAL核心代码令所有CPU核心执行中断返回,以供恢复运行各CPU核心的进程。
在一实施例中,在OPAL的功能函数入口之前设置有自旋锁,以供启动上锁机制以及解锁机制;其中,所述功能函数入口用于CPU核心通过OpenPower操作系统从OPAL访问OPAL功能函数。
在一实施例中,所述热更新模块53用于启动上锁机制,令所述自旋锁进入上锁状态,以中断各CPU核心访问OPAL功能函数的进程;利用当前OPAL核心代码执行热更新操作,以供将所述服务器的Flash闪存Opal更新区域的所有OPAL功能函数刷新为OPAL文件代码数据。
在一实施例中,当所述自旋锁进入上锁状态后,通过与所述自旋锁搭配设置的工作队列机制将CPU核心访问OPAL功能函数的进程放入等待队列。
在一实施例中,所述热更新模块53还用于刷新完毕后,启动解锁机制,令所述自旋锁进入解锁状态,以供恢复各CPU核心中断访问OPAL功能函数的进程。
综上所述,本发明的在OpenPower架构热更新OPAL功能固件代码的方法及装置,通过编写的OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;再通过所述操作系统驱动接口调用OPAL功能固件的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;在校验通过的情况下,执行热更新以及进程恢复操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。本发明减少服务器停机时间、减少运维时间以及增加CPU使用率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,应用于服务器,所述方法包括:
通过OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;
通过所述操作系统驱动接口调用OPAL的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;
响应于确定所述待更新OPAL文件代码签名校验通过,执行热更新操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。
2.根据权利要求1所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,所述热更新操作包括:
利用当前OPAL核心代码执行所有CPU核心的中断控制操作,并令当前OPAL核心代码对应的所有OPAL功能函数刷新为待更新OPAL文件代码。
3.根据权利要求2所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,所述中断控制操作包括:
利用当前OPAL核心代码广播发送中断给所有CPU核心,以供各CPU核心将所有上下文内容保存在固定位置堆栈中。
4.根据权利要求2中所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,所述方法还包括:刷新完毕后,利用当前OPAL核心代码令所有CPU核心执行中断返回,以供恢复运行各CPU核心的进程。
5.根据权利要求1所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,在OPAL的功能函数入口之前设置有自旋锁,以供启动上锁机制以及解锁机制;其中,所述功能函数入口用于CPU核心通过OpenPower操作系统从OPAL访问OPAL功能函数。
6.根据权利要求5所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,所述热更新操作包括:
启动所述上锁机制,令所述自旋锁进入上锁状态,以中断各CPU核心访问OPAL功能函数的进程;
利用当前OPAL核心代码执行热更新操作,以供将所述服务器的Flash闪存Opal更新区域的所有OPAL功能函数刷新为OPAL文件代码。
7.根据权利要求6所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,所述方法还包括:刷新完毕后,启动解锁机制,令所述自旋锁进入解锁状态,以供恢复各CPU核心中断访问OPAL功能函数的进程。
8.根据权利要求6所述的在OpenPower架构热更新OPAL功能固件代码的方法,其特征在于,当所述自旋锁进入上锁状态后,通过与所述自旋锁搭配设置的工作队列机制将CPU核心访问OPAL功能函数的进程放入等待队列。
9.一种在OpenPower架构热更新OPAL功能固件代码的装置,其特征在于,应用于服务器,所述装置包括:
待更新数据收集模块,用于通过OpenPower架构的操作系统驱动接口从应用层收集由用户层传递下来的待更新OPAL文件代码;
签名校验模块,用于通过所述操作系统驱动接口调用OPAL的当前OPAL核心代码对所述待更新OPAL文件代码进行签名校验;
热更新模块,用于响应于确定所述待更新OPAL文件代码签名校验通过,执行热更新操作,以供基于待更新OPAL文件代码对当前OPAL核心代码进行热更新。
10.根据权利要求9中所述的在OpenPower架构热更新OPAL功能固件代码的装置,其特征在于,所述热更新模块用于利用当前OPAL核心代码执行所有CPU核心的中断控制操作,并令当前OPAL核心代码对应的所有OPAL功能函数刷新为待更新OPAL文件代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310928491.5A CN116991452A (zh) | 2023-07-26 | 2023-07-26 | 在OpenPower架构热更新OPAL功能固件代码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310928491.5A CN116991452A (zh) | 2023-07-26 | 2023-07-26 | 在OpenPower架构热更新OPAL功能固件代码的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116991452A true CN116991452A (zh) | 2023-11-03 |
Family
ID=88533207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310928491.5A Pending CN116991452A (zh) | 2023-07-26 | 2023-07-26 | 在OpenPower架构热更新OPAL功能固件代码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991452A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488169A (zh) * | 2020-04-07 | 2020-08-04 | 网易(杭州)网络有限公司 | 应用程序热更新的方法及装置、存储介质及电子设备 |
CN112965837A (zh) * | 2021-03-04 | 2021-06-15 | 杭州银行股份有限公司 | 配置和服务热重载更新方法、装置、计算机设备及存储介质 |
CN115605844A (zh) * | 2020-04-06 | 2023-01-13 | 英特尔公司(Us) | 用于裸机云部署的微代码(微码)热升级方法 |
-
2023
- 2023-07-26 CN CN202310928491.5A patent/CN116991452A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115605844A (zh) * | 2020-04-06 | 2023-01-13 | 英特尔公司(Us) | 用于裸机云部署的微代码(微码)热升级方法 |
CN111488169A (zh) * | 2020-04-07 | 2020-08-04 | 网易(杭州)网络有限公司 | 应用程序热更新的方法及装置、存储介质及电子设备 |
CN112965837A (zh) * | 2021-03-04 | 2021-06-15 | 杭州银行股份有限公司 | 配置和服务热重载更新方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6983461B2 (en) | Method and system for deadlock detection and avoidance | |
JP3701814B2 (ja) | マルチプロセッサ・システム及びそのシステム・シリアル化方法 | |
JP5933000B2 (ja) | 中央処理ユニット及び画像処理ユニットの同期機構 | |
CN103473135B (zh) | 虚拟化环境下自旋锁lhp现象的处理方法 | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
JPH064322A (ja) | プロセスレベルプログラミングのための割込み処理の直列化方法 | |
JPH04215137A (ja) | マルチタスク式データ処理システム | |
WO2019212696A1 (en) | Multithread framework for use in pre-boot environment of a system-on-chip | |
US5884021A (en) | Computer system having a checkpoint and restart function | |
JP6468053B2 (ja) | 情報処理装置、並列処理プログラム、及び、共有メモリアクセス方法 | |
CN116991452A (zh) | 在OpenPower架构热更新OPAL功能固件代码的方法及装置 | |
JPH07319716A (ja) | 計算機システムの資源の排他制御方式 | |
US9619277B2 (en) | Computer with plurality of processors sharing process queue, and process dispatch processing method | |
CN111459620A (zh) | 安全容器操作系统到虚拟机监控器的信息调度方法 | |
CN114327828B (zh) | 一种共享数据的无锁并发访问方法、装置、设备及介质 | |
JP2022055002A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
US7788529B2 (en) | Method for safely interrupting blocked work in a server | |
JP2010026575A (ja) | スケジューリング方法およびスケジューリング装置並びにマルチプロセッサシステム | |
JP2553526B2 (ja) | マルチタスク処理装置 | |
JPH064323A (ja) | マルチプロセッサシステム | |
CN118260051A (zh) | 线程访问控制设备、方法与计算设备 | |
CN114579313A (zh) | 一种面向多安全域架构的安全域快速建立方法 | |
JPH06223047A (ja) | 排他制御方式 | |
JPH06214811A (ja) | スケジューリング方式 | |
CN117687744A (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 |