Re: [PATCHv6 16/16] x86/acpi: Add support for CPU offlining for ACPI MADT wakeup method

From: Huang, Kai
Date: Fri Jan 26 2024 - 09:21:46 EST


On Wed, 2024-01-24 at 14:55 +0200, Kirill A. Shutemov wrote:
> MADT Multiprocessor Wakeup structure version 1 brings support of CPU
> offlining: BIOS provides a reset vector where the CPU has to jump to
> for offlining itself. The new TEST mailbox command can be used to test
> whether the CPU offlined itself which means the BIOS has control over
> the CPU and can online it again via the ACPI MADT wakeup method.
>
> Add CPU offling support for the ACPI MADT wakeup method by implementing
> custom cpu_die(), play_dead() and stop_this_cpu() SMP operations.
>
> CPU offlining makes is possible to hand over secondary CPUs over kexec,
> not limiting the second kernel to a single CPU.
>
> The change conforms to the approved ACPI spec change proposal. See the
> Link.
>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>
> Link: https://lore.kernel.org/all/13356251.uLZWGnKmhe@kreacher

FWIW:

Acked-by: Kai Huang <kai.huang@xxxxxxxxx>

[...]

> +
> +static int __init acpi_mp_setup_reset(u64 reset_vector)
> +{
> + pgd_t *pgd;
> + struct x86_mapping_info info = {
> + .alloc_pgt_page = alloc_pgt_page,
> + .free_pgt_page = free_pgt_page,
> + .page_flag = __PAGE_KERNEL_LARGE_EXEC,
> + .kernpg_flag = _KERNPG_TABLE_NOENC,
> + };

Nit: Reverse Christmas-tree style

[...]

>
> -#define ACPI_MP_WAKE_COMMAND_WAKEUP 1
> +#define ACPI_MP_WAKE_COMMAND_WAKEUP 1

Nit: Is this change intended?

> +#define ACPI_MP_WAKE_COMMAND_TEST 2
>