Много постов на sched_setaffinity
, но почти нет при использовании этого в Пространстве ядра.
Я нахожусь на ядре 4.14.79.
Я пытался использовать метод User Space для вызова sched_setaffinity
в виде:
cpu_set_t my_set;
CPU_ZERO(&my_set);
CPU_SET(7, &my_set);
sched_setaffinity(0, sizeof(cpu_set_t), &my_set);
Но при попытке скомпилировать ядро я получил ошибки и понял, что эта форма не будет работать в пространстве ядра.
Я вижу, что sched_affinity
определен в sched.h
и имеет вид:
extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
Но я не совсем понимаю, как правильно создать параметр new_mask
с правильным номером ЦП. Документация на это не очень полезна.
Может ли кто-нибудь показать пример того, как использовать эту функцию в пространстве ядра для установки процесса на конкретный процессор?