Установить сходство потоков в модуле ядра Linux

Как известно большинству программистов на C, libc предоставляет непереносимые функции для настройки привязки потоков к процессорам (pthread_attr_setaffinity_np()). Тем не менее, я не знаю, как это можно сделать при реализации модуля ядра. Любой ответ, который упоминает или перенаправляет на некоторые реальные примеры, был бы весьма полезен.

2 ответа

Вы должны использовать kthreads, который обозначает потоки ядра. Чтобы создать такой на указанном процессоре, вы должны вызвать kthread_create_on_cpu(), Определяется в include/linux/kthread.h, Поток будет создан в состоянии сна, поэтому вы должны позвонить wake_up_process() в теме. Это все.

Вы можете получить один пример использования kthreads в моем ответе на этот вопрос.

Вы можете использовать функцию kthread_bind().

Другие вопросы по тегам