核心hibernate时,pthread_setaffinity_np失败? 我怎么把他们叫醒?

我在3.10.24 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,它的工作原理。

现在我认为这与我的问题有关 ,即使CPU有4个内核,以下指令也输出1。

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

我开始认为这两个问题是相关的。

所以我的猜测(由其中一个评论build议)是核心1,2,3保持睡着,我需要手动让他们醒来,然后请求调度程序把一些线程。

在这种情况下,您是否有任何想法在设置亲和力之前手动唤醒核心? 任何在Linux / Android上工作的解决scheme都可以。