Thread (73 messages) flat view 73 messages, 9 authors, 2016-06-27

[PATCH 01/23] all: syscall wrappers: add documentation

From: davem@davemloft.net (David Miller)
Date: 2016-05-25 20:21:51
Also in: linux-arch, linux-s390, lkml

From: Yury Norov <redacted>
Date: Wed, 25 May 2016 23:03:27 +0300
On Wed, May 25, 2016 at 12:30:17PM -0700, David Miller wrote:
quoted
From: Yury Norov <redacted>
Date: Tue, 24 May 2016 03:04:30 +0300
quoted
+To clear that top halves, automatic wrappers are introduced. They clear all
+required registers before passing control to regular syscall handler.
Why have one of these for every single compat system call, rather than
simply clearing the top half of all of these registers unconditionally
in the 32-bit system call trap before the system call is invoked?

That's what we do on sparc64.

And with that, you only need wrappers for the case where there needs
to be proper sign extention of a 32-bit signed argument.
It was discussed as one of possible solutions. The downside of it is
that we cannot pass 64-bit types (like off_t) in single register.
Wrappers can be added for the cases where you'd like to do that.
The other downside is that we clear top halves for every single
syscall, and it looks excessive. So, from spark64 and s390 approaches
we choosed second.
It's like 4 cpu cycles even on crappy sparc64 cpus which only dual
issue. :)

And that's a pretty low cost for the benefits if you ask me.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help