由于大多数C程序员都知道libc为线程cpu关联性调优(pthread_attr_setaffinity_np())提供了非可移植函数。但是,我不知道的是在实现内核模块时如何实现这一点。任何提及或重定向到某些实例的答案都会很有帮助。在Linux内核模块中设置线程关联
5
A
回答
3
您应该使用kthreads,它代表内核线程。要在指定的cpu上创建此类应用程序,您应该调用kthread_create_on_cpu()
。它在include/linux/kthread.h
中定义。线程将在睡眠状态下创建,因此您应该在其上调用wake_up_process()
。就这样。
你可以在我的回答this问题中得到一个使用kthreads的例子。
0
您可以使用kthread_bind()函数。
相关问题
- 1. Linux内核模块的处理器关联设置?
- 2. 关于linux内核模块
- 3. Linux内核模块中的内核线程之间的通信
- 4. Linux内核模块配置
- 5. Linux内核模块编程
- 6. 使用OpenMP在两个内核上设置线程关联
- 7. 在Linux内核模块中线程本地数据
- 8. 在内核模式下设置进程关联
- 9. 在Linux内核中设置模块的许可证
- 10. 在Linux内核模块中设置动态变量
- 11. 在Linux内核模块中设置处理器亲和力
- 12. 关闭源码Linux内核模块?
- 13. linux内核模块字符设备
- 14. Linux内核模块的位置
- 15. Linux内核和我的内核模块
- 16. 在Python中开发Linux内核模块
- 17. 在Linux内核模块中使用RPC
- 18. Linux内核模块调试
- 19. Linux内核模块编译
- 20. Linux内核模块ABI(x86)
- 21. 安装Linux内核模块
- 22. 从Linux内核模块
- 23. Linux内核模块编译
- 24. 剖析Linux内核模块
- 25. Linux内核模块编程:makefile
- 26. Linux内核模块编程Makefile错误
- 27. Linux内核模块编程Makefile
- 28. 在Linux内核(模块编程)中如何从多线程进程获取threadids?
- 29. 如何在Linux内核模块中延迟关键部分
- 30. 如何在内核模块中打印linux内核版本号
能否请你详细解释一下:你想改变一些现有线程的亲和性,或者从你的内核模块产生一个给定的亲和力的新线程?你想以这种方式完成什么?这些信息可能会帮助这里的专家给你答案。 – Eugene
对不起,延迟的答案。我想要做的是在不同的内核上分别建立两个线程,以便对缓存一致性问题进行一些测量。为了使我的测量精确,我需要添加内联汇编,但我也必须禁用抢占。要做到这一点,我必须拥有一个用于该任务的Linux内核模块。然而,对于这样的模块,libc库是不可见的,因此我想看看哪个函数改变了THREAD的亲和性,而不是LKM中的PROCESS。我希望现在清楚... – user1533288