由於大多數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