Установить сходство потоков в модуле ядра Linux
Как известно большинству программистов на C, libc предоставляет непереносимые функции для настройки привязки потоков к процессорам (pthread_attr_setaffinity_np()). Тем не менее, я не знаю, как это можно сделать при реализации модуля ядра. Любой ответ, который упоминает или перенаправляет на некоторые реальные примеры, был бы весьма полезен.
2 ответа
Вы должны использовать kthreads, который обозначает потоки ядра. Чтобы создать такой на указанном процессоре, вы должны вызвать kthread_create_on_cpu()
, Определяется в include/linux/kthread.h
, Поток будет создан в состоянии сна, поэтому вы должны позвонить wake_up_process()
в теме. Это все.
Вы можете получить один пример использования kthreads в моем ответе на этот вопрос.