到目前为止,我的应用程序在其配置文件中请求隔离的cpu列表。然后它使用pthread_setaffinity_np()
来强制在那种cpu上运行。通常,制作配置文件的人进入文件/boot/grub/menu.lst
并选择正确的条目,以便知道当前的隔离cpu列表是什么。
title CentOS (2.6.32-431.5.1.el6.x86_64)
root (hd0,1)
kernel ... isolcpus=4-15
所以,我想避免那个人必须在配置文件中手动输入该列表。我的应用程序是否有可能以编程方式获取该列表??
答案 0 :(得分:3)
仅以非常倒退的方式 - / proc / cmdline具有当前内核命令行,您可以解析该命令行以获取内核启动的参数,包括isolcpus
答案 1 :(得分:1)
cat /sys/devices/system/cpu/isolated
答案 2 :(得分:-1)
根据我的经验,PID 1绑定到非隔离CPU,因此隔离CPU的列表将是所有CPU减去该列表。
# cat /proc/cmdline
... isolcpus=2-7 ...
# taskset -p 1 | awk '{print $NF}'
3
# cat /sys/devices/system/cpu/online
0-7