因为大多数C程序员都知道libc为线程cpu亲和性调优提供了一个非可移植的函数(pthread_attr_setaffinity_np())。但是,我真正不知道的是在实现内核模块时如何做到这一点。提及或重定向到一些真实示例的任何答案都会非常有用。
答案 0 :(得分:3)
您应该使用 kthreads ,它代表内核线程。要在指定的cpu上创建此类,您应该调用kthread_create_on_cpu()
。它在include/linux/kthread.h
中定义。线程将在睡眠状态下创建,因此您应该在其上调用wake_up_process()
。就是这样。
您可以在this问题的答案中找到一个使用kthreads的示例。
答案 1 :(得分:0)
您可以使用kthread_bind()函数。