Как установить сходство процесса из режима ядра Linux?

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

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

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

1 ответ

Решение

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);
Другие вопросы по тегам