From: Ralf Baechle <ralf@linux-mips.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: David Miller <davem@davemloft.net>,
linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
kernel@teksavvy.com, drepper@redhat.com,
torvalds@linux-foundation.org, munroesj@linux.vnet.ibm.com
Subject: Re: 64-syscall args on 32-bit vs syscall()
Date: Mon, 15 Mar 2010 14:44:49 +0100 [thread overview]
Message-ID: <20100315134449.GB1653@linux-mips.org> (raw)
In-Reply-To: <1268630313.2335.2.camel@pasglop>
On Mon, Mar 15, 2010 at 04:18:33PM +1100, Benjamin Herrenschmidt wrote:
> On Sun, 2010-03-14 at 22:06 -0700, David Miller wrote:
> > From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > Date: Mon, 15 Mar 2010 15:48:13 +1100
> >
> > > As it is, any 32-bit app using syscall() on any of the syscalls that
> > > takes 64-bit arguments will be broken, unless the app itself breaks up
> > > the argument, but the the order of the hi and lo part is different
> > > between BE and LE architectures ;-)
> >
> > I think it is even different on the same endian architectures,
> > f.e. mips I think.
MIPS passes arguments in the endian order that is low/high for little
endian rsp high/low for big endian.
> > There is no way to do this without some arch specific code
> > to handle things properly, really.
>
> Right, but to what extent ? IE. do we always need the callers using
> syscall() directly to know it all, or can we to some extent handle some
> of it inside glibc ?
>
> For example, if powerpc glibc is fixed so that syscall() takes a 64-bit
> first argument (or calls via some macro to add a dummy 32-bit argument),
> the register alignment will be preserved, and things will work just
> fine.
>
> IE. It may not fix all problems with all archs, but in this case, it
> will fix the common cases for powerpc at least :-) And any other arch
> that has the exact same alignment problem.
>
> Or is there any good reason -not- to do that in glibc ?
Syscall is most often used for new syscalls that have no syscall stub in
glibc yet, so the user of syscall() encodes this ABI knowledge. If at a
later stage syscall() is changed to have this sort of knowledge we break
the API. This is something only the kernel can get right.
Ralf
next prev parent reply other threads:[~2010-03-15 13:45 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-15 4:48 64-syscall args on 32-bit vs syscall() Benjamin Herrenschmidt
2010-03-15 4:48 ` Benjamin Herrenschmidt
2010-03-15 5:06 ` David Miller
2010-03-15 5:18 ` Benjamin Herrenschmidt
2010-03-15 5:54 ` David Miller
2010-03-15 20:22 ` Benjamin Herrenschmidt
2010-03-15 13:44 ` Ralf Baechle [this message]
2010-03-15 15:13 ` H. Peter Anvin
2010-03-15 16:00 ` Ulrich Drepper
2010-03-15 19:00 ` David Miller
2010-03-15 19:41 ` H. Peter Anvin
2010-03-15 20:35 ` Benjamin Herrenschmidt
2010-03-15 20:41 ` H. Peter Anvin
2010-03-16 21:56 ` Steven Munroe
2010-03-17 0:31 ` Benjamin Herrenschmidt
2010-03-17 0:31 ` Benjamin Herrenschmidt
2010-03-17 5:52 ` Ulrich Drepper
2010-03-17 8:56 ` Benjamin Herrenschmidt
2010-03-17 9:14 ` Ulrich Drepper
2010-03-17 10:13 ` Benjamin Herrenschmidt
2010-03-17 9:18 ` Jamie Lokier
2010-03-17 10:18 ` Benjamin Herrenschmidt
2010-03-17 18:30 ` H. Peter Anvin
2010-03-17 20:35 ` Benjamin Herrenschmidt
2010-03-17 20:53 ` H. Peter Anvin
2010-03-17 22:58 ` Benjamin Herrenschmidt
2010-03-17 22:58 ` Benjamin Herrenschmidt
2010-03-18 16:08 ` Steven Munroe
2010-03-18 16:21 ` Andreas Schwab
2010-03-18 16:21 ` Andreas Schwab
2010-03-18 17:03 ` Steven Munroe
2010-03-18 21:18 ` Benjamin Herrenschmidt
2010-03-19 1:22 ` Jamie Lokier
2010-03-15 20:27 ` Benjamin Herrenschmidt
2010-03-15 15:03 ` Steven Munroe
2010-03-15 20:32 ` Benjamin Herrenschmidt
2010-03-15 15:04 ` Jamie Lokier
2010-03-15 20:33 ` Benjamin Herrenschmidt
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=20100315134449.GB1653@linux-mips.org \
--to=ralf@linux-mips.org \
--cc=benh@kernel.crashing.org \
--cc=davem@davemloft.net \
--cc=drepper@redhat.com \
--cc=kernel@teksavvy.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=munroesj@linux.vnet.ibm.com \
--cc=torvalds@linux-foundation.org \
/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;
as well as URLs for NNTP newsgroup(s).