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:55, Kamil Rytarowski wrote:
> 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.
>

According to GCC developers cmpxchg8b is on all 64-bit X86 CPUs.


Home | Main Index | Thread Index | Old Index