From: Jason Baron <jbaron@redhat.com>
To: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
linux-kernel@vger.kernel.org, x86@kernel.org,
lethal@linux-sh.org, mingo@elte.hu, laijs@cn.fujitsu.com,
peterz@infradead.org, jiayingz@google.com, mbligh@google.com,
lizf@cn.fujitsu.com, jistone@redhat.com, tglx@linutronix.de,
hpa@zytor.com
Subject: Re: [PATCH 2/4] Add NR_syscalls for x86_64
Date: Tue, 25 Aug 2009 16:58:29 -0400 [thread overview]
Message-ID: <20090825205829.GG2656@redhat.com> (raw)
In-Reply-To: <20090825190415.GB8474@Krystal>
On Tue, Aug 25, 2009 at 03:04:15PM -0400, Mathieu Desnoyers wrote:
> * Jason Baron (jbaron@redhat.com) wrote:
> > On Tue, Aug 25, 2009 at 09:40:05AM -0400, Jason Baron wrote:
> > > > > On Mon, Aug 24, 2009 at 05:40:18PM -0400, Jason Baron wrote:
> > > > > > Add a dynamic definition of NR_syscalls for x86_64. This is used in the
> > > > > > syscall events tracing code.
> > > > > >
> > > > > > Signed-off-by: Jason Baron <jbaron@redhat.com>
> > > > > >
> > > > > > ---
> > > > > > include/linux/ftrace.h | 5 +++++
> > > > > > 1 files changed, 5 insertions(+), 0 deletions(-)
> > > > > >
> > > > > > diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h
> > > > > > index dc3b132..3bd94ee 100644
> > > > > > --- a/include/linux/ftrace.h
> > > > > > +++ b/include/linux/ftrace.h
> > > > > > @@ -14,6 +14,11 @@
> > > > > >
> > > > > > #include <asm/ftrace.h>
> > > > > >
> > > > > > +#ifdef CONFIG_X86_64
> > > > > > +#include <asm/asm-offsets.h>
> > > > > > +#define NR_syscalls (__NR_syscall_max + 1)
> > > > > > +#endif
> > > > > > +
> > > > >
> > > > >
> > > > > I'd rather see this in arch/x86/include/unistd_64.h, since
> > > > > NR_syscalls seems to be the defined in unistd.h in all archs.
> > > > >
> > > > > That also makes a unified way to retrieve this number for
> > > > > other users.
> > > > >
> > > >
> > > > Yes, NR_syscalls should be included there.
> > > >
> > > > -- Steve
> > >
> > > right, for x86_64, unistd.h is included to generate __NR_syscall_max
> > > which is then used for NR_syscalls. So I did initially try it there, but
> > > there were dependency problems. I'll see what I can come up with...
> > >
> > > thanks,
> > >
> > > -Jason
> >
> > ok, since unistd_64.h is used to generate offsets.c, which eventually
> > generates, asm/asm-offsets.h, which defines, __NR_syscall_max, we can't
> > just put #define of NR_syscalls in unistd_64.h. However, it seems the
> > only point in time that unistd_64.h can not depend upon __NR_syscall_max,
> > is before asm/asm-offsets.h is defined. Thus, the patch below passes in
> > a '-DCREATE_OFFSETS' during the creation of asm/asm-offsets.h, so that
> > we do not include it before it exists. The patch is hacky but works.
> > thoughts?
>
> Ugh! My eyes hurt!
>
sorry :)
> What you are doing here is to basically put back the hardcoded
> NR_syscalls rather that using the build infrastructure already in place.
>
no. NR_syscalls is not hardcoded by this patch. Its defined in terms of
__NR_syscall_max which is dynamically generated by the kernel build.
> If my memory serves me well, unistd_64.h generates __NR_syscall_max
> automatically by being included multiples times. Can we generalize this
> and make the information generated available in an automaticaly
> generated header instead ? It is saved in ams-offsets.h currently as
> "__NR_syscall_max". We could also save it somewhere else meant to be
> included by C code.
>
> Mathieu
>
The request was to define NR_syscalls in unistd.h, since that is the
historical Linux location for it. Adding another automatically generated
header does not accomplish that. Even if I include that new file in
unistd.h, I'm still going to have a circular dependency, and require a
solution similar to what I've proposed.
thanks,
-Jason
next prev parent reply other threads:[~2009-08-25 21:00 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-24 21:40 [PATCH 0/4] use NR_syscalls instead of FTRACE_SYSCALL_MAX Jason Baron
2009-08-24 21:40 ` [PATCH 1/4] add NR_syscalls define for x86 Jason Baron
2009-08-24 22:05 ` Paul Mundt
2009-08-25 13:37 ` Jason Baron
2009-08-28 12:28 ` [tip:tracing/core] tracing: Define NR_syscalls for x86 (32) tip-bot for Jason Baron
2009-08-24 21:40 ` [PATCH 2/4] Add NR_syscalls for x86_64 Jason Baron
2009-08-24 22:14 ` Frederic Weisbecker
2009-08-24 22:44 ` Steven Rostedt
2009-08-25 13:40 ` Jason Baron
2009-08-25 18:47 ` Jason Baron
2009-08-25 19:04 ` Mathieu Desnoyers
2009-08-25 20:58 ` Jason Baron [this message]
2009-08-25 23:28 ` Mathieu Desnoyers
2009-08-25 23:38 ` Frederic Weisbecker
2009-08-26 2:25 ` Steven Rostedt
2009-08-26 13:58 ` Jason Baron
2009-08-26 14:39 ` Steven Rostedt
2009-08-26 16:09 ` Jason Baron
2009-08-26 16:21 ` Steven Rostedt
2009-08-26 16:29 ` Frederic Weisbecker
2009-08-26 16:24 ` Frederic Weisbecker
2009-08-28 12:28 ` [tip:tracing/core] tracing: Define " tip-bot for Jason Baron
2009-08-24 21:40 ` [PATCH 3/4] Convert event tracing code to NR_syscalls Jason Baron
2009-08-28 12:28 ` [tip:tracing/core] tracing: Convert event tracing code to use NR_syscalls tip-bot for Jason Baron
2009-08-24 21:40 ` [PATCH 4/4] remove FTRACE_SYSCALL_MAX definitions Jason Baron
2009-08-28 12:28 ` [tip:tracing/core] tracing: Remove " tip-bot for Jason Baron
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=20090825205829.GG2656@redhat.com \
--to=jbaron@redhat.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=jiayingz@google.com \
--cc=jistone@redhat.com \
--cc=laijs@cn.fujitsu.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mathieu.desnoyers@polymtl.ca \
--cc=mbligh@google.com \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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 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.