All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes
@ 2011-01-15  1:04 Steven Rostedt
  2011-01-15  1:04 ` [PATCH 1/2] tracing: Only process module tracepoints once Steven Rostedt
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Steven Rostedt @ 2011-01-15  1:04 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker


Ingo,

Please pull the latest tip/perf/urgent tree, which can be found at:

  git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git
tip/perf/urgent


Lai Jiangshan (1):
      tracing: Remove syscall_exit_fields

Steven Rostedt (1):
      tracing: Only process module tracepoints once

----
 include/trace/events/module.h |   10 ++++++++++
 kernel/trace/trace_syscalls.c |   33 ++++++++++++---------------------
 2 files changed, 22 insertions(+), 21 deletions(-)


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

* [PATCH 1/2] tracing: Only process module tracepoints once
  2011-01-15  1:04 [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Steven Rostedt
@ 2011-01-15  1:04 ` Steven Rostedt
  2011-01-15  1:04 ` [PATCH 2/2] tracing: Remove syscall_exit_fields Steven Rostedt
  2011-01-15 14:23 ` [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Ingo Molnar
  2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2011-01-15  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Peter Zijlstra

[-- Attachment #1: 0001-tracing-Only-process-module-tracepoints-once.patch --]
[-- Type: text/plain, Size: 1931 bytes --]

From: Steven Rostedt <srostedt@redhat.com>

The commit:

 9f987b3141f086de27832514aad9f50a53f754
 tracing: Include module.h in define_trace.h

only solved half the problem. If the trace/events/module.h header is
included at the time of define_trace.h (or in ftrace.h within it),
the module.h TRACE_SYSTEM will override the current TRACE_SYSTEM
macro.

Since define_trace.h is included when CREATE_TRACE_POINTS is set,
and the first thing it does is to #undef CREATE_TRACE_POINTS,
by placing the module.h TRACE_SYSTEM inside a
 #ifdef CREATE_TRACE_POINTS
we can prevent it from overriding the TRACE_SYSTEM that is
being processed, and still process the module.h tracepoints
when the module code defines CREATE_TRACE_POINTS and includes
the trace/events/module.h header.

As with commit 9f987b3141, this is only an issue if module.h
is not included before the trace/events/<event>.h file is
included, which (luckily) has not happened yet.

Reported-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 include/trace/events/module.h |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/include/trace/events/module.h b/include/trace/events/module.h
index c7bb2f0..c6bae36 100644
--- a/include/trace/events/module.h
+++ b/include/trace/events/module.h
@@ -1,5 +1,15 @@
+/*
+ * Because linux/module.h has tracepoints in the header, and ftrace.h
+ * eventually includes this file, define_trace.h includes linux/module.h
+ * But we do not want the module.h to override the TRACE_SYSTEM macro
+ * variable that define_trace.h is processing, so we only set it
+ * when module events are being processed, which would happen when
+ * CREATE_TRACE_POINTS is defined.
+ */
+#ifdef CREATE_TRACE_POINTS
 #undef TRACE_SYSTEM
 #define TRACE_SYSTEM module
+#endif
 
 #if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ)
 #define _TRACE_MODULE_H
-- 
1.7.2.3



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

* [PATCH 2/2] tracing: Remove syscall_exit_fields
  2011-01-15  1:04 [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Steven Rostedt
  2011-01-15  1:04 ` [PATCH 1/2] tracing: Only process module tracepoints once Steven Rostedt
@ 2011-01-15  1:04 ` Steven Rostedt
  2011-01-15 14:23 ` [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Ingo Molnar
  2 siblings, 0 replies; 4+ messages in thread
From: Steven Rostedt @ 2011-01-15  1:04 UTC (permalink / raw)
  To: linux-kernel
  Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Lai Jiangshan

[-- Attachment #1: 0002-tracing-Remove-syscall_exit_fields.patch --]
[-- Type: text/plain, Size: 2982 bytes --]

From: Lai Jiangshan <laijs@cn.fujitsu.com>

There is no need for syscall_exit_fields as the syscall
exit event class can already host the fields in its structure,
like most other trace events do by default. Use that
default behavior instead.

Following this scheme, we don't need anymore to override the
get_fields() callback of the syscall exit event class either.

Hence both syscall_exit_fields and syscall_get_exit_fields() can
be removed.

Also changed some indentation to keep the following under 80
characters:

".fields		= LIST_HEAD_INIT(event_class_syscall_exit.fields),"

Acked-by: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
LKML-Reference: <4D301C0E.8090408@cn.fujitsu.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 kernel/trace/trace_syscalls.c |   33 ++++++++++++---------------------
 1 files changed, 12 insertions(+), 21 deletions(-)

diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index bac752f..b706529 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -23,9 +23,6 @@ static int syscall_exit_register(struct ftrace_event_call *event,
 static int syscall_enter_define_fields(struct ftrace_event_call *call);
 static int syscall_exit_define_fields(struct ftrace_event_call *call);
 
-/* All syscall exit events have the same fields */
-static LIST_HEAD(syscall_exit_fields);
-
 static struct list_head *
 syscall_get_enter_fields(struct ftrace_event_call *call)
 {
@@ -34,34 +31,28 @@ syscall_get_enter_fields(struct ftrace_event_call *call)
 	return &entry->enter_fields;
 }
 
-static struct list_head *
-syscall_get_exit_fields(struct ftrace_event_call *call)
-{
-	return &syscall_exit_fields;
-}
-
 struct trace_event_functions enter_syscall_print_funcs = {
-	.trace                  = print_syscall_enter,
+	.trace		= print_syscall_enter,
 };
 
 struct trace_event_functions exit_syscall_print_funcs = {
-	.trace                  = print_syscall_exit,
+	.trace		= print_syscall_exit,
 };
 
 struct ftrace_event_class event_class_syscall_enter = {
-	.system			= "syscalls",
-	.reg			= syscall_enter_register,
-	.define_fields		= syscall_enter_define_fields,
-	.get_fields		= syscall_get_enter_fields,
-	.raw_init		= init_syscall_trace,
+	.system		= "syscalls",
+	.reg		= syscall_enter_register,
+	.define_fields	= syscall_enter_define_fields,
+	.get_fields	= syscall_get_enter_fields,
+	.raw_init	= init_syscall_trace,
 };
 
 struct ftrace_event_class event_class_syscall_exit = {
-	.system			= "syscalls",
-	.reg			= syscall_exit_register,
-	.define_fields		= syscall_exit_define_fields,
-	.get_fields		= syscall_get_exit_fields,
-	.raw_init		= init_syscall_trace,
+	.system		= "syscalls",
+	.reg		= syscall_exit_register,
+	.define_fields	= syscall_exit_define_fields,
+	.fields		= LIST_HEAD_INIT(event_class_syscall_exit.fields),
+	.raw_init	= init_syscall_trace,
 };
 
 extern unsigned long __start_syscalls_metadata[];
-- 
1.7.2.3



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

* Re: [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes
  2011-01-15  1:04 [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Steven Rostedt
  2011-01-15  1:04 ` [PATCH 1/2] tracing: Only process module tracepoints once Steven Rostedt
  2011-01-15  1:04 ` [PATCH 2/2] tracing: Remove syscall_exit_fields Steven Rostedt
@ 2011-01-15 14:23 ` Ingo Molnar
  2 siblings, 0 replies; 4+ messages in thread
From: Ingo Molnar @ 2011-01-15 14:23 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: linux-kernel, Andrew Morton, Frederic Weisbecker,
	Thomas Gleixner, Peter Zijlstra, Arnaldo Carvalho de Melo


* Steven Rostedt <rostedt@goodmis.org> wrote:

> Ingo,
> 
> Please pull the latest tip/perf/urgent tree, which can be found at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace.git
> tip/perf/urgent
> 
> 
> Lai Jiangshan (1):
>       tracing: Remove syscall_exit_fields
> 
> Steven Rostedt (1):
>       tracing: Only process module tracepoints once
> 
> ----
>  include/trace/events/module.h |   10 ++++++++++
>  kernel/trace/trace_syscalls.c |   33 ++++++++++++---------------------
>  2 files changed, 22 insertions(+), 21 deletions(-)

Pulled, thanks a lot Steve!

	Ingo

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

end of thread, other threads:[~2011-01-15 14:23 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-15  1:04 [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Steven Rostedt
2011-01-15  1:04 ` [PATCH 1/2] tracing: Only process module tracepoints once Steven Rostedt
2011-01-15  1:04 ` [PATCH 2/2] tracing: Remove syscall_exit_fields Steven Rostedt
2011-01-15 14:23 ` [PATCH 0/2] [GIT PULL][2.6.38] tracing: clean ups and fixes Ingo Molnar

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.