Re: [PATCH v6 14/42] x86/sev: Register GHCB memory when SEV-SNP is active

From: Borislav Petkov
Date: Thu Nov 04 2021 - 09:59:05 EST


On Wed, Nov 03, 2021 at 03:10:16PM -0500, Brijesh Singh wrote:
> Looking at the secondary CPU bring up path it seems that we will not be
> getting #VC until the early_setup_idt() is called. I am thinking to add
> function to register the GHCB from the early_setup_idt()
>
> early_setup_idt()
> {
> ...
> if (IS_ENABLED(CONFIG_MEM_ENCRYPT))
> sev_snp_register_ghcb()
> ...
> }
>
> The above will cover the APs

That will cover the APs during early boot as that is being called from
asm.

> and for BSP case I can call the same function just after the final IDT
> is loaded

Why after and not before?

> cpu_init_exception_handling()
> {
> ...
> ...
> /* Finally load the IDT */
> load_current_idt();
>
> if (IS_ENABLED(CONFIG_MEM_ENCRYPT))
> sev_snp_register_ghcb()
>
> }

That is also called on the APs - not only the BSP. trap_init() calls it
from start_kernel() which is the BSP and cpu_init_secondary() calls it
too, which is ofc the APs.

I guess that should be ok since you're calling the same function from
both but WTH do I know...

--
Regards/Gruss,
Boris.

https://people.kernel.org/tglx/notes-about-netiquette