LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Subject: [RFC][PATCH 04/17 v2] tracing: Give system name a pointer
Date: Wed, 01 Apr 2015 21:56:52 -0400	[thread overview]
Message-ID: <20150402020940.657972351@goodmis.org> (raw)
In-Reply-To: <20150402015648.249824760@goodmis.org>

[-- Attachment #1: 0004-tracing-Give-system-name-a-pointer.patch --]
[-- Type: text/plain, Size: 2555 bytes --]

From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>

Normally the compiler will use the same pointer for a string throughout
the file. But there's no guarantee of that happening. Later changes will
require that all events have the same pointer to the system string.

Name the system string and have all events point to it.

Testing this, it did not increases the size of the text, except for the
notes section, which should not harm the real size any.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 include/linux/ftrace_event.h |  2 +-
 include/trace/ftrace.h       | 19 +++++++++++++++++--
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index c674ee8f7fca..62b8fac7ded5 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -202,7 +202,7 @@ enum trace_reg {
 struct ftrace_event_call;
 
 struct ftrace_event_class {
-	char			*system;
+	const char		*system;
 	void			*probe;
 #ifdef CONFIG_PERF_EVENTS
 	void			*perf_probe;
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index 41bf65f04dd9..2f9b95b6d3fb 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -18,6 +18,21 @@
 
 #include <linux/ftrace_event.h>
 
+#ifndef TRACE_SYSTEM_VAR
+#define TRACE_SYSTEM_VAR TRACE_SYSTEM
+#endif
+
+#define __app__(x, y) str__##x##y
+#define __app(x, y) __app__(x, y)
+
+#define TRACE_SYSTEM_STRING __app(TRACE_SYSTEM_VAR,__trace_system_name)
+
+#define TRACE_MAKE_SYSTEM_STR()				\
+	static const char TRACE_SYSTEM_STRING[] =	\
+		__stringify(TRACE_SYSTEM)
+
+TRACE_MAKE_SYSTEM_STR();
+
 /*
  * DECLARE_EVENT_CLASS can be used to add a generic function
  * handlers for events. That is, if all events have the same
@@ -105,7 +120,6 @@
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
-
 /*
  * Stage 2 of the trace events.
  *
@@ -692,7 +706,7 @@ static inline void ftrace_test_probe_##call(void)			\
 _TRACE_PERF_PROTO(call, PARAMS(proto));					\
 static const char print_fmt_##call[] = print;				\
 static struct ftrace_event_class __used __refdata event_class_##call = { \
-	.system			= __stringify(TRACE_SYSTEM),		\
+	.system			= TRACE_SYSTEM_STRING,			\
 	.define_fields		= ftrace_define_fields_##call,		\
 	.fields			= LIST_HEAD_INIT(event_class_##call.fields),\
 	.raw_init		= trace_event_raw_init,			\
@@ -735,6 +749,7 @@ __attribute__((section("_ftrace_events"))) *__event_##call = &event_##call
 
 #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
 
+#undef TRACE_SYSTEM_VAR
 
 #ifdef CONFIG_PERF_EVENTS
 
-- 
2.1.4



  parent reply	other threads:[~2015-04-02  2:09 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-02  1:56 [RFC][PATCH 00/17 v2] tracing: Use TRACE_DEFINE_ENUM() to show enum values Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 01/17 v2] tracing: Add TRACE_SYSTEM_VAR to intel-sst Steven Rostedt
     [not found]   ` <CADRr18NOdH3rqLeK3aJBaQ5ZfQSPDYiLdkDNshzSvUwctR8EEQ@mail.gmail.com>
2015-04-02 13:32     ` Steven Rostedt
2015-04-02 13:33       ` Steven Rostedt
2015-04-02 13:40         ` Mark Brown
2015-04-02 13:49           ` Steven Rostedt
2015-04-02 13:59             ` Mark Brown
2015-04-02 14:03               ` Steven Rostedt
2015-04-02 14:28                 ` Mark Brown
2015-04-02  1:56 ` [RFC][PATCH 02/17 v2] tracing: Add TRACE_SYSTEM_VAR to kvm-s390 Steven Rostedt
2015-04-02  9:15   ` Cornelia Huck
2015-04-02  1:56 ` [RFC][PATCH 03/17 v2] tracing: Add TRACE_SYSTEM_VAR to xhci-hcd Steven Rostedt
2015-04-02  1:56 ` Steven Rostedt [this message]
2015-04-02  1:56 ` [RFC][PATCH 05/17 v2] tracing: Update trace-event-sample with TRACE_SYSTEM_VAR documentation Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 06/17 v2] tracing: Add TRACE_DEFINE_ENUM() macro to map enums to their values Steven Rostedt
2015-04-02  7:47   ` Namhyung Kim
2015-04-02 13:27     ` Steven Rostedt
2015-04-02 13:57       ` [RFC][PATCH 06/17 v3] " Steven Rostedt
2015-04-02 16:25         ` Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 07/17 v2] tracing: Allow for modules to export their trace enums as well Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 08/17 v2] tracing/samples: Update the trace-event-sample.h with TRACE_DEFINE_ENUM() Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 09/17 v2] tracing: Show the mapped enums in enum_map file Steven Rostedt
2015-04-02  2:58   ` Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 10/17 v2] x86/tlb/trace: Export enums in used by tlb_flush tracepoint Steven Rostedt
2015-04-02  1:56 ` [RFC][PATCH 11/17 v2] net/9p/tracing: Export enums in tracepoints to userspace Steven Rostedt
2015-04-02  1:57 ` [RFC][PATCH 12/17 v2] f2fs: Export the enums in the " Steven Rostedt
2015-04-02  1:57 ` [RFC][PATCH 13/17 v2] irq/tracing: Export enums in tracepoints to user space Steven Rostedt
2015-04-02  1:57 ` [RFC][PATCH 14/17 v2] mm: tracing: " Steven Rostedt
2015-04-02  1:57 ` [RFC][PATCH 15/17 v2] SUNRPC: " Steven Rostedt
2015-04-02  1:57 ` [RFC][PATCH 16/17 v2] v4l: Export enums used by " Steven Rostedt
2015-04-02  1:57 ` [RFC][PATCH 17/17 v2] writeback: Export enums used by tracepoint " Steven Rostedt
2015-04-07  0:44 ` [RFC][PATCH 00/17 v2] tracing: Use TRACE_DEFINE_ENUM() to show enum values Masami Hiramatsu

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=20150402020940.657972351@goodmis.org \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masami.hiramatsu.pt@hitachi.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --subject='Re: [RFC][PATCH 04/17 v2] tracing: Give system name a pointer' \
    /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

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).