ARM技术论坛
直播中

尚文清

8年用户 1710经验值
私信 关注
[问答]

线程与6个arm核心中的一个绑定请问如何解绑?

问题:在ubuntu TX2平台上,将线程与6个arm核心中的一个绑定,想在运行时下解绑定,采用的方法是:

  1. 用get接口获取当前线程绑定的mask;
  2. 判断当前线程是否与某个核心绑定;
  3. 如果已经绑定,再调用CPU_CLR接口将该核心从mask中移除;
  4. 将第三步mask作为参数,调用setj接口重新绑定线程;

测试结果,发现线程一旦绑定了该核心,则无法解绑定。 猜测原因是线程在绑定该核心的时候,无其它可调度的cpu,故无法解绑定。

请问如何解绑?

回帖(1)

王飞云

2022-9-7 14:26:04
尝试直接用 sched_setaffinity( ... new_cpu_mask... )

或者 CPU_OR() 先添加一个新的 cpu mask, 然后再 CPU_CLR() 掉 Old cpu mask
举报

更多回帖

发帖
×
20
完善资料,
赚取积分