Re: [PATCH v3] x86/cpu: Use SERIALIZE in sync_core() when available

From: Dave Hansen
Date: Thu Aug 06 2020 - 19:08:54 EST


On 8/6/20 4:04 PM, Ricardo Neri wrote:
> * CPUID is the conventional way, but it's nasty: it doesn't
> * exist on some 486-like CPUs, and it usually exits to a
> * hypervisor.
> *
> * The SERIALIZE instruction is the most straightforward way to
> * do this as it does not clobber registers or exit to a
> * hypervisor. However, it is not universally available.
> *
> * Like all of Linux's memory ordering operations, this is a
> * compiler barrier as well.
> */
>
> What do you think?

I like what I suggested. :)

SERIALIZE is best where available. Do it first, comment it by itself.

Then, go into the long discussion of the other alternatives. They only
make sense when SERIALIZE isn't there, and the logic for selection there
is substantially more complicated.