Как установить сходство процесса из режима ядра Linux? - PullRequest
6 голосов
/ 20 июля 2009

Как можно установить привязку процессора к процессу в модуле ядра? В пользовательском режиме есть системный вызов sched_setaffinity, но я ищу эквивалент режима ядра.

В коде ядра Linux также есть функция с именем sched_setaffinity. Он вызывается из функции sys_sched_setaffinity, которая вызывается system_call. Из того, что кажется, это функция, которую я хочу использовать. Однако тот факт, что он имеет то же имя, что и системный вызов, вызывает у меня некоторое беспокойство.

Но, как мы все знаем, лучше всего просто попробовать. Я так и сделал, и мой модуль скомпилирован. Однако, когда я пытаюсь загрузить модуль, он жалуется, что имя sched_setaffinity не определено.

1 Ответ

2 голосов
/ 20 июля 2009

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);
...