【发布时间】:2015-08-12 10:09:58
【问题描述】:
在多个内核线程上设置 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-rsv-conver , ext4-rsv-convere
发行版是 Ubuntu 14.04。有谁知道为什么 isolcpus 不起作用以及为什么这些线程不能移动到给定的核心?
提前谢谢你。
【问题讨论】:
标签: linux multiprocessing real-time smp preemptive