首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cset屏蔽后,sched_setaffinity失败

使用cset屏蔽后,sched_setaffinity失败
EN

Server Fault用户
提问于 2012-06-21 05:04:30
回答 1查看 1.2K关注 0票数 1

我正在使用cset shield创建一组cpus的用户屏蔽。

代码语言:javascript
复制
 cset shield --cpu 1,3,5,7 --kthread on

这背后的想法是为我的应用程序代码保留这些cpus,并将所有其他任务加上可移动的内核线程推到其他cpus上。

在我的应用程序中,我创建了4个线程,在每个线程的上下文中,尝试使用sched_setaffinity将每个线程固定在一个保留的cpus上。

代码语言:javascript
复制
int cpuNum = 1; // each thread gets one of the cpus
pid_t threadId = static_cast<pid_t>(syscall(SYS_gettid));

cpu_set_t cpuSet;
CPU_ZERO(&cpuSet);
CPU_SET(cpuNum, &cpuSet);

if (sched_setaffinity(threadId, sizeof(cpu_set_t), &cpuSet) == -1)
    perror("sched_setaffinity");

然而,sched_setaffinityInvalid argument上失败了

如果我使用cset shield --exec ./TestApp运行我的应用程序,那么钉扎就能工作。

为什么裸露的sched_setaffinity调用失败?

EN

回答 1

Server Fault用户

发布于 2012-06-21 05:29:38

您的应用程序代码看起来是正确的。快速地,在创建CPU屏蔽时,在没有--kthread on的情况下尝试这一点。查看是否有相同的“无效参数”错误。我想知道内核线程是否有问题。

这是RHEL吗?硬件设置(核的#)是什么?我看到了sched_setaffinity调用从Gentoo到Red系统的问题。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/400807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档