On 30/09/2024 4:39 pm, Jan Beulich wrote: > On 30.09.2024 17:27, Andrew Cooper wrote: >> On 30/09/2024 4:09 pm, Jan Beulich wrote: >>> There's no point using alternative_io() when there are no outputs. >>> >>> No functional change. >>> >>> Signed-off-by: Jan Beulich <[email protected]> >>> >>> --- a/xen/arch/x86/flushtlb.c >>> +++ b/xen/arch/x86/flushtlb.c >>> @@ -286,11 +286,10 @@ void cache_flush(const void *addr, unsig >>> * + prefix than a clflush + nop, and hence the prefix is added >>> instead >>> * of letting the alternative framework fill the gap by appending >>> nops. >>> */ >>> - alternative_io("ds; clflush %[p]", >>> - "data16 clflush %[p]", /* clflushopt */ >>> - X86_FEATURE_CLFLUSHOPT, >>> - /* no outputs */, >>> - [p] "m" (*(const char *)(addr))); >>> + alternative_input("ds; clflush %[p]", >> Drop the ; as you're altering the line anyway? > Oh, sure. > >> Acked-by: Andrew Cooper <[email protected]> > Thanks. > >> However, switching to ds ds will avoid a trailing nop, so will be >> marginally better. > I don't think I understand, which may or may not be due to me not being > sure whether "ds ds" is a typo. What trailing NOP are you seeing? The > "ds" that's there already covers for the sole trailing NOP that would > otherwise result due to the "data16" prefix.
Oh of course. I can't count. Sorry for the noise. ~Andrew
