6

カーネルモジュールでプロセスのCPUアフィニティを設定するにはどうすればよいですか? ユーザーモードには syscall がありますがsched_setaffinity、同等のカーネルモードを探しています。

Linux カーネル コードには、 という関数もありますsched_setaffinitysys_sched_setaffinityによって呼び出される関数から呼び出されsystem_callます。どうやら、これは私が使いたい機能です。システムコールと同じ名前なのがちょっと不安なんですけどね。

しかし、誰もが知っているように、最善の方法は試してみることです。それで私はそうしました、そして私のモジュールはコンパイルされました。ただし、モジュールをロードしようとすると、名前sched_setaffinityが未定義であると不平を言います。

4

1 に答える 1

3

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);
于 2009-07-20T02:28:14.350 に答える