我在多个内核线程上设置 CPU 亲和性时遇到问题。该内核是 6 核 Intel 上禁用超线程的 3.19(SMP 100Hz)的变体。我设置了isolcpus=1-5。目的是让这些内核处于 dyntick 模式(卸载 RCU 和中断)。
启动多个线程后,使用掩码 3f 运行(即 Cpus 允许 0-5)...
在手动对不应该受 Cpu 约束的 pid 进行任务分配后,我留下了以下内容,taskset -pc 0 pid 总是给我“无效掩码”(EINVAL)。cpuset 没有编译到内核中:
khelper , perf , writeback , crypto , bioset , kblockd , devfreq_wq , rpciod , nfsiod , deferwq , kworker/u12:1 , scsi_tmf_0 , scsi_tmf_1 , scsi_tmf_2 , scsi_tmf_3 , kworker/u12:4 , ext4-rsv-conver , ext4-转换, ext4-rsv-convere
该发行版是 Ubuntu 14.04。有谁知道为什么 isolcpus 不起作用以及为什么这些线程不能移动到给定的核心?
先感谢您。