linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jason Baron <jbaron@redhat.com>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: linux-kernel@vger.kernel.org, mingo@elte.hu,
	laijs@cn.fujitsu.com, rostedt@goodmis.org, peterz@infradead.org,
	mathieu.desnoyers@polymtl.ca, jiayingz@google.com,
	mbligh@google.com, roland@redhat.com, fche@redhat.com
Subject: Re: [PATCH 6/7] add syscall tracepoints
Date: Fri, 19 Jun 2009 17:49:07 -0400	[thread overview]
Message-ID: <20090619214907.GC3260@redhat.com> (raw)
In-Reply-To: <20090619022825.GD7903@nowhere>

On Fri, Jun 19, 2009 at 04:28:26AM +0200, Frederic Weisbecker wrote:
> On Fri, Jun 12, 2009 at 05:25:04PM -0400, Jason Baron wrote:
> > Allow the return value of raw_init() to bail us out of creating a trace event
> > file.
> > 
> > Signed-off-by: Jason Baron <jbaron@redhat.com>
> > 
> > ---
> >  kernel/trace/trace_events.c |   29 +++++++++++++++++++----------
> >  1 files changed, 19 insertions(+), 10 deletions(-)
> > 
> > diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
> > index 9e91c4a..c0da5e2 100644
> > --- a/kernel/trace/trace_events.c
> > +++ b/kernel/trace/trace_events.c
> > @@ -907,15 +907,6 @@ event_create_dir(struct ftrace_event_call *call, struct dentry *d_events,
> >  	if (strcmp(call->system, TRACE_SYSTEM) != 0)
> >  		d_events = event_subsystem_dir(call->system, d_events);
> >  
> > -	if (call->raw_init) {
> > -		ret = call->raw_init();
> > -		if (ret < 0) {
> > -			pr_warning("Could not initialize trace point"
> > -				   " events/%s\n", call->name);
> > -			return ret;
> > -		}
> > -	}
> > -
> >  	call->dir = debugfs_create_dir(call->name, d_events);
> >  	if (!call->dir) {
> >  		pr_warning("Could not create debugfs "
> > @@ -1014,6 +1005,7 @@ static void trace_module_add_events(struct module *mod)
> >  	struct ftrace_module_file_ops *file_ops = NULL;
> >  	struct ftrace_event_call *call, *start, *end;
> >  	struct dentry *d_events;
> > +	int ret;
> >  
> >  	start = mod->trace_events;
> >  	end = mod->trace_events + mod->num_trace_events;
> > @@ -1029,7 +1021,15 @@ static void trace_module_add_events(struct module *mod)
> >  		/* The linker may leave blanks */
> >  		if (!call->name)
> >  			continue;
> > -
> > +		if (call->raw_init) {
> > +			ret = call->raw_init();
> > +			if (ret < 0) {
> > +				if (ret != -ENOSYS)
> 
> 
> 
> I see you've set it up in case syscall_to_nr doesn't find the
> matching metadata.
> 
> How is it possible? The traced syscalls, ie those which are defined through
> DEFINE_SYSCALLx(), should be all in the arch syscall table. Or may be I'm
> missing something?
> 

yes, I've been wondering about the same thing...I think the answer is
that DEFINE_SYSCALLx() is used to define some of the 'compat' layer ia32
syscalls. Thus, they show up as events to register but they are not in
the syscall table. I'm not sure if its easy to handle these at compile
time, but in any case that is where this case is coming from...

I've also notice that I forgot to define the meta data for
SYSCALL_DEFINE0 case...

thanks,

-Jason

  reply	other threads:[~2009-06-19 21:51 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-12 21:24 [PATCH 0/7] add syscall tracepoints Jason Baron
2009-06-12 21:24 ` [PATCH 1/7] " Jason Baron
2009-06-19  8:22   ` Li Zefan
2009-06-12 21:24 ` [PATCH 2/7] " Jason Baron
2009-06-19  3:24   ` Steven Rostedt
2009-06-19  8:26   ` Li Zefan
2009-06-12 21:24 ` [PATCH 3/7] " Jason Baron
2009-06-12 21:57   ` Mathieu Desnoyers
2009-06-15 14:12     ` Jason Baron
2009-06-15 15:24       ` Mathieu Desnoyers
2009-06-15 15:37         ` Frederic Weisbecker
2009-06-15 15:47           ` Mathieu Desnoyers
2009-06-19  1:59   ` Frederic Weisbecker
2009-06-19  3:29     ` Steven Rostedt
2009-06-19  3:40       ` Frederic Weisbecker
2009-06-12 21:24 ` [PATCH 4/7] " Jason Baron
2009-06-19  2:12   ` Frederic Weisbecker
2009-06-19 12:35     ` Mathieu Desnoyers
2009-06-19 14:56       ` Frederic Weisbecker
2009-06-19  8:31   ` Li Zefan
2009-06-12 21:24 ` [PATCH 5/7] " Jason Baron
2009-06-19  2:14   ` Frederic Weisbecker
2009-06-19  3:14     ` Li Zefan
2009-06-19  3:32       ` Steven Rostedt
2009-06-19  3:33       ` Frederic Weisbecker
2009-06-12 21:25 ` [PATCH 6/7] " Jason Baron
2009-06-19  2:28   ` Frederic Weisbecker
2009-06-19 21:49     ` Jason Baron [this message]
2009-06-12 21:25 ` [PATCH 7/7] " Jason Baron
2009-06-16 19:32 ` [PATCH 0/7] " Ingo Molnar
2009-06-18  2:21   ` Frederic Weisbecker
2009-06-19  3:07   ` Frederic Weisbecker

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=20090619214907.GC3260@redhat.com \
    --to=jbaron@redhat.com \
    --cc=fche@redhat.com \
    --cc=fweisbec@gmail.com \
    --cc=jiayingz@google.com \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=mbligh@google.com \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=roland@redhat.com \
    --cc=rostedt@goodmis.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).