演示将1核设置为强亲和性运行
- 将当前线程绑定到1核运行
LW_CLASS_CPUSET cpuset;
LW_CPU_ZERO(&cpuset);
LW_CPU_SET(1, &cpuset);
iRet = API_ThreadSetAffinity(API_ThreadIdSelf(), sizeof(cpuset), &cpuset);
- 配置1核只运行亲和线程
if (API_CpuGetSchedAffinity(sizeof(LW_CLASS_CPUSET), &cpuset)) {
printk("CPU strongly affinity schedule get fail: %s.\n",
lib_strerror(errno));
return (PX_ERROR);
}
if (!LW_CPU_ISSET(1, &cpuset)) {
LW_CPU_SET(1, &cpuset);
if (API_CpuSetSchedAffinity(sizeof(LW_CLASS_CPUSET), &cpuset)) {
printk("CPU strongly affinity schedule set fail: %s.\n",
lib_strerror(errno));
return (PX_ERROR);
}
}
上述配置之后,1核在调度时,将只会运行亲和线程,其他线程将不会分配到1核运行。