From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Steven Rostedt <srostedt@redhat.com>
Subject: [PATCH 3/6] tracing: add size checks for exported ftrace internal structures
Date: Fri, 24 Apr 2009 00:30:08 -0400 [thread overview]
Message-ID: <20090424043112.930337027@goodmis.org> (raw)
In-Reply-To: 20090424043005.338878133@goodmis.org
[-- Attachment #1: 0003-tracing-add-size-checks-for-exported-ftrace-interna.patch --]
[-- Type: text/plain, Size: 1958 bytes --]
From: Steven Rostedt <srostedt@redhat.com>
The events exported by TRACE_EVENT are automated and are guaranteed
to be correct when used.
The internal ftrace structures on the other hand are more manually
exported. These require the ftrace maintainer to make sure they
are up to date.
This patch adds a size check to help flag when a type changes in
an internal ftrace data structure, and the update needs to be reflected
in the export.
If a export is incorrect, then the only harm is that the user space
tools will not know how to correctly read the internal structures of
ftrace.
[ Impact: help prevent inconsistent ftrace format print outs ]
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
---
kernel/trace/trace_events.c | 3 +++
kernel/trace/trace_export.c | 4 ++++
2 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 9887131..b920815 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -381,8 +381,11 @@ event_enable_write(struct file *filp, const char __user *ubuf, size_t cnt,
return cnt;
}
+extern char *__bad_type_size(void);
+
#undef FIELD
#define FIELD(type, name) \
+ sizeof(type) != sizeof(field.name) ? __bad_type_size() : \
#type, "common_" #name, offsetof(typeof(field), name), \
sizeof(field.name)
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index 48fc02f..0cb1a14 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -19,8 +19,12 @@
#undef TRACE_STRUCT
#define TRACE_STRUCT(args...) args
+extern void __bad_type_size(void);
+
#undef TRACE_FIELD
#define TRACE_FIELD(type, item, assign) \
+ if (sizeof(type) != sizeof(field.item)) \
+ __bad_type_size(); \
ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \
"offset:%u;\tsize:%u;\n", \
(unsigned int)offsetof(typeof(field), item), \
--
1.6.2.1
--
next prev parent reply other threads:[~2009-04-24 4:32 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-24 4:30 [PATCH 0/6] [GIT PULL] x86,ring_buffer,tracing: updates for tip Steven Rostedt
2009-04-24 4:30 ` [PATCH 1/6] tracing/wakeup: move access to wakeup_cpu into spinlock Steven Rostedt
2009-04-24 4:30 ` [PATCH 2/6] tracing: increase size of number of possible events Steven Rostedt
2009-04-24 6:02 ` Li Zefan
2009-04-24 7:09 ` Ingo Molnar
2009-04-24 12:29 ` Steven Rostedt
2009-04-24 12:27 ` Steven Rostedt
2009-04-24 14:04 ` Steven Rostedt
2009-04-24 14:05 ` Steven Rostedt
2009-04-26 6:53 ` Li Zefan
2009-04-26 13:44 ` Steven Rostedt
2009-05-04 9:05 ` Li Zefan
2009-05-04 14:12 ` Steven Rostedt
2009-05-05 1:32 ` Li Zefan
2009-05-07 9:19 ` [tip:tracing/core] tracing: reset ring buffer when removing modules with events tip-bot for Steven Rostedt
2009-04-24 7:12 ` [PATCH 2/6] tracing: increase size of number of possible events Ingo Molnar
2009-04-24 12:30 ` Steven Rostedt
2009-04-24 4:30 ` Steven Rostedt [this message]
2009-04-24 4:30 ` [PATCH 4/6] x86: use native register access for native tlb flushing Steven Rostedt
2009-04-24 4:30 ` [PATCH 5/6] tracing: fix cut and paste macro error Steven Rostedt
2009-04-24 4:30 ` [PATCH 6/6] ring_buffer: compressed event header Steven Rostedt
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=20090424043112.930337027@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.org \
--cc=srostedt@redhat.com \
/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