可以通过echo 0 >> /sys/devices/system/cpu/cpu1/online 使一个cpu offline
可以通过echo 1 >> /sys/devices/system/cpu/cpu1/online 使一个cpu online
具体实现的逻辑如下:
在driver/base/cpu.c中注册cpu subsys
void __init cpu_dev_init(void)
{
if (subsys_system_register(&cpu_subsys, cpu_root_attr_groups))
panic("Failed to register CPU subsystem");
cpu_dev_register_generic();
}
其中
struct bus_type cpu_subsys = {
.name = "cpu",
.dev_name = "cpu",
.match = cpu_subsys_match,
#ifdef CONFIG_HOTPLUG_CPU
.online = cpu_subsys_online,
.offline = cpu_subsys_offline,
#endif
};
当通过echo 1 >> /sys/devices/system/cpu/cpu1/online 时候的会调用
cpu_subsys_online->cpu_up->do_cpu_up->_cpu_up 来wakecpu
可以通过echo 1 >> /sys/devices/system/cpu/cpu1/online 使一个cpu online
具体实现的逻辑如下:
在driver/base/cpu.c中注册cpu subsys
void __init cpu_dev_init(void)
{
if (subsys_system_register(&cpu_subsys, cpu_root_attr_groups))
panic("Failed to register CPU subsystem");
cpu_dev_register_generic();
}
其中
struct bus_type cpu_subsys = {
.name = "cpu",
.dev_name = "cpu",
.match = cpu_subsys_match,
#ifdef CONFIG_HOTPLUG_CPU
.online = cpu_subsys_online,
.offline = cpu_subsys_offline,
#endif
};
当通过echo 1 >> /sys/devices/system/cpu/cpu1/online 时候的会调用
cpu_subsys_online->cpu_up->do_cpu_up->_cpu_up 来wakecpu