From: Andreas Schwab <schwab@suse.de>
To: Hiroyuki Machida <machida@sm.sony.co.jp>
Cc: kaz@ashi.footprints.net, hjl@lucon.org, macro@ds2.pg.gda.pl,
libc-alpha@sources.redhat.com, linux-mips@oss.sgi.com
Subject: Re: [libc-alpha] Re: PATCH: Fix ll/sc for mips
Date: Fri, 01 Feb 2002 11:49:22 +0100 [thread overview]
Message-ID: <jebsf9bhot.fsf@sykes.suse.de> (raw)
In-Reply-To: <20020201.135903.123568420.machida@sm.sony.co.jp> (Hiroyuki Machida's message of "Fri, 01 Feb 2002 13:59:03 +0900 (JST)")
Hiroyuki Machida <machida@sm.sony.co.jp> writes:
|> From: Kaz Kylheku <kaz@ashi.footprints.net>
|> Subject: Re: [libc-alpha] Re: PATCH: Fix ll/sc for mips
|> Date: Thu, 31 Jan 2002 20:02:25 -0800 (PST)
|>
|> > On Fri, 1 Feb 2002, Hiroyuki Machida wrote:
|> > > Please note that "sc" may fail even if nobody write the
|> > > variable. (See P.211 "8.4.2 Load-Linked/Sotre-Conditional" of "See
|> > > MIPS RUN" for more detail.)
|> > > So, after your patch applied, compare_and_swap() may fail, even if
|> > > *p is equal to oldval.
|> >
|> > I can't think of anything that will break because of this, as long
|> > as the compare_and_swap eventually succeeds on some subsequent trial.
|> > If the atomic operation has to abort for some reason other than *p being
|> > unequal to oldval, that should be cool.
|>
|> I mean that this patch breaks the spec of compare_and_swap().
|>
|> In most case, this patch may works as Kaz said. If this patch have
|> no side-effect to any application, it's ok to apply the patch. But
|> we can't know how to use compare_and_swap() in all aplications in a
|> whole world. So we have to follow the spec.
There is no way to find out anything about intermediate values of *p when
compare_and_swap returns zero. The value of *p can change anytime, even
if it only was different from oldval just at the time compare_and_swap did
the comparison. So there is zero chance that a spurious failure of
compare_and_swap breaks anything.
Andreas.
--
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE GmbH, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
next prev parent reply other threads:[~2002-02-01 11:51 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-01-31 20:35 PATCH: Fix ll/sc for mips H . J . Lu
2002-01-31 22:17 ` Maciej W. Rozycki
2002-01-31 22:41 ` H . J . Lu
2002-02-01 3:35 ` Hiroyuki Machida
2002-02-01 4:02 ` [libc-alpha] " Kaz Kylheku
2002-02-01 4:02 ` Kaz Kylheku
2002-02-01 4:59 ` Hiroyuki Machida
2002-02-01 7:00 ` H . J . Lu
2002-02-01 11:12 ` Hiroyuki Machida
2002-02-01 10:49 ` Andreas Schwab [this message]
2002-02-01 11:23 ` Geoff Keating
2002-02-01 7:10 ` H . J . Lu
2002-02-01 7:17 ` H . J . Lu
2002-02-01 11:45 ` Maciej W. Rozycki
2002-02-01 18:29 ` PATCH: Fix ll/sc for mips (take 3) H . J . Lu
2002-02-01 23:01 ` Daniel Jacobowitz
2002-02-01 23:15 ` H . J . Lu
2002-02-02 2:37 ` Hiroyuki Machida
2002-02-04 9:32 ` Dominic Sweetman
2002-02-05 6:16 ` Jay Carlson
2002-02-05 8:28 ` Ralf Baechle
2002-02-05 15:10 ` Jay Carlson
2002-02-05 16:06 ` Jay Carlson
2002-02-02 3:26 ` Daniel Jacobowitz
2002-02-02 18:53 ` Justin Carlson
2002-02-02 20:03 ` H . J . Lu
2002-02-02 20:49 ` Hartvig Ekner
2002-02-02 20:49 ` Hartvig Ekner
2002-02-03 5:47 ` Justin Carlson
2002-02-04 19:17 ` Paul Koning
[not found] ` <mailpost.1012680250.7159@news-sj1-1>
2002-02-03 23:29 ` cgd
2002-02-04 6:07 ` Ralf Baechle
2002-02-04 9:46 ` Dominic Sweetman
2002-02-04 16:31 ` H . J . Lu
2002-02-04 16:46 ` Dominic Sweetman
2002-02-05 1:28 ` H . J . Lu
2002-02-05 2:58 ` Daniel Jacobowitz
2002-02-05 4:42 ` H . J . Lu
2002-02-05 4:47 ` Daniel Jacobowitz
2002-02-05 5:30 ` Justin Carlson
2002-02-05 8:39 ` Hartvig Ekner
2002-02-05 8:39 ` Hartvig Ekner
2002-02-05 11:37 ` Maciej W. Rozycki
2002-02-05 12:12 ` Ralf Baechle
2002-02-05 12:31 ` Maciej W. Rozycki
2002-02-05 12:38 ` Hartvig Ekner
2002-02-05 12:38 ` Hartvig Ekner
2002-02-05 13:28 ` Maciej W. Rozycki
2002-02-05 19:28 ` Hartvig Ekner
2002-02-05 19:28 ` Hartvig Ekner
2002-02-05 18:59 ` Ralf Baechle
2002-02-05 19:30 ` H . J . Lu
2002-02-05 21:54 ` H . J . Lu
2002-02-06 10:32 ` Ralf Baechle
2002-02-06 20:45 ` Why does -g turn off filling the delat slot? H . J . Lu
2002-02-06 21:00 ` PATCH: Modify the mips gas behavior for -g -O H . J . Lu
2002-02-06 21:16 ` Eric Christopher
2002-02-06 21:40 ` Ian Lance Taylor
2002-02-06 21:46 ` Eric Christopher
2002-02-06 22:00 ` PATCH: Define SUBTARGET_ASM_DEBUGGING_SPEC for Linux/mips H . J . Lu
2002-02-07 8:24 ` Eric Christopher
2002-02-06 11:37 ` PATCH: Fix ll/sc for mips (take 3) Maciej W. Rozycki
2002-02-04 17:44 ` cgd
2002-02-04 6:46 ` Ralf Baechle
2002-02-04 7:01 ` PATCH: Fix ll/sc for mips Ralf Baechle
2002-02-04 14:54 ` Maciej W. Rozycki
2002-02-01 11:50 ` Maciej W. Rozycki
2002-02-01 17:40 ` H . J . Lu
2002-02-01 21:41 ` Maciej W. Rozycki
2002-02-01 22:47 ` H . J . Lu
2002-02-02 11:06 ` Maciej W. Rozycki
2002-02-03 2:29 ` Ulrich Drepper
2002-02-03 2:29 ` Ulrich Drepper
2002-01-31 23:33 ` [libc-alpha] " Kaz Kylheku
2002-01-31 23:33 ` Kaz Kylheku
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=jebsf9bhot.fsf@sykes.suse.de \
--to=schwab@suse.de \
--cc=hjl@lucon.org \
--cc=kaz@ashi.footprints.net \
--cc=libc-alpha@sources.redhat.com \
--cc=linux-mips@oss.sgi.com \
--cc=machida@sm.sony.co.jp \
--cc=macro@ds2.pg.gda.pl \
/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.