From: Jun Sun <jsun@mvista.com>
To: "Maciej W. Rozycki" <macro@ds2.pg.gda.pl>
Cc: Florian Lohoff <flo@rfc822.org>,
ralf@oss.sgi.com, Pete Popov <ppopov@mvista.com>,
George Gensure <werkt@csh.rit.edu>,
linux-mips@oss.sgi.com
Subject: Re: MIPS_ATOMIC_SET again (Re: newest kernel
Date: Wed, 23 May 2001 10:38:50 -0700 [thread overview]
Message-ID: <3B0BF5AA.DE13EA3F@mvista.com> (raw)
In-Reply-To: Pine.GSO.3.96.1010523145044.3890B-100000@delta.ds2.pg.gda.pl
"Maciej W. Rozycki" wrote:
>
> On Tue, 22 May 2001, Jun Sun wrote:
>
> > I took a look of MIPS ABI in system V and found that the spec only specifies
> > this extended call in C prototype:
> >
> > int _test_and_set(int *p, int v);
> >
> > It seems perfectly legal for us to add one more argument to store the return
> > value while still have the function returns error. Of course, doing that will
> > break binary compatibility.
>
> We have _test_and_set() in the library. Implementing a clean underlying
> _test_and_set() syscall is very high on my to-do list -- lack of time
> prevents me from finishing it, unfortunately.
>
> There is no point to mess with sysmips() any further, I think. The
> library's _test_and_set() only calls sysmips() if the library was compiled
> for ISA I systems. As I guess from reports on the list, ISA I systems are
> a minority, mostly DECstations and possibly a few embedded systems. Most
> people have ISA II+ and they do not need to call any syscall from
> _test_and_set() at all. For ISA II+ systems the library implements
> _test_and_set() in the userland, using ll/sc appropriately.
>
> Anyone having ISA II+ systems only, please do yourself a favour and set
> "-mips2" (or maybe even "-mips3") somewhere in your CFLAGS for all
> compilations -- not only you'll get better optimized binaries, but you'll
> get rid of this sysmips() problem as well.
>
> > Otherwise, I think Flo's patch is the best fix to satisfy the spec and binary
> > compatibility although it is a little clunky.
>
> I'll have yet to look at the patch, but what I think is, we should get
> sysmips() work as defined by the original spec (or as reverse-engineered,
> as the real spec seems to be out of reach). Everything else belong to a
> separate implementation.
>
> Binary compatibility is not a necessity here. The only sysmips() client
> is glibc at the moment, and it can be updated to use a new syscall at any
> time.
>
> In short: let's leave sysmips() semantics alone.
>
Same old questions : Where is the definition of sysmips()? What is considered
standard implementation of sysmips() so that we can do reverse-engineering?
Irix?
Even if Irix is considered standard implementation of sysmips(), I wonder if
we need to mirror it. Here is my reasoning.
The sytem V ABI specifies _test_and_set() as the exntended system call.
Exactly how we achieve that is up to each implementation of the OS.
Therefore, for MIPS I system, we simply choose to call sysmips(NEW_ATOMIC_SET,
....) with three arguments. Any application that bypasses _test_and_set() and
calls sysmips() directly is running at its own risk of not being portable.
Of course, we need to fix glibc, which seems to be the only client that
matters at this moment.
In short, I think we DON"T have to maitain the semantic of sysmips(). My
understanding is that it is justed used to implement extended MIPS ABS calls.
As long as we get those calls implemented correctly, the exact sysmips()
semantic does not matter.
Did I misundertand something?
Along this line, I think I even favor "just change the current ATOMIC_SET"
approach.
Jun
next prev parent reply other threads:[~2001-05-23 17:41 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-05-21 22:45 newest kernel George Gensure
2001-05-21 23:10 ` Pete Popov
2001-05-21 23:23 ` Jun Sun
2001-05-21 23:25 ` Pete Popov
2001-05-22 12:33 ` Florian Lohoff
2001-05-22 17:04 ` George Gensure
2001-05-22 17:04 ` George Gensure
2001-05-22 22:46 ` MIPS_ATOMIC_SET again (Re: " Jun Sun
2001-05-23 6:37 ` Joe deBlaquiere
2001-05-23 13:34 ` Maciej W. Rozycki
2001-05-23 17:48 ` Joe deBlaquiere
2001-05-23 18:20 ` Kevin D. Kissell
2001-05-23 18:20 ` Kevin D. Kissell
2001-05-23 19:37 ` Maciej W. Rozycki
2001-05-23 23:49 ` Kevin D. Kissell
2001-05-23 23:49 ` Kevin D. Kissell
2001-05-24 4:11 ` Joe deBlaquiere
2001-05-24 10:56 ` Maciej W. Rozycki
2001-05-24 10:44 ` Maciej W. Rozycki
2001-05-24 15:15 ` Kevin D. Kissell
2001-05-24 15:15 ` Kevin D. Kissell
2001-05-24 16:21 ` Maciej W. Rozycki
2001-05-24 22:46 ` Joe deBlaquiere
2001-05-25 17:19 ` Maciej W. Rozycki
2001-05-25 22:02 ` Surprise! (Re: " Jun Sun
2001-05-25 23:56 ` Jun Sun
2001-05-28 15:34 ` Maciej W. Rozycki
2001-05-29 22:32 ` Jun Sun
2001-05-30 6:46 ` Kevin D. Kissell
2001-05-30 6:46 ` Kevin D. Kissell
2001-05-30 13:42 ` Maciej W. Rozycki
2001-05-30 17:39 ` Jun Sun
2001-05-31 8:37 ` Maciej W. Rozycki
2001-05-31 11:54 ` Ralf Baechle
2001-05-31 19:16 ` Jun Sun
2001-05-23 18:41 ` Jun Sun
2001-05-23 18:54 ` Florian Lohoff
2001-05-23 18:55 ` Florian Lohoff
2001-05-23 20:04 ` Joe deBlaquiere
2001-05-24 9:32 ` Maciej W. Rozycki
2001-05-26 13:14 ` Florian Lohoff
2001-05-28 15:37 ` Maciej W. Rozycki
2001-05-26 13:15 ` Florian Lohoff
2001-05-28 15:43 ` Maciej W. Rozycki
2001-05-28 16:25 ` Kevin D. Kissell
2001-05-28 16:25 ` Kevin D. Kissell
2001-05-28 17:10 ` Maciej W. Rozycki
2001-05-29 6:57 ` Geert Uytterhoeven
2001-05-29 10:45 ` Maciej W. Rozycki
2001-05-29 13:02 ` Joe deBlaquiere
2001-05-29 15:45 ` Mike McDonald
2001-05-30 1:32 ` Mike McDonald
2001-05-30 7:09 ` Kevin D. Kissell
2001-05-30 7:09 ` Kevin D. Kissell
2001-05-30 14:48 ` J. Scott Kasten
2001-05-30 14:48 ` J. Scott Kasten
2001-05-29 22:37 ` Jun Sun
2001-05-30 12:01 ` Maciej W. Rozycki
2001-05-30 17:54 ` Jun Sun
2001-05-31 7:39 ` Maciej W. Rozycki
2001-05-23 19:44 ` Maciej W. Rozycki
2001-05-24 4:25 ` Keith M Wesolowski
2001-05-23 21:06 ` Jun Sun
2001-05-23 19:29 ` Maciej W. Rozycki
2001-05-23 17:10 ` Jun Sun
2001-05-23 13:18 ` Maciej W. Rozycki
2001-05-23 17:38 ` Jun Sun [this message]
2001-05-23 18:47 ` Maciej W. Rozycki
2001-05-23 20:58 ` Jun Sun
2001-05-23 13:45 ` wrt irc joshua
2001-05-23 15:19 ` porting from headers Keith M Wesolowski
2001-05-23 15:55 ` wrt irc nick
2001-05-23 15:57 ` Keith M Wesolowski
2001-05-23 16:03 ` nick
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=3B0BF5AA.DE13EA3F@mvista.com \
--to=jsun@mvista.com \
--cc=flo@rfc822.org \
--cc=linux-mips@oss.sgi.com \
--cc=macro@ds2.pg.gda.pl \
--cc=ppopov@mvista.com \
--cc=ralf@oss.sgi.com \
--cc=werkt@csh.rit.edu \
/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.