From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Andy Lutomirski <luto@amacapital.net>,
Roland McGrath <roland@hack.frob.com>,
Oleg Nesterov <oleg@redhat.com>,
linux-arch@vger.kernel.org, Peter Zijlstra <peterz@infradead.org>
Subject: [RFC][ATCH 0/3] sycalls: Remove args i and n from syscall_get_arguments()
Date: Mon, 07 Nov 2016 16:26:34 -0500 [thread overview]
Message-ID: <20161107212634.529267342@goodmis.org> (raw)
At Linux Plumbers, Andy Lutomirski approached me to tell me that the
syscall_get_arguments() implementation in x86 was horrible and gcc
certainly gets it wrong. He said that since the tracepoints only pass
in 0 and 6 for i and n repectively, it should be optimized for that case.
Inspecting the kernel, I discovered that all users pass in 0 for i and
only one file passing in something other than 6 for the number of arguments.
That code happens to be my own code used for the special syscall tracing.
That can easily be converted to just using 0 and 6 as well, and only copying
what is needed. Which is probably the faster path anyway for that case.
I haven't run the numbers (I can do that when I get some time), but since
pretty much all use cases use 0 and 6 and that would allow these functions
not to need strange logic to handle odd cases, I think this is still a win.
I haven't looked at removing those same parameters from syscall_set_arguments()
yet.
Thoughts?
-- Steve
Steven Rostedt (3):
ptrace: Remove maxargs from task_current_syscall()
tracing/syscalls: Pass in hardcoded '6' into syscall_get_arguments()
syscalls: Remove start and number from syscall_get_arguments() args
----
arch/arc/include/asm/syscall.h | 7 ++--
arch/arm/include/asm/syscall.h | 23 ++---------
arch/arm64/include/asm/syscall.h | 22 ++---------
arch/blackfin/include/asm/syscall.h | 22 +++++++----
arch/c6x/include/asm/syscall.h | 41 ++++----------------
arch/frv/include/asm/syscall.h | 26 +++----------
arch/h8300/include/asm/syscall.h | 34 ++++-------------
arch/hexagon/include/asm/syscall.h | 4 +-
arch/ia64/include/asm/syscall.h | 5 +--
arch/metag/include/asm/syscall.h | 4 +-
arch/microblaze/include/asm/syscall.h | 4 +-
arch/mips/include/asm/syscall.h | 3 +-
arch/mn10300/include/asm/syscall.h | 32 +++-------------
arch/nios2/include/asm/syscall.h | 42 ++++----------------
arch/openrisc/include/asm/syscall.h | 6 +--
arch/parisc/include/asm/syscall.h | 30 ++++-----------
arch/powerpc/include/asm/syscall.h | 8 ++--
arch/s390/include/asm/syscall.h | 11 +++---
arch/sh/include/asm/syscall_32.h | 26 +++----------
arch/sh/include/asm/syscall_64.h | 4 +-
arch/sparc/include/asm/syscall.h | 4 +-
arch/tile/include/asm/syscall.h | 4 +-
arch/um/include/asm/syscall-generic.h | 39 +++----------------
arch/x86/include/asm/syscall.h | 72 ++++++++---------------------------
fs/proc/base.c | 2 +-
include/asm-generic/syscall.h | 11 ++----
include/linux/ptrace.h | 4 +-
include/trace/events/syscalls.h | 2 +-
kernel/seccomp.c | 2 +-
kernel/trace/trace_syscalls.c | 10 +++--
lib/syscall.c | 22 ++++-------
31 files changed, 139 insertions(+), 387 deletions(-)
next reply other threads:[~2016-11-07 21:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-07 21:26 Steven Rostedt [this message]
2016-11-07 21:26 ` [RFC][ATCH 1/3] ptrace: Remove maxargs from task_current_syscall() Steven Rostedt
2016-11-07 23:51 ` Andy Lutomirski
2016-11-08 16:16 ` Linus Torvalds
2016-11-08 16:20 ` Andy Lutomirski
2016-11-08 19:48 ` Steven Rostedt
2016-11-08 21:06 ` Andy Lutomirski
2016-11-08 21:13 ` Steven Rostedt
2016-11-07 21:26 ` [RFC][ATCH 2/3] tracing/syscalls: Pass in hardcoded 6 into syscall_get_arguments() Steven Rostedt
2016-11-07 21:26 ` [RFC][ATCH 3/3] syscalls: Remove start and number from syscall_get_arguments() args Steven Rostedt
2016-11-07 23:54 ` Andy Lutomirski
2016-11-08 19:21 ` Steven Rostedt
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=20161107212634.529267342@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=mingo@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=roland@hack.frob.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).