All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: x32-abi@googlegroups.com, "H.J. Lu" <hjl.tools@gmail.com>,
	GCC Development <gcc@gcc.gnu.org>,
	GNU C Library <libc-alpha@sourceware.org>,
	LKML <linux-kernel@vger.kernel.org>,
	"H. Peter Anvin" <hpa@linux.intel.com>
Subject: Re: X32 psABI status
Date: Sun, 13 Feb 2011 23:57:29 +0100	[thread overview]
Message-ID: <201102132357.29725.arnd@arndb.de> (raw)
In-Reply-To: <4D585F5F.6030708@zytor.com>

On Sunday 13 February 2011, H. Peter Anvin wrote:
> We prototyped using the int $0x80 system call entry point.  However,
> there are two disadvantages:
> 
> a. the int $0x80 instruction is much slower than syscall.  An actual
>    i386 process can use the syscall instruction which is disambiguated
>    by the CPU based on mode, but an x32 process is in the same CPU mode
>    as a normal 64-bit process.

Well, you could simply change entry.S to allow syscall with high numbers
to have the same effect as int $0x80, but not introduce another table
to solve this.

> b. 64-bit arguments have to be split between two registers for the
>    i386 entry points, requiring user-space stubs.

64 bit arguments are very rare, and most of those syscalls are not
performance critical, so this could be dealt with on a case-by-case
basis, possibly by introducing a new syscall number for the variant
passing a 64 bit register.

> All in all, the cost of an extra system call table is quite modest.

The memory size overhead may be small, but auditing another table
for every change could become a noticable burden (your though, not mine).

> The cost of an entire different ABI layer (supporting a new memory layout)
> would be enormous, a.k.a. "not worth it", which is why the memory layout
> of kernel objects needs to be compatible with i386.

Right, this makes sense, you certainly can't redefine all the data
structures. 

What would probably be a good idea is to compare the set of syscalls
in X32 and asm-generic, and to either eliminate or document the
differences. You can probably even take the asm-generic syscall numbers,
even if you keep the i386 data structures.

	Arnd

  reply	other threads:[~2011-02-13 22:57 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-12 19:41 X32 psABI status H.J. Lu
2011-02-12 21:10 ` Florian Weimer
2011-02-12 21:29   ` H.J. Lu
2011-02-12 23:04   ` H. Peter Anvin
2011-02-13  3:02     ` Andrew Pinski
2011-02-13  8:48     ` Florian Weimer
2011-02-13 13:45       ` H.J. Lu
2011-02-13 15:07         ` Florian Weimer
2011-02-13 15:13           ` H.J. Lu
2011-02-13 15:21             ` Florian Weimer
2011-02-13 15:37               ` H.J. Lu
2011-02-13 16:35             ` Petr Baudis
2011-02-13 16:48               ` H.J. Lu
2011-02-13 17:37               ` Joseph S. Myers
2011-02-13 15:43           ` Maciej W. Rozycki
2011-02-13 15:57             ` H.J. Lu
2011-02-13 20:10 ` Arnd Bergmann
2011-02-13 21:10   ` H.J. Lu
2011-02-13 21:16     ` H. Peter Anvin
2011-02-13 21:28       ` H.J. Lu
2011-02-13 22:03         ` H. Peter Anvin
2011-02-13 22:12           ` H.J. Lu
2011-02-13 21:33       ` Alan Cox
2011-02-14  1:52         ` H. Peter Anvin
2011-02-13 22:27       ` H. Peter Anvin
2011-02-13 22:28       ` Arnd Bergmann
2011-02-13 22:46         ` H. Peter Anvin
2011-02-13 22:57           ` Arnd Bergmann [this message]
2011-02-13 23:03             ` H.J. Lu
2011-02-13 23:39           ` Alan Cox
2011-02-13 23:50             ` H.J. Lu
2011-02-14  1:59             ` H. Peter Anvin

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=201102132357.29725.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=gcc@gcc.gnu.org \
    --cc=hjl.tools@gmail.com \
    --cc=hpa@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=x32-abi@googlegroups.com \
    /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.