linux kernel cpu调度,多CPU与CPU间调度 - Linux 内核引导选项简介

[SMP]

nosmp

强制禁用SMP,这是个已被反对使用的旧选项

[SMP]

maxcpus=整数

最大允许使用的CPU核心数。”0″表示禁用SMP特性(等价于已被反对使用的旧”nosmp”选项),同时也禁用IO APIC;正整数”n”表示最大允许使用n个CPU核心。

[SMP]

nr_cpus=正整数

允许SMP内核支持的最大CPU核心数(等价于CONFIG_NR_CPUS)。配合CPU热插拔(CONFIG_HOTPLUG_CPU),可在运行时增加CPU数目。

cpu0_hotplug

强制允许CPU0(boot CPU)热插拔(CONFIG_BOOTPARAM_HOTPLUG_CPU0)。下列特性必须依赖于cpu0,所此选项应谨慎使用:

(1)从休眠状态(S3,S4)唤醒以及从运行状态进入休眠状态

(2)PIC中断,也就是某些情况下,关机和重启也会依赖于cpu0

[SMP]

additional_cpus=整数

[NUMA]

numa={off|noacpi}

off 关闭NUMA支持,也就是让所有内存都只属于同一个节点。

noacpi 不为NUMA解析ACPI SRAT表

[KNL]

numa_balancing={enable|disable}

启用/禁用NUMA均衡(CONFIG_NUMA_BALANCING),其默认值由CONFIG_NUMA_BALANCING_DEFAULT_ENABLED决定

[KNL,BOOT]

numa_zonelist_order={zone|node|default}

设置NUMA的zonelist顺序。这里设置的值还可以在运行中通过sysctl来修改。详见Documentation/sysctl/vm.txt

[KNL,SMP]

isolcpus=CPU编号列表

将列表中的CPU从内核SMP平衡和调度算法中剔除。

[注意]提出后并不是绝对不能再使用该CPU的,操作系统仍然可以强制指定特定的进程使用哪个CPU(可以通过taskset来做到)。

该选项的目的主要是用于实现特定cpu只运行特定进程的目的。

CPU编号从”0″开始计数,列表的表示方法有三种:

numA,numB,…,numN

numA-numN

以及上述两种表示方法的组合:

numA,…,numM-numN

例如:0,3,4-7,9

[KNL,SMP]

relax_domain_level={-1|0|1|2|3|4|5}

设置CPUSET调度域(sched domain)的默认级别。大于此级别的调度域层次将禁用闲时均衡和唤醒均衡,而其余级别的调度域都开启。

-1(默认值) 使用系统的默认值(取决于不同的硬件架构)或者由其他的请求确定,也就是不人为指定默认级别。

0 禁用所有调度域的闲时均衡和唤醒均衡

1 超线程域(siblings),也就是同一个物理核心内的不同超线程

2 核域(cores),也就是同一个物理CPU中不同的核心

3 节点域(node),对于NUMA系统来说就是同一个NUMA节点内,对于non-NUMA系统来说这是整个系统范围

4 节点组域(chunk of node),仅适用于NUMA系统,表示在一组特定的NUMA节点范围内

5 全系统(system wide),全部系统范围内

详见Documentation/cgroups/cpusets.txt文档

你可能感兴趣的:(linux,kernel,cpu调度)