中央处理器热插拔的实现方法及装置制造方法及图纸

技术编号:9859479 阅读:190 留言:0更新日期:2014-04-02 19:21
本发明专利技术实施例提供一种中央处理器热插拔的实现方法及装置,该方法包括:Primary操作系统实例为Secondary操作系统实例配置热插入初始化代码,;Primary操作系统实例向目标CPU发送处理器间中断IPI,以触发目标CPU进行热插入初始化,热插入初始化为目标CPU进行热插入时的初始化过程;Primary操作系统实例检测目标CPU是否完成热插入初始化;若Primary操作系统实例检测到目标CPU完成热插入初始化,则向Secondary操作系统实例发送中断,以使Secondary操作系统实例热插入目标CPU,实现在Secondary操作系统内实现CPU的Hot Plug。

【技术实现步骤摘要】
中央处理器热插拔的实现方法及装置
本专利技术实施例涉及通信领域,尤其涉及一种中央处理器热插拔的实现方法及装置。
技术介绍
随着计算机技术的不断发发展,在一个中央处理器(CentralProcessingUnit,CPU)上部署多个内核(core)形成具有强大处理能力的多核中央处理器,包括多个多核处理器的计算机系统称为多处理器操作系统。多处理器操作系统中,首先启动的操作系统实例为原始(Primary)操作系统实例,后续启动的一个或多个操作系统实例称为第二(Secondary)操作系统实例。当需要为Secondary操作系统实例运行时,可能需求从Primary操作系统实例获取CPU并启动该CPU即需要热插入(HotPlug)。现有的多处理器操作系统,如Linux多处理器操作系统,为了实现HotPlug,需要调用一系列函数完成整个CPU的启动过程。该过程中,负责热插入过程的CPU为主CPU,待启动的CPU为目标CPU,目标CPU接收到主CPU发送的处理器间中断(Inter-ProcessorInterrupt,IPI)后,从低地址空间执行跳板(Trampoline)进入保护模式,再由主CPU进行一系列的初始化操作,将目标CPU纳入系统资源池。然后,目标CPU调度Idle进程,完成启动。然而,该HotPlug过程中,由于低地址空间由Primary操作系统实例管理,而Primary操作系统实例与Secondary操作系统实例属于两个不同的操作系统(OperatingSystem,OS)空间,Secondary操作系统实例不能占用Primary操作系统实例管理的低地址空间。因此,现有技术仅实现了Primary操作系统内CPU的HotPlug,而Secondary操作系统实例由于不能自主的将系统资源池中的CPU从实模式切换到保护模式,进而无法在运行过程中启动目标CPU,即无法在Secondary操作系统实例内实现CPU的HotPlug。
技术实现思路
本专利技术实施例提供一种中央处理器热插拔的实现方法及装置,实现CPU在Secondary操作系统实例内的HotPlug。第一个方面,本专利技术实施例提供一种中央处理器热插拔的实现方法,适用于具有原始Primary操作系统实例与至少一个第二Secondary操作系统实例的多处理器操作系统,该方法包括:所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码,所述热插入初始化代码包括在所述Secondary操作系统中插入目标中央处理器CPU时,所述目标CPU进行热插入所需的功能性代码;所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU进行热插入初始化,所述热插入初始化为所述目标CPU进行热插入时的初始化过程;所述Primary操作系统实例检测所述目标CPU是否完成所述热插入初始化;若所述Primary操作系统实例检测到所述目标CPU完成所述热插入初始化,则向所述Secondary操作系统实例发送中断,以使所述Secondary操作系统实例热插入所述目标CPU。在第一个方面的第一种可能的实现方式中,所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码,包括:所述Primary操作系统实例在所述Primary操作系统实例的机器物理地址配置所述热插入初始化代码;所述Primary操作系统实例在所述Secondary操作系统实例的第一物理地址配置所述热插入初始化代码,所述第一物理地址为低地址;所述Primary操作系统实例在所述Secondary操作系统实例的第二物理地址配置所述热插入初始化代码,所述第二物理地址为低地址,所述第一物理地址与所述第二物理地址为不同的低地址。结合第一个方面的第一种可能的实现方式,在第一个方面的第二种可能的实现方式中,所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU进行热插入初始化,包括:所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU在所述机器物理地址执行所述热插入初始化代码,从而完成实模式到保护模式的转换;所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU在所述第一物理地址执行所述热插入初始化代码,从而完成从所述Primary操作系统实例的空间到Secondary操作系统实例的空间的转换;所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU在所述第二物理地址执行所述热插入初始化代码,并执行处理器暂停指令HLT。结合第一个方面、第一个方面的第一种或第二种可能的实现方式,在第一个方面的第三种可能的实现方式中,所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码之前,还包括:所述Primary操作系统实例判断所述Secondary操作系统实例中的CPU数量是否小于预设的阀值;若小于,则所述Primary操作系统实例为所述Secondary操作系统实例选择所述目标CPU。结合第一个方面的第三种可能的实现方式,在第一个方面的第四种可能的实现方式中,所述Primary操作系统实例为所述Secondary操作系统实例选择所述目标CPU,包括:所述Primary操作系统实例根据CPU分配状态位图,为所述Secondary操作系统实例选择所述目标CPU,所述CPU分配状态位图记录所述多处理器操作系统中的各CPU的分配状态。第二个方面,本专利技术实施例提供一种中央处理器热插拔的实现方法,适用于具有原始Primary操作系统实例与至少一个第二Secondary操作系统实例的多处理器操作系统,该方法包括:所述Secondary操作系统实例清空目标CPU上的工作队列,以使得所述目标CPU执行处理器暂停指令HLT;所述Secondary操作系统实例将所述目标CPU标识为空闲CPU;所述Secondary操作系统实例向所述Primary操作系统实例发送所述目标CPU的标识,以使得所述Primary操作系统实例将所述目标CPU存储到所述多处理系统的CPU资源池。在第二个方面的第一种可能的实现方式中,所述Secondary操作系统实例清空目标CPU上的工作队列,以使得所述目标CPU执行处理器暂停指令HLT之前,包括:所述Secondary操作系统实例选择目标中央处理器CPU;结合第二个方面或第二个方面的第一种可能的实现方式中,所述Secondary操作系统实例将所述目标CPU标识为空闲CPU之后,所述Secondary操作系统实例向所述Primary操作系统实例发送所述目标CPU的标识之前,包括:所述Secondary操作系统实例判断是否需要将所述目标CPU返回给所述Primary操作系统实例;Secondary操作系统实例向Primary操作系统实例发送目标CPU的标识,包括:若Secondary操作系统实例判断出需要将目标CPU返回给Primary操作系统实例,则向所述Primary操作系统实例发送目标CPU的标识。第三个方面,本专利技术实施例提供一种中央处理器热插拔的实现装置,包括:配置模块本文档来自技高网
...
中央处理器热插拔的实现方法及装置

【技术保护点】
一种中央处理器热插拔的实现方法,其特征在于,适用于具有原始Primary操作系统实例与至少一个第二Secondary操作系统实例的多处理器操作系统,该方法包括: 所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码,所述热插入初始化代码包括在所述Secondary操作系统中插入目标中央处理器CPU时,所述目标CPU进行热插入所需的功能性代码; 所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU进行热插入初始化,所述热插入初始化为所述目标CPU进行热插入时的初始化过程; 所述Primary操作系统实例检测所述目标CPU是否完成所述热插入初始化; 若所述Primary操作系统实例检测到所述目标CPU完成所述热插入初始化,则向所述Secondary操作系统实例发送中断,以使所述Secondary操作系统实例热插入所述目标CPU。

【技术特征摘要】
1.一种中央处理器热插拔的实现方法,其特征在于,适用于具有原始Primary操作系统实例与至少一个第二Secondary操作系统实例的多处理器操作系统,该方法包括:所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码,所述热插入初始化代码包括在所述Secondary操作系统中插入目标中央处理器CPU时,所述目标CPU进行热插入所需的功能性代码;所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU进行热插入初始化,所述热插入初始化为所述目标CPU进行热插入时的初始化过程;所述Primary操作系统实例检测所述目标CPU是否完成所述热插入初始化;若所述Primary操作系统实例检测到所述目标CPU完成所述热插入初始化,则向所述Secondary操作系统实例发送中断,以使所述Secondary操作系统实例热插入所述目标CPU。2.根据权利要求1所述的方法,其特征在于,所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码,包括:所述Primary操作系统实例在所述Primary操作系统实例的机器物理地址配置所述热插入初始化代码;所述Primary操作系统实例在所述Secondary操作系统实例的第一物理地址配置所述热插入初始化代码,所述第一物理地址为低地址;所述Primary操作系统实例在所述Secondary操作系统实例的第二物理地址配置所述热插入初始化代码,所述第二物理地址为低地址,所述第一物理地址与所述第二物理地址为不同的低地址。3.根据权利要求2所述的方法,其特征在于,所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU进行热插入初始化,包括:所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU在所述机器物理地址执行所述热插入初始化代码,从而完成实模式到保护模式的转换;所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU在所述第一物理地址执行所述热插入初始化代码,从而完成从所述Primary操作系统实例的空间到Secondary操作系统实例的空间的转换;所述Primary操作系统实例向所述目标CPU发送处理器间中断IPI,以触发所述目标CPU在所述第二物理地址执行所述热插入初始化代码,并执行处理器暂停指令HLT。4.根据权利要求1~3任一项所述的方法,其特征在于,所述Primary操作系统实例为所述Secondary操作系统实例配置热插入初始化代码之前,还包括:所述Primary操作系统实例判断所述Secondary操作系统实例中的CPU数量是否小于预设的阀值;若小于,则所述Primary操作系统实例为所述Secondary操作系统实例选择所述目标CPU。5.根据权利要求4所述的方法,所述Primary操作系统实例为所述Secondary操作系统实例选择所述目标CPU,包括:所述Primary操作系统实例根据CPU分配状态位图,为所述Secondary操作系统实例选择所述目标CPU,所述CPU分配状态位图记录所述多处理器操作系统中的各CPU的分配状态。6.一种中央处理器热插拔的实现方法,其特征在于,适用于具有原始Primary操作系统实例与至少一个第二Secondary操作系统实例的多处理器操作系统,该方法包括:所述Secondary操作系统实例清空目标CPU上的工作队列,以使得所述目标CPU执行处理器暂停指令HLT;所述Secondary操作系统实例将所述目标CPU标识为空闲CPU;所述Secondary操作系统实例向所述Primary操作系统实例发送所述目标CPU的标识,以使得所述Primary操作系统实例将所述目标CPU存储到所述多处理系统的CPU资源池。7.根据权利要求6所述的方法,其特征在于,所述Secondary操作系统实例清空目标CPU上的工作队列,以使得所述目标CPU执行处理器暂停指令HLT之前,包括:所述Secondary操作系统实例选择目标中央处理器CPU。8.根据权利要求6或7所述的方法,其...

【专利技术属性】
技术研发人员:薛栋梁解壁伟高云伟詹剑锋
申请(专利权)人:华为技术有限公司 中国科学院计算技术研究所
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1