【发布时间】:2013-08-06 12:31:37
【问题描述】:
正如大多数 C 程序员所知道的那样,libc 为线程 cpu 亲和性调整提供了一个不可移植的函数 (pthread_attr_setaffinity_np())。但是,我真的不知道在实现内核模块时如何做到这一点。任何提及或重定向到一些真实示例的答案都会很有帮助。
【问题讨论】:
-
您能否更详细地解释一下:您想更改某个现有线程的亲和性还是从您的内核模块生成一个具有给定亲和性的新线程?你想以这种方式完成什么?这些信息可以帮助这里的专家为您解答。
-
抱歉,回答延迟。我想做的是在不同的内核上分别建立两个线程,这样我就可以对缓存一致性问题进行一些测量。为了使我的测量精确,我需要添加内联程序集,但我还必须禁用抢占。为此,我必须有一个用于该任务的 linux 内核模块。但是,对于这样的模块,libc 库是不可见的,因此我想查看哪个函数更改了 THREAD 的亲和力,而不是 LKM 中的 PROCESS。我希望这现在很清楚......
标签: kernel-module setthreadaffinitymask