On Tue, Oct 22, 2024 at 05:48:07AM +0000, Manali Shukla wrote:
> From: Manali Shukla <[email protected]>
>
> The Idle HLT Intercept feature allows for the HLT instruction
> execution by a vCPU to be intercepted by the hypervisor only if there
> are no pending events (V_INTR and V_NMI) for the vCPU. When the vCPU
> is expected to service the pending events (V_INTR and V_NMI), the Idle
> HLT intercept won’t trigger. The feature allows the hypervisor to
> determine if the vCPU is idle and reduces wasteful VMEXITs.
>
> In addition to the aforementioned use case, the Idle HLT intercept
> feature is also used for enlightened guests who aim to securely manage
> events without the hypervisor’s awareness. If a HLT occurs while
> a virtual event is pending and the hypervisor is unaware of this
> pending event (as could be the case with enlightened guests), the
> absence of the Idle HLT intercept feature could result in a vCPU being
> suspended indefinitely.
>
> Presence of Idle HLT intercept feature for guests is indicated via CPUID
> function 0x8000000A_EDX[30].
>
> Signed-off-by: Manali Shukla <[email protected]>
> Acked-by: Borislav Petkov (AMD) <[email protected]>
> ---
> arch/x86/include/asm/cpufeatures.h | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/x86/include/asm/cpufeatures.h
> b/arch/x86/include/asm/cpufeatures.h
> index dd4682857c12..7461a49e1045 100644
> --- a/arch/x86/include/asm/cpufeatures.h
> +++ b/arch/x86/include/asm/cpufeatures.h
> @@ -382,6 +382,7 @@
> #define X86_FEATURE_V_SPEC_CTRL (15*32+20) /* "v_spec_ctrl"
> Virtual SPEC_CTRL */
> #define X86_FEATURE_VNMI (15*32+25) /* "vnmi" Virtual NMI */
> #define X86_FEATURE_SVME_ADDR_CHK (15*32+28) /* SVME addr check */
> +#define X86_FEATURE_IDLE_HLT (15*32+30) /* "" IDLE HLT intercept */
Whoever commits this, you can remove the "" in the comment now as they're not
needed anymore.
Thx.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette