2009-07-20 18 views
5

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

Linuxカーネルコードには、sched_setaffinityという機能もあります。 system_callによって呼び出されるsys_sched_setaffinity関数から呼び出されます。それが見えるものから、これは私が使いたい機能です。システムコールと同じ名前であるという事実は私には少し不安です。

しかし、われわれが知っているように、するのが一番良いのは、それを試してみることです。そうして、私のモジュールがコンパイルされました。しかし、モジュールをロードしようとすると、名前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

これはそうです。私が取り組んでいることの性質上、カーネルを修正することは現実的ではありません。それでも、ありがとう。 –

関連する問題