我调用内核函数sched_setaffinity(),试图用CPU锁定内核线程,但它总是失败,错误号22显示"无效参数"。该机器运行Fedora 15,内核版本为2.6.38。
如果传入了一个非内核tid,那么这个调用就成功了。这是内核的限制,还是有一些调整可以使其工作?
任何使用kthread_bind()
绑定到特定CPU的内核线程都不能更改其关联性。不过,对于其他内核线程来说,这应该是可能的。
在设置映射并将其传递给sched_setaffinity
之前,请确保将其归零。
CPU_ZERO(&mask);