2009-07-20 77 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

相關問題