On Tue, 2023-10-10 at 10:24 +0000, Huang, Kai wrote: > > /* Physical address of the Multiprocessor Wakeup Structure mailbox */ > > @@ -74,6 +75,9 @@ int __init acpi_parse_mp_wake(union acpi_subtable_headers *header, > > > > > > acpi_mp_wake_mailbox_paddr = mp_wake->base_address; > > > > > > + /* Disable CPU onlining/offlining */ > > + cpu_hotplug_not_supported(); > > + > > Both onlining/offlining are prevented, or just offlining? > > The previous patch says: > > It does not prevent the initial bring up of the CPU, but it stops > subsequent offlining. > > And ... > > [...] > > > > --- a/kernel/cpu.c > > +++ b/kernel/cpu.c > > @@ -1522,7 +1522,7 @@ static int cpu_down_maps_locked(unsigned int cpu, enum cpuhp_state target) > > * If the platform does not support hotplug, report it explicitly to > > * differentiate it from a transient offlining failure. > > */ > > - if (cc_platform_has(CC_ATTR_HOTPLUG_DISABLED) || !cpu_hotplug_supported) > > + if (!cpu_hotplug_supported) > > return -EOPNOTSUPP; > > if (cpu_hotplug_disabled) > > return -EBUSY; > > ... here cpu_down_maps_locked() only prevents offlining if I am reading > correctly. > > Also, can we rename cpu_hotplug_supported to cpu_offline_supported to match the > behaviour better? > > Anyway, isn't it a little bit odd to have: > > if (!cpu_hotplug_supported) > return -EOPNOTSUPP; > if (cpu_hotplug_disabled) > return -EBUSY; > > ? I probably have missed something important, but I don't quite understand what's the reason to have the CC_ATTR_HOTPLUG_DISABLED at the beginning, and now replace it with cpu_hotplug_not_supported()? >From the changelog: Currently hotplug prevented based on the confidential computing attribute which is set for Intel TDX. But TDX is not the only possible user of the wake up method. CC_ATTR_HOTPLUG_DISABLED is only used by TDX guest, but MADT can be used by non- TDX guest too. Anyway, if the purpose is just to prevent CPU from going offline, can this be done by registering a cpuhp callback? static int madt_wakeup_offline_cpu(unsigned int cpu) { return -EOPNOTSUPP; } ... err = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN, "madt-wakeup", NULL, madt_wakeup_offline_cpu); if (err) { pr_err("Register CPU hotplug callback failed.\n"); /* BUG() ??? */ } This doesn't pollute the common CPU hotplug code, thus to me looks more clear? _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec