|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 2/2] x86/spec: adjust logic to logic that elides lfence
On Fri, Apr 19, 2024 at 08:25:00AM +0200, Jan Beulich wrote:
> On 18.04.2024 17:52, Roger Pau Monne wrote:
> > It's currently too restrictive by just checking whether there's a BHB
> > clearing
> > sequence selected. It should instead check whether BHB clearing is used on
> > entry from PV or HVM specifically.
> >
> > Switch to use opt_bhb_entry_{pv,hvm} instead, and then remove
> > cpu_has_bhb_seq
> > since it no longer has any users.
> >
> > Reported-by: Jan Beulich <jbeulich@xxxxxxxx>
> > Fixes: 954c983abcee ('x86/spec-ctrl: Software BHB-clearing sequences')
> > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>
> Except for the odd double "logic" in the title:
> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Thanks, title should be:
"adjust logic that elides lfence"
It was just a typo, I didn't intended to express anything additional.
> I can't really guess what is meant instead, so in order to possibly adjust
> while committing I'll need a hint. But committing will want to wait until
> Andrew has taken a look anyway, just like for patch 1.
>
> > There (possibly) still a bit of overhead for dom0 if BHB clearing is not
> > used
> > for dom0, as Xen would still add the lfence if domUs require it.
>
> Right, but what do you do.
>
> > --- a/xen/arch/x86/include/asm/cpufeature.h
> > +++ b/xen/arch/x86/include/asm/cpufeature.h
> > @@ -235,9 +235,6 @@ static inline bool boot_cpu_has(unsigned int feat)
> > #define cpu_bug_fpu_ptrs boot_cpu_has(X86_BUG_FPU_PTRS)
> > #define cpu_bug_null_seg boot_cpu_has(X86_BUG_NULL_SEG)
> >
> > -#define cpu_has_bhb_seq (boot_cpu_has(X86_SPEC_BHB_TSX) || \
> > - boot_cpu_has(X86_SPEC_BHB_LOOPS))
>
> Might be worth also mentioning in the description that this construct was
> lacking use of X86_SPEC_BHB_LOOPS_LONG (might even warrant a 2nd Fixes:
> tag).
Heh, no, X86_SPEC_BHB_LOOPS_LONG is added in addition to
X86_SPEC_BHB_LOOPS. When using long loops we have both
X86_SPEC_BHB_LOOPS and X86_SPEC_BHB_LOOPS_LONG set (I know it's
confusing, I was also confused the first time and asked Andrew the
same question). See the fallthrough in bhi_calculations().
Thanks, Roger.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |