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.
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 in include/linux/kthread.h
. Thread will be created in sleep state, so you should call wake_up_process()
on it. That's all.
You can get one example of using kthreads in my answer in this question.
You can use kthread_bind() function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With