CN106844258A - 热添加CPU使能x2APIC的方法和服务器系统 - Google Patents

热添加CPU使能x2APIC的方法和服务器系统 Download PDF

Info

Publication number
CN106844258A
CN106844258A CN201510885525.2A CN201510885525A CN106844258A CN 106844258 A CN106844258 A CN 106844258A CN 201510885525 A CN201510885525 A CN 201510885525A CN 106844258 A CN106844258 A CN 106844258A
Authority
CN
China
Prior art keywords
cpu
x2apic
sbsp
node
pbsp
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.)
Granted
Application number
CN201510885525.2A
Other languages
English (en)
Other versions
CN106844258B (zh
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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei Technologies Co 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510885525.2A priority Critical patent/CN106844258B/zh
Priority to PCT/CN2016/098357 priority patent/WO2017092467A1/zh
Publication of CN106844258A publication Critical patent/CN106844258A/zh
Application granted granted Critical
Publication of CN106844258B publication Critical patent/CN106844258B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本申请公开了一种热添加CPU使能x2APIC的方法、CPU及服务器系统。本申请中第一CPU的SBSP通过在同步寄存器保存第二CPU的节点ID,第二CPU的PBSP确定同步寄存器中保存了第二CPU的节点ID,利用节点ID和热添加CPU的PBSP默认的APIC ID,得到第二CPU的PBSP的x2APIC ID,并配置使能第二CPU的PBSP对应的寄存器,SBSP通过第二CPU的x2APIC ID发送定点IPI到第二CPU的PBSP,SBSP收集第二CPU的PBSP和所有AP的x2APIC ID。本申请在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单。

Description

热添加CPU使能x2APIC的方法和服务器系统
技术领域
本发明涉及存储技术领域,特别涉及一种热添加CPU使能x2APIC的方法和服务器系统。
背景技术
随着服务器行业的发展,对系统的稳定性要求越来越高,系统容错能力越来越重要。为了实现系统的容错能力,服务器厂商发布的服务器具有的中央处理器(英文全称:Central Processing Unit,英文简称:CPU)热插拔、内存热插拔、PCI-E(PCI-Express)设备热插拔特性便成了服务器的竞争力,目前,高端服务器系统中CPU热插拔已成为不可或缺的特性。
一般来说,服务器系统由多个CPU组成,当一个服务器系统的一个或多个CPU出现致命错误需要移除时,为了不影响整个系统的业务运行,CPU热插拔特性可以保证客户不中断业务,CPU热插拔过程中新添加的CPU需要重新加入到系统并且重新配置,包括寄存器及一些特性,比如中断模式。
APIC(Advanced Programmable Interrupt Controller)是高级可编程中断控制器,xAPIC是服务器系统中一种中断模式,为Intel CPU提供中断传输机制,但是xAPIC只支持8bit的逻辑APIC标识符(ID),不能支持多节点大服务器系统(即超过256个逻辑CPU的服务器系统),而x2APIC是一种扩展的xAPIC中断模式,支持32bit的逻辑x2APIC ID。由于Intel CPU默认的中断传输方式是xAPIC,超过256个逻辑CPU的大服务器系统在启动或热添加时都必须使能x2APIC中断模式。
热添加CPU时主要是系统启动线程(英文全称:System Boot StrapProcessor,英文简称:SBSP)运行程序,在使用xAPIC中断模式时,SBSP发处理器之间的中断(Inter-Processor Interrupt,IPI)到热添加CPU的处理器主线程(英文全称:Processor Boot Strap Processor,英文简称:PBSP),使得热添加CPU的PBSP广播IPI到该热添加CPU的所有处理器普通线程(英文全称:Application Processor,英文简称:AP),收集该热添加CPU的所有AP的x2APIC ID,并返回给SBSP。
现有技术中,当热添加CPU与处理器主线程(英文全称:Processor BootStrap Processor,英文简称:SBSP)所在的CPU在不同节点(例如除节点0外的其他节点)时,此时热添加CPU的所有线程的x2APIC ID都不能用8bit表示,所以SBSP不能向热添加CPU的PBSP发定点IPI中断,因为热添加CPU上电时默认为xAPIC模式,其APIC ID只有8bit,还未配置正确的APICID,而定点IPI中断必须指定APIC ID,此时若发送定点IPI会出现两种情况,以4节点16CPU为例:
(1)指定APIC ID为系统分配的值(0x0140),CPU5PBSP上电默认为APIC模式,APIC ID默认为0x40,PBSP将不能找到相应的APIC ID而导致系统挂死。
(2)指定APIC ID为上电默认值(0x40),将发送到本节点对应的CPU的线程上(CPU 1的PBSP),而不能完成相应功能。
如上所述,现有技术在热添加CPU与SBSP所在的CPU在不同节点时无法实现热添加CPU使能x2APIC。
发明内容
本申请提供了一种热添加CPU使能x2APIC的方法和服务器系统,在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单。
本申请中,第一方面提供一种热添加CPU使能x2APIC的方法,所述方法应用于服务器系统,所述服务器系统包括第一CPU和第二CPU,所述第一CPU为所述服务器系统的系统启动线程SBSP所在的CPU,所述第二CPU为加入系统拓扑结构且未完成使能x2APIC的热添加CPU,所述第一CPU和所述第二CPU为不同节点中的CPU,所述第一CPU和所述第二CPU预设有一个两者均可访问的同步寄存器,所述方法包括:
所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点标识符ID;
所述第二CPU确定所述同步寄存器中是否保存了所述第二CPU的节点ID,若是,利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APICID,得到所述第二CPU的PBSP的x2APIC ID,并使能所述第二CPU的PBSP对应的x2APIC寄存器;
所述第一CPU通过所述SBSP向标识为目标x2APIC ID的线程发送定点处理器间中断IPI,所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同;
所述第二CPU通过自身的PBSP接收所述SBSP发送的定点IPI,并广播IPI到所述第二CPU的所有AP,所述广播IPI中包括所述第二CPU的节点ID,以使得各AP更新自身的x2APIC ID,使能各自对应的x2APIC寄存器,并将更新的x2APIC ID返回给所述第二CPU的PBSP;
所述第二CPU通过自身的PBSP接收所有AP返回的x2APIC ID,并将所述第二CPU的SBSP的x2APIC ID以及所有AP的x2APIC ID,发送给所述SBSP;
所述第一CPU通过所述SBSP接收所述第二CPU的PBSP线程发送的所述第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。
从上可知,SBSP所在的第一CPU和第二CPU不在同一个节点,SBSP所在的第一CPU和第二CPU设有两者均可访问的同步寄存器,SBSP通过在同步寄存器保存第二CPU的节点ID后,第二CPU的PBSP在确定同步寄存器中保存了第二CPU的节点ID之后,利用所述节点ID和第二CPU的PBSP默认的APIC ID,得到第二CPU的PBSP的x2APIC ID,并配置使能第二CPU的PBSP对应的x2APIC寄存器,所述SBSP通过同步寄存器中保存的第二CPU的x2APIC ID,发送定点IPI到第二CPU的PBSP,以使得SBSP实现收集第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。本申请在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单有效。
在第一方面的一些可能的实现方式中,在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之前,所述方法还包括:
所述第一CPU通过所述SBSP选择第二CPU的通用寄存器,作为所述第一CPU与所述第二CPU的同步寄存器。
这样,将第二CPU的通用寄存器作为所述第一CPU与所述第二CPU的同步寄存器,使得第一CPU和第二CPU均可以访问所述同步寄存器,是由于第二CPU访问自身的通用寄存器更加方便,同时由于第一CPU是系统启动线程所在的CPU,设置第二CPU的通用寄存器为所述同步寄存器,可以降低实现难度。
在第一方面的另一些可能的实现方式中,所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息;
在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之后,所述方法还包括:
所述第一CPU通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第二CPU确定所述同步寄存器中是否保存了所述第二CPU的节点ID,包括:
所述第二CPU通过自身的处理器主线程PBSP通过读取所述目标信息,确定所述同步寄存器中保存了所述第二CPU的节点ID。
这样,在所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息时,第一CPU既可以设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID,这样即可触发第二CPU通过读取所述目标信息,进而确定所述同步寄存器中保存了所述第二CPU的节点ID。
可选的,所述同步寄存器的第一个bit位信息为所述目标信息,当所述第一个bit位信息为1时,标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第一CPU通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID,包括:
所述第一CPU通过所述SBSP将所述同步寄存器的第一个bit位信息设为1。
由于,第二CPU的通用寄存器是32位,有五个二进制bit位,例如00000,将第一个bit位信息设为所述目标信息,方便读取确定,当然,本申请中,所述目标信息也可以在通用寄存器的其它bit位,例如最后一位,此处不作限定。
进一步可选的,当所述服务器系统中每个节点中包括四个CPU时,所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID,包括:
所述第一CPU通过所述SBSP在所述同步寄存器的第二个bit位和第三个bit位保存所述第二CPU的节点ID。
第二方面,提供了一种服务器系统,所述服务器系统包括第一CPU和第二CPU,所述第一CPU为所述服务器系统的系统启动线程SBSP所在的CPU,所述第二CPU为加入系统拓扑结构且未完成使能x2APIC的热添加CPU,所述第一CPU和所述第二CPU为不同节点中的CPU,所述第一CPU和所述第二CPU预设有一个两者均可访问的同步寄存器;
所述第一CPU用于通过所述SBSP在所述同步寄存器保存所述第二CPU的ID;
所述第二CPU用于确定所述同步寄存器中是否保存了所述第二CPU的节点ID,若是,利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID,得到所述第二CPU的PBSP的x2APIC ID,并使能所述第二CPU的PBSP对应的x2APIC寄存器;
所述第一CPU还用于通过所述SBSP向标识为目标x2APIC ID的线程发送定点处理器间中断IPI,所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同;
所述第二CPU还用于通过自身的PBSP接收所述SBSP发送的定点IPI,并广播IPI到所述第二CPU的所有AP,所述广播IPI中包括所述第二CPU的节点ID,以使得各AP更新自身的x2APIC ID,使能各自对应的x2APIC寄存器,并将更新的x2APIC ID返回给所述第二CPU的PBSP;
所述第二CPU还用于通过自身的PBSP接收所有AP返回的x2APIC ID,并将所述第二CPU的SBSP的x2APIC ID以及所有AP的x2APIC ID,发送给所述SBSP;
所述第一CPU还用于通过所述SBSP接收所述第二CPU的PBSP线程发送的所述第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。
本申请第二方面中,SBSP所在的第一CPU和第二CPU不在同一个节点,第一CPU和第二CPU设有两者均可访问的同步寄存器,SBSP通过在同步寄存器保存第二CPU的节点ID后,第二CPU的PBSP在确定同步寄存器中保存了第二CPU的节点ID之后,利用所述节点ID和热添加CPU的PBSP默认的APIC ID,得到第二CPU的PBSP的x2APIC ID,并配置使能第二CPU的PBSP对应的x2APIC寄存器,所述SBSP通过同步寄存器中保存的第二CPU的x2APIC ID,发送定点IPI到第二CPU的PBSP,以使得SBSP实现收集第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。本申请在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单有效。
在第二方面的一些可能的实现方式中,所述第一CPU还用于在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之前,通过所述SBSP选择第二CPU的通用寄存器,作为所述第一CPU与所述第二CPU的同步寄存器。
在第二方面的另一些可能的实现方式中,所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息;
所述第一CPU还用于在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之后,通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第二CPU具体用于通过自身的处理器主线程PBSP通过读取所述目标信息,确定所述同步寄存器中保存了所述第二CPU的节点ID。
可选的,所述同步寄存器的第一个bit位信息为所述目标信息,当所述第一个bit位信息为1时,标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第一CPU具体用于通过所述SBSP将所述同步寄存器的第一个bit位信息设为1。
进一步可选的,当所述服务器系统中每个节点中包括四个CPU时,所述第一CPU具体用于通过所述SBSP在所述同步寄存器的第二个bit位和第三个bit位保存所述第二CPU的节点ID。
从以上技术方案可以看出,本申请具有以下优点:
本申请中,在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单有效。
附图说明
图1是本申请中服务器系统的一个实施例示意图;
图2是本申请中热添加CPU使能x2APIC的方法的一个实施例示意图;
图3是本申请中服务器系统的一个实施例示意图。
具体实施方式
本申请提供了一种热添加CPU使能x2APIC的方法和服务器系统,在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单有效。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了方便理解本发明实施例,首先,在此介绍本发明实施例描述中会引入的几个要素;
固件(Firmware):就是写入可擦写只读存储器(Eraseable Read Only Memory,EROM)或电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)中的程序,固件担任着一个系统最基础最底层工作的软件,而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
IPI:Inter-Processor Interrupt(处理器之间的中断),IPI是一种特别的中断,在对称多处理器(SMP)环境下,它可以被任意一个处理器用来对另一个处理器产生中断。
APIC:(Advanced Programmable Interrupt Control)高级可编程中断控制器,通常是指Intel(英特尔)CPU的中断控制器;一般由两部分组成:
IO APIC:位于南桥中,用于处理桥上的设备所产生的各种中断。它用来接收IO设备所产生的中断,并将其传送给Local APIC,通常有24个输入。
Local APIC:位于CPU中,每个CPU都有一个,负责传送中断至指定的处理器,Local APIC可以接收以下中断源所发出的中断:1.外部的中断设备:
这些IO设备连接到IO APIC的INTIN pin,其产生的中断请求信息通过IOAPIC传送到Local APIC;2.处理器之间的中断(IPI):处理器通过写ICR(Interrupt Command Register)可以触发IPI。
目前,APIC架构的包括如下版本:
(1)APIC
Intel P6系列CPU使用,Local APIC与IO APIC之间通过APIC BUS(总线)通信。
(2)xAPIC
Intel Pentium 4及至强Xeon系列CPU使用,Local APIC与IO APIC之间通过System BUS通信,xAPIC是APIC架构中一些功能的扩展或修改。
(3)x2APIC
x2APIC是xAPIC架构的进一步扩展,主要是提升了处理器寻址能力(processor address ability),x2APIC架构提供向后兼容(即兼容xAPIC)和向前扩展(即未来Intel新平台)的能力。
在xAPIC模式中,寄存器是通过内存映射到一段物理地址。有一个默认值,防止同其他地址冲突,这个地址又可以重新指定到另外一个地方,BIOS开发人员在对付APIC时可能会用到这个功能。
本申请中,多节点大服务器系统指的是超过256个逻辑CPU的多节点服务器系统,如图1所示,为一种服务器系统中的示意图,其中,每4个CPU是一个节点(如图1中CPU0、CPU1、CPU2、CPU3),一般情况下,插在同一个单板上的CPU为同一个节点的CPU,不通过节点控制器(NodeController,NC)就能够互相通信的CPU属于同一个节点,例如通过CPU之间的快速通道互联(英文全称:Quick Path Interconnect,英文简称:QPI)总线进行CPU间的通信。同一个节点的CPU连接同一个NC,属于同一个QPI,Cpu间以及Cpu和NC都通过QPI总线互连。
每个服务器系统中会包括一个系统启动线程(英文全称:System BootStrap Processor,英文简称:SBSP),该系统启动线程位于多节点大服务器系统中某一节点中的某一个CPU中,一般情况下,SBSP默认位于节点0中的CPU0(第一个节点的第一个CPU)中。
服务器系统中的每个CPU都包括一个处理器主线程(英文全称:Processor Boot Strap Processor,英文简称:PBSP)和若干个处理器普通线程(英文全称:Application Processor,英文简称:AP),支持x2APIC模式的每个CPU的PBSP和所有AP都有一个对应的使能x2APIC寄存器,一般情况下,使能x2APIC寄存器的寄存器中存储的信息为0时,代表未使能,1代表使能,同时,服务器系统中的每个CPU都包括一个或多个32位通用寄存器。
服务器系统的一个或多个CPU出现致命错误需要移除时,为了不影响整个系统的业务运行,CPU热插拔特性可以保证客户不中断业务,CPU热插拔过程中新添加的CPU需要重新加入到系统并且重新配置,比如中断模式,本申请中主要关注中断模式的配置。
一般情况下,热添加CPU要想支持x2APIC中断模式,热添加CPU需要使能x2APIC,即热添加CPU的PBSP和所有AP都需要更新x2APICID,使能x2APIC寄存器,并将更新的所有x2APICID由热添加CPU的PBSP收集返回给SBSP,从而实现热添加CPU使能x2APIC。
现有方案中,在热添加CPU与SBSP所在的CPU在不同节点时无法实现热添加CPU使能x2APIC,基于此,本申请提供一种热添加CPU使能x2APIC的方法、CPU及服务器系统。
下面首先介绍本申请中热添加CPU使能x2APIC的方法的实施例。
图2为本申请中使能x2APIC的方法的一个实施例,所述方法应用于服务器系统,所述服务器系统包括第一CPU和第二CPU,所述第一CPU为所述服务器系统的系统启动线程SBSP所在的CPU,所述第二CPU为加入系统拓扑结构且未完成使能x2APIC的热添加CPU,所述第一CPU和所述第二CPU为不同节点中的CPU,所述第一CPU和所述第二CPU之间预设有一个两者均可访问的同步寄存器,所述方法包括:
201、第一CPU通过SBSP在所述同步寄存器保存所述第二CPU的节点ID;
本实施例是在服务器系统在拓扑发现完成后,第一CPU的SBSP在热添加CPU加入服务器系统拓扑结构后,可以获知热添加CPU的节点ID,因此,本实施例中,第一CPU通过SBSP知道第二CPU的节点ID后,可以在所述同步寄存器保存所述第二CPU的节点ID。
本实施例中,在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之前,所述方法还可以包括:所述第一CPU通过所述SBSP选择第二CPU的通用寄存器,作为所述第一CPU与所述第二CPU的同步寄存器,即此时,第二CPU的一个32位通用寄存器作为所述同步寄存器,可以理解的是,本实施例中,也可以是将第一CPU的通用寄存器作为所述同步寄存器,或者所述同步寄存器为所述第一CPU和所述第二CPU均可访问的独立寄存器,此处不作限定。
可选的,当所述系统中每个节点中包括四个CPU时,所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID,可以包括:所述第一CPU通过所述SBSP在所述同步寄存器的第四位到第八位保存所述第二CPU的节点ID。
202、所述第二CPU确定所述同步寄存器中是否保存了所述第二CPU的节点ID,若是,执行步骤203;
在所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息时,在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之后,所述方法还可以包括:
所述第一CPU通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID;
此时,所述第二CPU确定所述同步寄存器中是否保存了所述第二CPU的节点ID,包括:
所述第二CPU通过自身的处理器主线程PBSP通过读取所述目标信息,确定所述同步寄存器中保存了所述第二CPU的节点ID。
例如,假设所述同步寄存器的第一个bit位信息可以设置为0或1,1代表所述同步寄存器中保存了所述第二CPU的节点ID,此时SBSP将所述同步寄存器中的第一个bit位设为1即确定所述同步寄存器中保存了所述第二CPU的节点ID,所述第二CPU即可通过自身的PBSP通过读取所述第一个bit位,确定所述同步寄存器中保存了所述第二CPU的节点ID。
在确定所述同步寄存器中保存了所述第二CPU的节点ID之后,第二CPU可以通过自身的PBSP读取所述同步寄存器中保存的所述第二CPU的节点ID;
203、所述第二CPU利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID,得到所述第二CPU的PBSP的x2APIC ID,并使能所述第二CPU的PBSP对应的x2APIC寄存器;
所述第二CPU利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID,得到所述第二CPU的PBSP的x2APIC ID的过程,即利用第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID更新第二CPU的PBSP的x2APIC ID的过程,此时,第二CPU的PBSP进入等待激活状态。
其中,所述第二CPU利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID,得到所述第二CPU的PBSP的x2APIC ID具体可以是:
第二CPU通过自身的PBSP将所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID合并后,得到所述第二CPU的PBSP的x2APIC ID;
例如,同步寄存器为32位,可以用5个bit位表示,其中第一个bit位为所述同步寄存器中标识是否触发所述第二CPU的热添加流程的目标信息,如0或1,第二CPU的节点ID保存在同步寄存器的第二个bit位和第三个bit位,如第一个节点用节点ID 00表示,第二个节点用节点ID 01表示,而第二CPU的PBSP默认的APIC ID为8位,例如第二CPU默认APIC ID为0x40,第二CPU在节点1中,则第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID合并即可得到第二CPU的PBSP的x2APIC ID:0x0140。
204、所述第一CPU通过所述SBSP向标识为目标x2APIC ID的线程发送定点IPI,所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同;
SBSP在热添加CPU加入系统拓扑结构后,可以获知热添加CPU的具体位置,例如是哪块单板上的哪个CPU,此时SBSP可以获知PBSP所在节点ID和默认的APIC ID,因此可知道由热添加CPU的PBSP所在节点号和默认的APIC ID的x2APIC ID,因此,本实施例中,SBSP可以知道第二CPU(热添加CPU)的x2APIC ID,由于上述步骤中第二CPU的PBSP配置成功了x2APIC ID,因此,第一CPU通过SBSP可以直接利向标识为目标x2APIC ID的线程发送定点IPI,由于所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同,因此,向标识为目标x2APIC ID的线程发送定点IPI即向第二CPU的PBSP发送定点IPI,第二CPU的PBSP可以接收到所述第一CPU通过SBSP发送的定点IPI。
205、所述第二CPU通过自身的PBSP接收所述SBSP发送的定点IPI,并广播IPI到所述第二CPU的所有AP;
所述广播IPI中包括所述第二CPU的节点ID,以使得各AP更新自身的x2APIC ID,并使能各自对应的x2APIC寄存器,将更新的x2APIC ID返回给所述第二CPU的PBSP;
206、第二CPU通过自身的PBSP接收所有AP返回的x2APIC ID;
207、第二CPU通过自身的PBSP将所述第二CPU的SBSP的x2APIC ID以及所有AP的x2APIC ID,发送给所述SBSP;
此时,所述SBSP接收所述第二CPU的PBSP线程发送的所述第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID,完成第二CPU热添加使能x2APIC。
本申请中,服务器系统主线程SBSP所在的第一CPU和第二CPU不在同一个节点,SBSP所在的第一CPU和第二CPU设有两者均可访问的同步寄存器,SBSP通过在同步寄存器保存第二CPU的节点ID后,第二CPU的PBSP在确定同步寄存器中保存了第二CPU的节点ID之后,利用所述节点ID和第二CPU的PBSP默认的APIC ID,得到第二CPU的PBSP的x2APIC ID,并配置使能第二CPU的PBSP对应的x2APIC寄存器,所述SBSP通过同步寄存器中保存的第二CPU的x2APIC ID,发送定点IPI到第二CPU的PBSP,以使得SBSP实现收集第二CPU的PBSP的x2APIC ID和所有AP的x2APICID。本申请在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单有效。
下面介绍本申请中服务器系统的实施例。
图3为本申请中服务器系统的一个实施例,所述服务器系统300包括第一CPU 301和第二CPU 302,所述第一CPU 301为所述服务器系统的系统启动线程SBSP所在的CPU,所述第二CPU 302为加入系统拓扑结构且未完成使能x2APIC的热添加CPU,所述第一CPU 301和所述第二CPU 302为不同节点中的CPU,例如,如图3所示(为便于举例说明,图中服务器系统仅示出两个节点,每个节点中仅示出了一个CPU),第一CPU可以在第一节点,第二CPU可以在第二节点,第一节点与第二节点是不同的节点,所述第一CPU301和所述第二CPU 302预设有一个两者均可访问的同步寄存器;
所述第一CPU用于通过所述SBSP在所述同步寄存器保存所述第二CPU的ID;
所述第二CPU用于确定所述同步寄存器中是否保存了所述第二CPU的节点ID,若是,利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID,得到所述第二CPU的PBSP的x2APIC ID,并使能所述第二CPU的PBSP对应的x2APIC寄存器;
所述第一CPU还用于通过所述SBSP向标识为目标x2APIC ID的线程发送定点处理器间中断IPI,所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同;
所述第二CPU还用于通过自身的PBSP接收所述SBSP发送的定点IPI,并广播IPI到所述第二CPU的所有AP,所述广播IPI中包括所述第二CPU的节点ID,以使得各AP更新自身的x2APIC ID,使能各自对应的x2APIC寄存器,并将更新的x2APIC ID返回给所述第二CPU的PBSP;
所述第二CPU还用于通过自身的PBSP接收所有AP返回的x2APIC ID,并将所述第二CPU的SBSP的x2APIC ID以及所有AP的x2APIC ID,发送给所述SBSP;
所述第一CPU还用于通过所述SBSP接收所述第二CPU的PBSP线程发送的所述第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。
本申请中,SBSP所在的第一CPU和第二CPU不在同一个节点,第一CPU和第二CPU设有两者均可访问的同步寄存器,SBSP通过在同步寄存器保存第二CPU的节点ID后,第二CPU的PBSP在确定同步寄存器中保存了第二CPU的节点ID之后,利用所述节点ID和热添加CPU的PBSP默认的APIC ID,得到第二CPU的PBSP的x2APIC ID,并配置使能第二CPU的PBSP对应的x2APIC寄存器,所述SBSP通过同步寄存器中保存的第二CPU的x2APIC ID,发送定点IPI到第二CPU的PBSP,以使得SBSP实现收集第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。本申请在热添加CPU与SBSP所在的CPU在不同节点时有效实现了热添加CPU使能x2APIC,实现方式简单有效。
在本发明一些实施例中,所述第一CPU还用于在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之前,通过所述SBSP选择第二CPU的通用寄存器,作为所述第一CPU与所述第二CPU的同步寄存器。
可选的,所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息;
所述第一CPU还用于在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之后,通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第二CPU具体用于通过自身的处理器主线程PBSP通过读取所述目标信息,确定所述同步寄存器中保存了所述第二CPU的节点ID。
可选的,所述同步寄存器的第一个bit位信息为所述目标信息,当所述第一个bit位信息为1时,标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第一CPU具体用于通过所述SBSP将所述同步寄存器的第一个bit位信息设为1。
在本发明的一些实施例中,当所述服务器系统中每个节点中包括四个CPU时,所述第一CPU具体用于通过所述SBSP在所述同步寄存器的第二个bit位和第三个bit位保存所述第二CPU的节点ID。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种热添加CPU使能x2APIC的方法,其特征在于,所述方法应用于服务器系统,所述服务器系统包括第一CPU和第二CPU,所述第一CPU为所述服务器系统的系统启动线程SBSP所在的CPU,所述第二CPU为加入系统拓扑结构且未完成使能x2APIC的热添加CPU,所述第一CPU和所述第二CPU为不同节点中的CPU,所述第一CPU和所述第二CPU预设有一个两者均可访问的同步寄存器,所述方法包括:
所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点标识符ID;
所述第二CPU确定所述同步寄存器中是否保存了所述第二CPU的节点ID,若是,利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APICID,得到所述第二CPU的PBSP的x2APIC ID,并使能所述第二CPU的PBSP对应的x2APIC寄存器;
所述第一CPU通过所述SBSP向标识为目标x2APIC ID的线程发送定点处理器间中断IPI,所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同;
所述第二CPU通过自身的PBSP接收所述SBSP发送的定点IPI,并广播IPI到所述第二CPU的所有AP,所述广播IPI中包括所述第二CPU的节点ID,以使得各AP更新自身的x2APIC ID,使能各自对应的x2APIC寄存器,并将更新的x2APIC ID返回给所述第二CPU的PBSP;
所述第二CPU通过自身的PBSP接收所有AP返回的x2APIC ID,并将所述第二CPU的SBSP的x2APIC ID以及所有AP的x2APIC ID,发送给所述SBSP;
所述第一CPU通过所述SBSP接收所述第二CPU的PBSP线程发送的所述第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。
2.根据权利要求1所述的方法,其特征在于,在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之前,所述方法还包括:
所述第一CPU通过所述SBSP选择第二CPU的通用寄存器,作为所述第一CPU与所述第二CPU的同步寄存器。
3.根据权利要求1或2所述的方法,其特征在于,
所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息;
在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之后,所述方法还包括:
所述第一CPU通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第二CPU确定所述同步寄存器中是否保存了所述第二CPU的节点ID,包括:
所述第二CPU通过自身的处理器主线程PBSP通过读取所述目标信息,确定所述同步寄存器中保存了所述第二CPU的节点ID。
4.根据权利要求3所述的方法,其特征在于,
所述同步寄存器的第一个bit位信息为所述目标信息,当所述第一个bit位信息为1时,标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第一CPU通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID,包括:
所述第一CPU通过所述SBSP将所述同步寄存器的第一个bit位信息设为1。
5.根据权利要求4中任一所述的方法,其特征在于,
当所述服务器系统中每个节点中包括四个CPU时,所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID,包括:
所述第一CPU通过所述SBSP在所述同步寄存器的第二个bit位和第三个bit位保存所述第二CPU的节点ID。
6.一种服务器系统,其特征在于,所述服务器系统包括第一CPU和第二CPU,所述第一CPU为所述服务器系统的系统启动线程SBSP所在的CPU,所述第二CPU为加入系统拓扑结构且未完成使能x2APIC的热添加CPU,所述第一CPU和所述第二CPU为不同节点中的CPU,所述第一CPU和所述第二CPU预设有一个两者均可访问的同步寄存器;
所述第一CPU用于通过所述SBSP在所述同步寄存器保存所述第二CPU的ID;
所述第二CPU用于确定所述同步寄存器中是否保存了所述第二CPU的节点ID,若是,利用所述第二CPU的节点ID和所述第二CPU的PBSP默认的APIC ID,得到所述第二CPU的PBSP的x2APIC ID,并使能所述第二CPU的PBSP对应的x2APIC寄存器;
所述第一CPU还用于通过所述SBSP向标识为目标x2APIC ID的线程发送定点处理器间中断IPI,所述目标x2APIC ID与所述第二CPU的PBSP的x2APIC ID相同;
所述第二CPU还用于通过自身的PBSP接收所述SBSP发送的定点IPI,并广播IPI到所述第二CPU的所有AP,所述广播IPI中包括所述第二CPU的节点ID,以使得各AP更新自身的x2APIC ID,使能各自对应的x2APIC寄存器,并将更新的x2APIC ID返回给所述第二CPU的PBSP;
所述第二CPU还用于通过自身的PBSP接收所有AP返回的x2APIC ID,并将所述第二CPU的SBSP的x2APIC ID以及所有AP的x2APIC ID,发送给所述SBSP;
所述第一CPU还用于通过所述SBSP接收所述第二CPU的PBSP线程发送的所述第二CPU的PBSP的x2APIC ID和所有AP的x2APIC ID。
7.根据权利要求6所述的系统,其特征在于,
所述第一CPU还用于在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之前,通过所述SBSP选择第二CPU的通用寄存器,作为所述第一CPU与所述第二CPU的同步寄存器。
8.根据权利要求6或7所述的系统,其特征在于,
所述同步寄存器中存储有标识所述同步寄存器中是否保存了所述第二CPU的节点ID的目标信息;
所述第一CPU还用于在所述第一CPU通过所述SBSP在所述同步寄存器保存所述第二CPU的节点ID之后,通过所述SBSP设置所述目标信息以标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第二CPU具体用于通过自身的处理器主线程PBSP通过读取所述目标信息,确定所述同步寄存器中保存了所述第二CPU的节点ID。
9.根据权利要求8所述的系统,其特征在于,
所述同步寄存器的第一个bit位信息为所述目标信息,当所述第一个bit位信息为1时,标识所述同步寄存器中保存了所述第二CPU的节点ID;
所述第一CPU具体用于通过所述SBSP将所述同步寄存器的第一个bit位信息设为1。
10.根据权利要求4所述的系统,其特征在于,
当所述服务器系统中每个节点中包括四个CPU时,所述第一CPU具体用于通过所述SBSP在所述同步寄存器的第二个bit位和第三个bit位保存所述第二CPU的节点ID。
CN201510885525.2A 2015-12-03 2015-12-03 热添加CPU使能x2APIC的方法和服务器系统 Active CN106844258B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510885525.2A CN106844258B (zh) 2015-12-03 2015-12-03 热添加CPU使能x2APIC的方法和服务器系统
PCT/CN2016/098357 WO2017092467A1 (zh) 2015-12-03 2016-09-07 热添加CPU使能x2APIC的方法和服务器系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510885525.2A CN106844258B (zh) 2015-12-03 2015-12-03 热添加CPU使能x2APIC的方法和服务器系统

Publications (2)

Publication Number Publication Date
CN106844258A true CN106844258A (zh) 2017-06-13
CN106844258B CN106844258B (zh) 2019-09-20

Family

ID=58796222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510885525.2A Active CN106844258B (zh) 2015-12-03 2015-12-03 热添加CPU使能x2APIC的方法和服务器系统

Country Status (2)

Country Link
CN (1) CN106844258B (zh)
WO (1) WO2017092467A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070211430A1 (en) * 2006-01-13 2007-09-13 Sun Microsystems, Inc. Compact rackmount server
US7822895B1 (en) * 2007-12-28 2010-10-26 Emc Corporation Scalable CPU (central processing unit) modules for enabling in-place upgrades of electronics systems
CN102812439A (zh) * 2010-03-25 2012-12-05 国际商业机器公司 多处理器计算机系统中的功率管理
CN103955265A (zh) * 2010-12-22 2014-07-30 威盛电子股份有限公司 配置在多重处理器核心之间的分散式电源管理

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101770401B (zh) * 2008-12-30 2013-09-18 北京天融信网络安全技术有限公司 一种建立多核运行环境的方法
CN101751284B (zh) * 2009-12-25 2013-04-24 华为技术有限公司 一种分布式虚拟机监控器的i/o资源调度方法
US20110161592A1 (en) * 2009-12-31 2011-06-30 Nachimuthu Murugasamy K Dynamic system reconfiguration
WO2012083012A1 (en) * 2010-12-15 2012-06-21 Advanced Micro Devices, Inc. Device discovery and topology reporting in a combined cpu/gpu architecture system
CN104123146A (zh) * 2013-04-25 2014-10-29 深圳市天方信安电子科技有限公司 一种双系统之间实现热切换的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070211430A1 (en) * 2006-01-13 2007-09-13 Sun Microsystems, Inc. Compact rackmount server
US7822895B1 (en) * 2007-12-28 2010-10-26 Emc Corporation Scalable CPU (central processing unit) modules for enabling in-place upgrades of electronics systems
CN102812439A (zh) * 2010-03-25 2012-12-05 国际商业机器公司 多处理器计算机系统中的功率管理
CN103955265A (zh) * 2010-12-22 2014-07-30 威盛电子股份有限公司 配置在多重处理器核心之间的分散式电源管理

Also Published As

Publication number Publication date
WO2017092467A1 (zh) 2017-06-08
CN106844258B (zh) 2019-09-20

Similar Documents

Publication Publication Date Title
US11704144B2 (en) Creating virtual machine groups based on request
CN104202194B (zh) PCIe拓扑的配置方法和装置
CN110096336B (zh) 数据监控方法、装置、设备和介质
CN110809760B (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
US9350633B2 (en) Dynamic optimization of command issuance in a computing cluster
WO2018157588A1 (zh) 固件烧录方法、系统、计算机设备和存储介质
JP2008046722A (ja) I/o装置及び方法
CN111669284B (zh) OpenStack自动化部署方法、电子设备、存储介质及系统
CN111104201A (zh) 系统迁移方法和装置、电子设备、存储介质
CN102662696B (zh) 大规模并行计算机系统的快速启动方法及装置
CN112600723B (zh) 一种基于虚拟化场景的网卡测试方法
CN113495732A (zh) 服务器部署方法、装置、设备及可读存储介质
CN110262893B (zh) 配置镜像内存的方法、装置及计算机存储介质
CN108319492B (zh) 复位物理机的方法、装置与系统
CN115080479B (zh) 传输方法、服务器、设备、裸金属实例及基板管理控制器
CN114401250A (zh) 一种地址分配的方法及装置
CN109120680B (zh) 一种控制系统、方法及相关设备
CN114866515A (zh) Ip地址配置方法、装置、电子设备及存储介质
CN104123188A (zh) 一种资源分配方法及相关装置
CN105528199B (zh) 一种节点的处理方法及装置
CN106844258A (zh) 热添加CPU使能x2APIC的方法和服务器系统
CN109656674B (zh) 一种计算机设备、虚拟化芯片及数据传输方法
CN113568858B (zh) 设备管理方法、装置及存储介质
CN115454896A (zh) 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质
CN107454021B (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20211222

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.