当核心是睡着了pthread_setaffinity_np失败? 我怎样才能唤醒他们?(pthr

2019-10-21 03:01发布

我使用这样的结构与24年3月10日Linux内核的ARM机器

CPU_ZERO(&affinity);
CPU_SET(3, &affinity);

pthread_t thread = pthread_self();
iErr = pthread_setaffinity_np(thread, sizeof(cpu_set_t), &affinity);

IERR是22和pthread_setaffinity_np失败。 在x86代码工作完美。 如果我的线程关联性设置为核心0它的工作原理。

现在我认为这是关系到我的问题 ,以下说明输出1,即使CPU有4个内核。

iNumProc = sysconf(_NPROCESSORS_CONF);
iNumProc = get_nprocs();

我开始觉得两个问题是相关的。

所以我的想法(由一个评论建议)是核1,2,3保持睡眠状态,我需要手动问他们醒过来,然后求调度程序把一些线程他们。

在这种情况下,你有什么想法如何手动唤醒设置亲和力之前内核? 在Linux上工作的任何解决方案/ Android的就可以了。

文章来源: pthread_setaffinity_np fails when cores are asleep? How can i wake them up?