在linux内核模块中设置线程关联

use*_*288 5 kernel-module setthreadaffinitymask

因为大多数C程序员都知道libc为线程cpu亲和性调优提供了一个非可移植的函数(pthread_attr_setaffinity_np()).但是,我真正不知道的是在实现内核模块时如何做到这一点.任何提及或重定向到一些真实示例的答案都会非常有用.

Ale*_*lko 3

您应该使用kthreads,它代表内核线程。要在指定的 cpu 上创建此类,您应该调用kthread_create_on_cpu(). 它定义在include/linux/kthread.h. 线程将在睡眠状态下创建,因此您应该调用wake_up_process()它。就这样。

您可以在我对这个问题的回答中找到一个使用 kthreads 的示例。