|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.11] x86: Use spec_ctrl_{enter, exit}_idle() in the S3/S5 path
>>> On 18.04.18 at 12:43, <andrew.cooper3@xxxxxxxxxx> wrote:
> This avoids opencoding the functionality (and missing one bit of it), and and
> some comments explaining what is going on.
Missing which bit of it? The MSR writes aren't strictly necessary afaict, and
functionally clearing bti_ist_info is all that's needed for the entry path of
interest, while clearing use_shadow_spec_ctrl is all that's needed for the
exit-to-Xen path. Hence I'm don't see (yet) what bug it is you think this
fixes.
Also s/and$/add/.
> --- a/xen/arch/x86/acpi/power.c
> +++ b/xen/arch/x86/acpi/power.c
> @@ -213,7 +213,8 @@ static int enter_state(u32 state)
> error = 0;
>
> ci = get_cpu_info();
> - ci->use_shadow_spec_ctrl = 0;
> + spec_ctrl_enter_idle(ci);
> + /* Avoid NMI/#MC using MSR_SPEC_CTRL until we've reloaded microcode. */
> ci->bti_ist_info = 0;
>
> ACPI_FLUSH_CPU_CACHE();
> @@ -257,10 +258,9 @@ static int enter_state(u32 state)
> if ( !recheck_cpu_features(0) )
> panic("Missing previously available feature(s).");
>
> + /* Re-enabled default NMI/#MC use of MSR_SPEC_CTRL. */
> ci->bti_ist_info = default_bti_ist_info;
> - asm volatile (ALTERNATIVE("", "wrmsr", X86_FEATURE_XEN_IBRS_SET)
> - :: "a" (SPEC_CTRL_IBRS), "c" (MSR_SPEC_CTRL), "d" (0)
> - : "memory");
> + spec_ctrl_exit_idle(ci);
The use of "idle" methods is a slight abuse here (fundamentally "idle" is
about C states), but yes, perhaps in a way a system in S3/S5 can be
viewed sort of (in a heavyweight way) idle.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |