as most C programmers know libc gives a non portable functions for thread cpu affinity tuning (pthread_attr_setaffinity_np()). However, what I do not really know is how can this be done when implementing a kernel module. Any answer that mentions or redirects to some real examples would be rather helpful.
set thread affinity in a linux kernel module
4.9k Views Asked by user1533288 At
2
You should use kthreads, which stands for kernel threads. To create such on specified cpu, you should invoke
kthread_create_on_cpu()
. It is defined ininclude/linux/kthread.h
. Thread will be created in sleep state, so you should callwake_up_process()
on it. That's all.You can get one example of using kthreads in my answer in this question.