作者wtchen (没有存在感的人)
看板LinuxDev
标题[问题] 请问是否可以强制多执行绪共用一个cpu
时间Thu Oct 20 21:41:26 2016
正在构思一个程式,load其实不是很重,但是有3-4个thread必须轮流对单一device存取
但是想做到lock-free+节省load+空出其他core做其他的事,
所以希望把该程式生出的所有的thread都集中在单一个core跑。
raspberry pi的case简单(本来就是single core),可是想在rp3上也这样做。
请问有在user space(pthread)实作的方法吗?
我在
http://fred-zone.blogspot.fr/2007/10/cpu.html 看到一个例子:
int main(void) {
cpu_set_t cmask;
unsigned long len = sizeof(cmask);
__CPU_ZERO(&cmask); /* 初始化 cmask */
__CPU_SET(0, &cmask); /* 指定第一个处理器 */
/* 设定自己由指定的处理器执行 */
if (!sched_setaffinity(0, len, &cmask)) {
printf("Could not set cpu affinity for current process.\n");
exit(1);
}
return 0;
}
请问在sched_setaffinity(0, len, &cmask) 之後,不管该程式分出多少thread
都会只在cpu 0 执行吗?
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 86.209.148.33
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1476970891.A.DEF.html
※ 编辑: wtchen (86.209.148.33), 10/20/2016 21:57:09
1F:→ clampsakura: 印象中要设定继承的属性 10/20 23:31
2F:→ clampsakura: search PTHREAD_INHERIT_SCHED 看是否有用~~ 10/20 23:33
3F:→ wtchen: 感谢~~ 10/20 23:35
4F:→ clampsakura: 我只有试过sched policy. cpu mask若有用在回一下吧 10/20 23:38
5F:→ wtchen: 请问要怎麽看哪颗CPU跑哪个process? 10/21 00:15
6F:→ mayasky: taskset 试试? 10/21 01:20
7F:→ wtchen: 懂了,感谢! 10/21 02:23
※ 编辑: wtchen (86.209.148.33), 10/23/2016 17:53:55