如何在内核模块中设置进程的 CPU 亲和性?在用户模式下有一个系统调用 sched_setaffinity
,但我正在寻找等效的内核模式。
在Linux内核代码中,还有一个叫做sched_setaffinity
的函数。它是从 sys_sched_setaffinity
函数调用的,该函数由 system_call
调用。看起来,这就是我想要使用的功能。不过,它与系统调用同名这一事实让我有点不安。
但众所周知,最好的办法就是尝试一下。所以我做到了,并且我的模块已编译。但是,当我尝试加载模块时,它会提示名称 sched_setaffinity
未定义。
最佳答案
sched_setaffinity
未导出到模块。
如果你修改/usr/src/linux/kernel/sched.c
,你可以导致sched_setaffinity
被导出到模块。
long sched_setaffinity(pid_t pid, const struct cpumask *in_mask)
{
...
}
+EXPORT_SYMBOL_GPL(sched_setaffinity);
关于linux - 如何从 Linux 内核模式设置进程的亲和性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1151285/