Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: x86_64 and CX8

On Tue, Apr 14, 2020 at 06:34:54PM +0200, Manuel Bouyer wrote:
> hello,
> is someone aware of a x86_64 CPU which does *not* support cmpxchg8b ?
> The instruction seems mandatory since i686-class CPUs, and it seems that
> since windows XP cmpxchg8b is not optional.
> in amd64/amd64/spl.S we have 2 implementations of spllower(), which seems
> overkill if all x86-64 CPUs supports cmpxchg8b ...
> The reason I'm asking is I want to switch XENPV to cmpxchg8b versions
> of spllower and mutex_exit, and we can't use x86_patch() here.

There are Core 2 chips that lack cmpxchg16b, but that's not the same
thing as cmpxchg8b.  Not sure about the early Netburst-based 64-bit
Intels or first-gen AMD Opterons... I should think they'd both have
cmpxchg8b, as that's only a pointer width, and atomic compare/exchange
on single pointer widths was a thing that would have been expected to
exist at the time the architecture was designed.


Home | Main Index | Thread Index | Old Index