2009-07-20 38 views
5

如何在内核模块中设置进程的CPU关联?在用户模式下有一个系统调用sched_setaffinity,但我正在寻找内核模式的等价物。在内核模式下设置进程关联

在Linux内核代码中,还有一个名为sched_setaffinity的函数。它从sys_sched_setaffinity函数调用,该函数由system_call调用。从看起来,这是我想要使用的功能。不过,它与系统调用同名的事实让我有点不安。

但是我们都知道,最好的办法就是试试。所以我做了,我的模块编译。但是,当我尝试加载模块时,它抱怨名称sched_setaffinity未定义。

任何想法?

回答

2

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); 
+0

这似乎是它。由于我的工作性质,修改内核是不可行的。不过,非常感谢。 – 2009-07-20 18:52:03

相关问题