Port-amd64 archive

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

Re: x86_64 and CX8

On 14.04.2020 18:48, Jonathan A. Kollasch wrote:
> 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.
> 	Jonathan

cmpxchg8b should be on everything that implements amd64. If not, it
would not boot even 32-bit Windows XP.

Home | Main Index | Thread Index | Old Index