From: "H. Peter Anvin" <hpa@zytor.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: mingo@elte.hu, "eric.dumazet@gmail.com" <eric.dumazet@gmail.com>,
tglx@linutronix.de, luca@luca-barbieri.com,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] ix86: atomic64 assembly improvements
Date: Wed, 18 Jan 2012 09:47:20 -0800 [thread overview]
Message-ID: <4F1705A8.301@zytor.com> (raw)
In-Reply-To: <4F170679020000780006D85B@nat28.tlf.novell.com>
On 01/18/2012 08:50 AM, Jan Beulich wrote:
>>
>> It's atomic in the same way a MOV is atomic.
>
> Then please point me to where this is documented.
>
> As I understand it, there is nothing keeping the CPU (or something
> down the bus) from executing the unlocked version as two 32-bit
> reads followed by two 32-bit writes.
>
>> The CPU could, in fact, execute the locked version at all if the
>> unlocked version didn't behave like that.
>
> Assuming you meant "could not", that's not true: As long as the
> external world has a way to know that both items are locked (think
> of the old bus lock mechanism when there were no caches yet),
> it can very well do so.
>
> I do not question that in practice all CPUs behave as described,
> but without an architectural guarantee (and with the code in
> question not being used in hot paths afaik) I see no reason why
> it should depend on undefined behavior.
>
Sorry, Jan, if you want to play the documentation lawyer game then there
is very little that will get done. The code is increasingly being used
in warm/hot paths and that's actually fair, so I'd like to avoid
crapping it up.
There are, to my knowledge, only three companies which have brought
SMP-capable x86 processors to market: Intel, AMD, and VIA and the above
holds for them. A new vendor realistically can't bring a new processor
to market which violates a constraint that the existing processor
vendors have preserved.
It is somewhat implied in the SDM section 8.1.1 of volume 3A, but as
with many other things it's not written out specifically... I suspect
largely because the question hasn't been raised before.
-hpa
next prev parent reply other threads:[~2012-01-18 17:47 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-18 14:24 [PATCH 2/2] ix86: atomic64 assembly improvements Jan Beulich
2012-01-18 16:36 ` H. Peter Anvin
2012-01-18 16:50 ` Jan Beulich
2012-01-18 17:47 ` H. Peter Anvin [this message]
2012-01-19 9:18 ` Jan Beulich
2012-01-19 14:44 ` H. Peter Anvin
2012-01-19 14:50 ` Jan Beulich
2012-01-19 14:55 ` H. Peter Anvin
2012-01-19 14:59 ` H. Peter Anvin
2012-01-19 15:11 ` Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F1705A8.301@zytor.com \
--to=hpa@zytor.com \
--cc=JBeulich@suse.com \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=luca@luca-barbieri.com \
--cc=mingo@elte.hu \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox