作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
出于性能原因,我想从给定的内核中分离出许多内核线程。其中一些我可以使用任务集移动,但有些我不能。
特别是我看到像 migration、watchdog、rcuc 等进程没有响应我重新绑定(bind)它们的尝试。
例如,如果我尝试重新绑定(bind)看门狗进程,我会得到以下信息:
# taskset -pc 0 207
pid 207's current affinity list: 0
sched_setaffinity: Invalid argument
failed to set pid 207's affinity.
出于性能原因,我怎样才能将它们从核心中移除,以便我可以正确地隔离它们?
我怀疑这些进程干扰了我的完整 dynticks 模式。
最佳答案
几个内核线程绑定(bind)到一个特定的内核,以实现 SMP 基础结构所需的功能,例如同步、中断处理等。例如,kworker
、migration
和 ksoftirqd
线程通常每个虚拟处理器有一个实例(例如 4 核 8-处理器上的 8 个线程)线程 CPU)。
您不能(也不应该能够)移动这些线程 - 没有它们,处理器将无法再被系统完全使用。
为什么正是你想要移动这些线程?
关于linux - 如何将某些内核线程绑定(bind)到给定的内核?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25450223/
我是一名优秀的程序员,十分优秀!