All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/2] tracing/syscalls: Rename variable 'nr' to '__syscall_nr'
@ 2016-02-26 13:14 Taeung Song
  2016-02-26 13:57 ` [RFC] " Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 10+ messages in thread
From: Taeung Song @ 2016-02-26 13:14 UTC (permalink / raw)
  To: Steven Rostedt, Ingo Molnar
  Cc: Arnaldo Carvalho de Melo, linux-kernel, Jiri Olsa, Namhyung Kim,
	Taeung Song, Thomas Gleixner, Lai Jiangshan

There is a problem about duplicated variable name i.e.

    # cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_io_getevents/format
    name: sys_enter_io_getevents
    ID: 739
    format:
            field:unsigned short common_type; offset:0;  size:2; signed:0;
            field:unsigned char common_flags; offset:2;  size:1; signed:0;
            field:unsigned char common_preempt_count; offset:3; size:1; signed:0;
            field:int common_pid;offset:4;size:4;signed:1;
            field:int nr;                     offset:8;  size:4; signed:1;
            field:aio_context_t ctx_id;       offset:16; size:8; signed:0;
            field:long min_nr;                offset:24; size:8; signed:0;
            field:long nr;                    offset:32; size:8; signed:0;
            field:struct io_event * events;   offset:40; size:8; signed:0;
            field:struct timespec * timeout;  offset:48; size:8; signed:0;

            print fmt: "ctx_id: 0x%08lx, min_nr: 0x%08lx, nr: 0x%08lx,
                        events: 0x%08lx, timeout: 0x%08lx", ((unsigned long)(REC->ctx_id)),
                        ((unsigned long)(REC->min_nr)), ((unsigned long)(REC->nr)),
                        ((unsigned long)(REC->events)), ((unsigned long)(REC->timeout))

As above 'int nr;' and 'long nr;' variables have
duplicated name so problems are occurred in perf-script i.e.

    # perf record -e syscalls:*
    # perf script -g python
    # perf script -s perf-script.py
      File "perf-script.py", line 8694
        def syscalls__sys_enter_io_getevents(event_name, context, common_cpu,
    SyntaxError: duplicate argument 'nr' in function definition
    Error running python script perf-script.py

As above, problems about duplicated argument occurred.
Not only sys_enter_io_getevent() but also sys_enter_io_submit()
have relevevance to this problem.

So rename a variable 'nr' to '__syscall_nr' for system call number
in print_syscall_enter() and etc.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
---
 kernel/trace/trace.h          |  4 ++--
 kernel/trace/trace_syscalls.c | 16 ++++++++--------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index 8414fa4..98b3c66 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -88,13 +88,13 @@ enum trace_type {
  */
 struct syscall_trace_enter {
 	struct trace_entry	ent;
-	int			nr;
+	int			__syscall_nr;
 	unsigned long		args[];
 };
 
 struct syscall_trace_exit {
 	struct trace_entry	ent;
-	int			nr;
+	int			__syscall_nr;
 	long			ret;
 };
 
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 0655afb..90bb468 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -118,7 +118,7 @@ print_syscall_enter(struct trace_iterator *iter, int flags,
 	int i, syscall;
 
 	trace = (typeof(trace))ent;
-	syscall = trace->nr;
+	syscall = trace->__syscall_nr;
 	entry = syscall_nr_to_meta(syscall);
 
 	if (!entry)
@@ -164,7 +164,7 @@ print_syscall_exit(struct trace_iterator *iter, int flags,
 	struct syscall_metadata *entry;
 
 	trace = (typeof(trace))ent;
-	syscall = trace->nr;
+	syscall = trace->__syscall_nr;
 	entry = syscall_nr_to_meta(syscall);
 
 	if (!entry) {
@@ -261,7 +261,7 @@ static int __init syscall_enter_define_fields(struct trace_event_call *call)
 	int i;
 	int offset = offsetof(typeof(trace), args);
 
-	ret = trace_define_field(call, SYSCALL_FIELD(int, nr), FILTER_OTHER);
+	ret = trace_define_field(call, SYSCALL_FIELD(int, __syscall_nr), FILTER_OTHER);
 	if (ret)
 		return ret;
 
@@ -281,7 +281,7 @@ static int __init syscall_exit_define_fields(struct trace_event_call *call)
 	struct syscall_trace_exit trace;
 	int ret;
 
-	ret = trace_define_field(call, SYSCALL_FIELD(int, nr), FILTER_OTHER);
+	ret = trace_define_field(call, SYSCALL_FIELD(int, __syscall_nr), FILTER_OTHER);
 	if (ret)
 		return ret;
 
@@ -332,7 +332,7 @@ static void ftrace_syscall_enter(void *data, struct pt_regs *regs, long id)
 		return;
 
 	entry = ring_buffer_event_data(event);
-	entry->nr = syscall_nr;
+	entry->__syscall_nr = syscall_nr;
 	syscall_get_arguments(current, regs, 0, sys_data->nb_args, entry->args);
 
 	event_trigger_unlock_commit(trace_file, buffer, event, entry,
@@ -378,7 +378,7 @@ static void ftrace_syscall_exit(void *data, struct pt_regs *regs, long ret)
 		return;
 
 	entry = ring_buffer_event_data(event);
-	entry->nr = syscall_nr;
+	entry->__syscall_nr = syscall_nr;
 	entry->ret = syscall_get_return_value(current, regs);
 
 	event_trigger_unlock_commit(trace_file, buffer, event, entry,
@@ -579,7 +579,7 @@ static void perf_syscall_enter(void *ignore, struct pt_regs *regs, long id)
 	if (!rec)
 		return;
 
-	rec->nr = syscall_nr;
+	rec->__syscall_nr = syscall_nr;
 	syscall_get_arguments(current, regs, 0, sys_data->nb_args,
 			       (unsigned long *)&rec->args);
 	perf_trace_buf_submit(rec, size, rctx, 0, 1, regs, head, NULL);
@@ -652,7 +652,7 @@ static void perf_syscall_exit(void *ignore, struct pt_regs *regs, long ret)
 	if (!rec)
 		return;
 
-	rec->nr = syscall_nr;
+	rec->__syscall_nr = syscall_nr;
 	rec->ret = syscall_get_return_value(current, regs);
 	perf_trace_buf_submit(rec, size, rctx, 0, 1, regs, head, NULL);
 }
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2016-03-05  8:14 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-26 13:14 [PATCH v3 1/2] tracing/syscalls: Rename variable 'nr' to '__syscall_nr' Taeung Song
2016-02-26 13:57 ` [RFC] " Arnaldo Carvalho de Melo
2016-02-26 18:23   ` Steven Rostedt
2016-02-26 19:03     ` Arnaldo Carvalho de Melo
2016-02-27 16:10     ` Taeung Song
2016-02-27 18:34       ` Steven Rostedt
2016-02-28  7:43         ` Taeung Song
2016-03-05  8:13     ` [tip:perf/core] tracing/syscalls: Rename "/format" tracepoint field name "nr" to "__syscall_nr: tip-bot for Taeung Song
2016-02-27 15:13   ` [RFC] Re: [PATCH v3 1/2] tracing/syscalls: Rename variable 'nr' to '__syscall_nr' Peter Zijlstra
2016-02-29 14:21     ` Arnaldo Carvalho de Melo

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.