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
};
EXPORT_SYMBOL_GPL(cpu_subsys);
static struct attribute *cpu_root_attrs[] = { #ifdef CONFIG_ARCH_CPU_PROBE_RELEASE &dev_attr_probe.attr, &dev_attr_release.attr, #endif &cpu_attrs[0].attr.attr, &cpu_attrs[1].attr.attr, &cpu_attrs[2].attr.attr, &dev_attr_kernel_max.attr, &dev_attr_offline.attr, &dev_attr_isolated.attr, #ifdef CONFIG_NO_HZ_FULL &dev_attr_nohz_full.attr, #endif #ifdef CONFIG_GENERIC_CPU_AUTOPROBE &dev_attr_modalias.attr, #endif NULL };
static struct attribute_group cpu_root_attr_group = { .attrs = cpu_root_attrs, };
static const struct attribute_group *cpu_root_attr_groups[] = { &cpu_root_attr_group, NULL, };
本文介绍了Linux内核中CPU子系统的初始化过程及关键组件。详细解释了`__initcpu_dev_init`函数的作用,包括注册CPU子系统和服务。此外,还展示了`cpu_subsys`结构体的定义及其属性设置。
142

被折叠的 条评论
为什么被折叠?



