- 论坛徽章:
- 6
|
回复 4# jian9158101
我的CPU是双核的,当我用echo 0 > /sys/devices/system/cpu/cpu1/online将CPU1 Down掉后,用TOP查看状态发现所有的CPU内核线程原本在CPU1上的,都移到了CPU0,而原本在CPU1的用户进程则全部睡眠
我在想有什么办法可以将用户进程也全部移到CPU0上,然后在Down掉CPU1,用taskset貌似只能一个一个的设定比较不方便
你确定CPU1的用户进程睡眠了?cpu offline的时候是不区分用户进程的,所有的进程都会迁移到其他CPU上的。
echo "0" > /sys/devices/system/cpu/cpu1/online 对应的内核代码如下:
static SYSDEV_ATTR(online, 0644, show_online, store_online);
store_online-->cpu_down-->_cpu_down-->__cpu_notify-->....
-->__stop_machine-->stop_cpus-->__stop_cpus-->stop_machine_cpu_stop-->take_cpu_down-->__cpu_disable-->native_cpu_disable-->cpu_disable_common.... |
|