Linux内核对CPU热插拔的支持

本文详细介绍了Linux内核对CPU热插拔的支持,包括命令行设置、CPU位图及其相关问题,以及CPU热插拔的实现原理和应用场景。在Linux内核中,CPU热插拔技术允许在必要时移除或添加CPU,以实现系统资源的动态调整。文章还讨论了如何在内核中处理CPU的在线和离线操作,以及如何在用户空间响应CPU热插拔事件。
摘要由CSDN通过智能技术生成

CPU hotplug Support in Linux(tm) Kernel

 

                   Maintainers:

                   CPU Hotplug Core:

                            Rusty Russell <rusty@rustcorp.com.au>

                            Srivatsa Vaddagiri <vatsa@in.ibm.com>

                   i386:

                            Zwane Mwaikambo <zwane@arm.linux.org.uk>

                   ppc64:

                            Nathan Lynch <nathanl@austin.ibm.com>

                            Joel Schopp <jschopp@austin.ibm.com>

                   ia64/x86_64:

                            Ashok Raj <ashok.raj@intel.com>

                   s390:

                            Heiko Carstens <heiko.carstens@de.ibm.com>

 

Authors: Ashok Raj <ashok.raj@intel.com>

Lots of feedback: Nathan Lynch <nathanl@austin.ibm.com>,

              Joel Schopp jschopp@austin.ibm.com

翻译: Arethe Qin

 

引言

         系统体系结构上的现代高级特性使处理器具备了错误报告与错误更正的能力。CPU体系结构支持分区,这使得单个CPU的计算资源也能够满足虚拟机的需要。一些OEM已经支持了NUMA硬件的热插拔,物理节点的插入与移除需要处理器热插拔技术的支持。

         这种高级特性需要内核在必要时能移除正在使用的CPU.[provisioning reasons?]比如,为了RAS的需要,必须将一个执行恶意代码的CPU保持在系统执行路径之外。因此,在Linux内核中需要支持CPU热插拔技术。

         一个更具新意的CPU热插拔的应用是对SMP系统的挂起/恢复的支持。多核或HT技术使得在一台笔记本上也能运行SMP内核,但是目前的支持挂起/恢复的SMP技术还在研发中。

CPU 热插拔的一般概况

命令行设置

maxcpus=n

         在系统启动的CPU个数限制为n。如果你有4CPU,但maxcpus=2,就只能启动2CPU。但随后可以将更多的CPU加入到系统中,更多的信息可以在FAQ中获得。

additional_cpus=n (*)

         这个选项可以限制可热插拔的CPU的个数。通过这个选项,我们可以计算出系统能够支持的CPU的最大数目:

cpu_possible_map = cpu_present_map + additional_cpus

cede_offline = {"off","on"}

         在扩展的pseries平台上,此选项可以禁用/使能将一个离线处理器设为扩展的H_CEDE状态。如果没有特别说明,cede_offline默认被设为”on”

加(*)的选项仅适用于以下平台:

-ia64

         Ia64使用ACPIMADT表中被禁用的局部apic的数量来确定潜在的可热插拔CPU的数量。在实现中,仅应使用此方法获取CPU数目,决对不能依赖于上述表格中描述被禁用APIC数目的apicid的值。不能在BIOS中将这些可热插拔的CPU设为不可用的设备。参数"additional_cpus=x"可以用来描述cpu_possible_map中可热插拔的CPU

         possible_cpus=n

         [s390, x86_64]使用该选项来设置可热插拔的CPU。该选项设置了cpu_possible_map中的possible_cpu对应的位。因此,即使系统重启,也应保证此位图中的位的数量为常数。

 

CPU位图及相关的一些问题

[更多关于cpumaps及操作原语的信息,请关注include/linux/cpumask.h,该文件中包含了更多的信息。]

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值