From: Thiemo Seufer <ths@networkno.de>
To: David Daney <ddaney@avtrex.com>
Cc: "Maciej W. Rozycki" <macro@linux-mips.org>,
Ralf Baechle <ralf@linux-mips.org>,
Richard Sandiford <rsandifo@nildram.co.uk>,
GCC Mailing List <gcc@gcc.gnu.org>,
linux-mips@linux-mips.org
Subject: Re: MIPS atomic memory operations (A.K.A PR 33479).
Date: Wed, 19 Sep 2007 19:12:33 +0100 [thread overview]
Message-ID: <20070919181233.GR9972@networkno.de> (raw)
In-Reply-To: <46F16142.1090600@avtrex.com>
David Daney wrote:
> Maciej W. Rozycki wrote:
>> On Wed, 19 Sep 2007, David Daney wrote:
>>> Currently, I (and thus GCC 4.3) am assuming that Linux emulates 'll',
>>> 'sc' and
>>> 'sync', If sync is not emulated, we would need to adjust the code
>>> generation
>>> so that it is not emitted on ISAs that don't support it.
>> While adding "sync" is trivial enough I may have a patch ready by
>> tomorrow, that will not change the existing userbase and I am not entirely
>> sure forcing such a hasty upgrade on people would be reasonable; likely
>> not.
>>>> A workaround for a CPU erratum fits within the "-mfix-*" option family
>>>> quite
>>>> well though.
>>> Do we know which CPUs require branch-likely?
>> The R10000; there is a note about it in <asm-mips/war.h> at
>> R10000_LLSC_WAR.
>>> I would be inclined to agree with adding a "-mfix-??" option.
>>>
>>> The only place where GCC's __sync_* primitives are generated without
>>> explicitly writing them into your program is in GCJ compiled java code
>>> that
>>> uses volatile fields.
>>>
>>> If we expect the use of the __sync_* primitives on CPUs that require
>>> branch-likely to be rare, we shouldn't penalize those trying to rid
>>> themselves
>>> of the beasts.
>> Another option is to depend on the setting of -mbranch-likely. By
>> default it is on only for the processors which implement it and do not
>> discourage it, i.e. these of the MIPS II, MIPS III and MIPS IV ISAs.
>
> This seems to be the most sensible option.
>
> I will try to work up the GCC patch tonight.
This means generic MIPS code (MIPS I) wil have broken atomic
intrinsics when run on modern MIPS machines.
Thiemo
next prev parent reply other threads:[~2007-09-19 18:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-19 0:12 MIPS atomic memory operations (A.K.A PR 33479) David Daney
2007-09-19 2:32 ` Daniel Jacobowitz
2007-09-19 8:45 ` Thiemo Seufer
2007-09-19 16:58 ` Ralf Baechle
2007-09-19 17:07 ` Maciej W. Rozycki
2007-09-19 17:26 ` David Daney
2007-09-19 17:46 ` Maciej W. Rozycki
2007-09-19 17:49 ` David Daney
2007-09-19 18:12 ` Thiemo Seufer [this message]
2007-09-19 18:28 ` Ralf Baechle
2007-09-19 17:47 ` David Daney
2007-09-19 18:08 ` Maciej W. Rozycki
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=20070919181233.GR9972@networkno.de \
--to=ths@networkno.de \
--cc=ddaney@avtrex.com \
--cc=gcc@gcc.gnu.org \
--cc=linux-mips@linux-mips.org \
--cc=macro@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=rsandifo@nildram.co.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.