问题:在ubuntu TX2平台上,将线程与6个arm核心中的一个绑定,想在运行时下解绑定,采用的方法是:
- 用get接口获取当前线程绑定的mask;
- 判断当前线程是否与某个核心绑定;
- 如果已经绑定,再调用CPU_CLR接口将该核心从mask中移除;
- 将第三步mask作为参数,调用setj接口重新绑定线程;
测试结果,发现线程一旦绑定了该核心,则无法解绑定。 猜测原因是线程在绑定该核心的时候,无其它可调度的cpu,故无法解绑定。
请问如何解绑?
问题:在ubuntu TX2平台上,将线程与6个arm核心中的一个绑定,想在运行时下解绑定,采用的方法是:
测试结果,发现线程一旦绑定了该核心,则无法解绑定。 猜测原因是线程在绑定该核心的时候,无其它可调度的cpu,故无法解绑定。
请问如何解绑?
http://man7.org/linux/man-pag...
第三步尝试直接用 sched_setaffinity( ... new_cpu_mask... ) ?
或者 CPU_OR() 先添加一个新的 cpu mask, 然后再 CPU_CLR() 掉 Old cpu mask?