* [for-next][PATCH 0/6] tracing: memory savings and minor fixes
@ 2013-03-04 17:20 Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 1/6] tracing: Add a helper function for event print functions Steven Rostedt
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel; +Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker
Some more updates to the linux-next queue for 3.10. Li Zefan did a few
updates to save a bit of kernel memory.
I did a few minor fixes to the previous patchset I sent out.
-- Steve
Li Zefan (4):
tracing: Add a helper function for event print functions
tracing: Annotate event field-defining functions with __init
tracing/syscalls: Annotate field-defining functions with __init
tracing: Fix some section mismatch warninings
Steven Rostedt (Red Hat) (2):
tracing: Add __per_cpu annotation to trace array percpu data pointer
tracing: Fix trace events build without modules
----
include/linux/ftrace_event.h | 8 ++++--
include/trace/ftrace.h | 27 ++++++--------------
kernel/trace/trace.h | 2 +-
kernel/trace/trace_events.c | 55 +++++++++++++++++++++++++++--------------
kernel/trace/trace_export.c | 4 +--
kernel/trace/trace_output.c | 26 +++++++++++++++++++
kernel/trace/trace_syscalls.c | 8 +++---
7 files changed, 83 insertions(+), 47 deletions(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [for-next][PATCH 1/6] tracing: Add a helper function for event print functions
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
@ 2013-03-04 17:20 ` Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 2/6] tracing: Annotate event field-defining functions with __init Steven Rostedt
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel; +Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Li Zefan
[-- Attachment #1: 0001-tracing-Add-a-helper-function-for-event-print-functi.patch --]
[-- Type: text/plain, Size: 3933 bytes --]
From: Li Zefan <lizefan@huawei.com>
Move duplicate code in event print functions to a helper function.
This shrinks the size of the kernel by ~13K.
text data bss dec hex filename
6596137 1743966 10138672 18478775 119f6b7 vmlinux.o.old
6583002 1743849 10138672 18465523 119c2f3 vmlinux.o.new
Link: http://lkml.kernel.org/r/51258746.2060304@huawei.com
Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/linux/ftrace_event.h | 8 ++++++--
include/trace/ftrace.h | 23 ++++++-----------------
kernel/trace/trace_output.c | 26 ++++++++++++++++++++++++++
3 files changed, 38 insertions(+), 19 deletions(-)
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index fd28c17..4d79d2d 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -38,6 +38,12 @@ const char *ftrace_print_symbols_seq_u64(struct trace_seq *p,
const char *ftrace_print_hex_seq(struct trace_seq *p,
const unsigned char *buf, int len);
+struct trace_iterator;
+struct trace_event;
+
+int ftrace_raw_output_prep(struct trace_iterator *iter,
+ struct trace_event *event);
+
/*
* The trace entry - the most basic unit of tracing. This is what
* is printed in the end as a single line in the trace output, such as:
@@ -95,8 +101,6 @@ enum trace_iter_flags {
};
-struct trace_event;
-
typedef enum print_line_t (*trace_print_func)(struct trace_iterator *iter,
int flags, struct trace_event *event);
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index e5d140a..17a77fc 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -227,29 +227,18 @@ static notrace enum print_line_t \
ftrace_raw_output_##call(struct trace_iterator *iter, int flags, \
struct trace_event *trace_event) \
{ \
- struct ftrace_event_call *event; \
struct trace_seq *s = &iter->seq; \
+ struct trace_seq __maybe_unused *p = &iter->tmp_seq; \
struct ftrace_raw_##call *field; \
- struct trace_entry *entry; \
- struct trace_seq *p = &iter->tmp_seq; \
int ret; \
\
- event = container_of(trace_event, struct ftrace_event_call, \
- event); \
- \
- entry = iter->ent; \
+ field = (typeof(field))iter->ent; \
\
- if (entry->type != event->event.type) { \
- WARN_ON_ONCE(1); \
- return TRACE_TYPE_UNHANDLED; \
- } \
- \
- field = (typeof(field))entry; \
- \
- trace_seq_init(p); \
- ret = trace_seq_printf(s, "%s: ", event->name); \
+ ret = ftrace_raw_output_prep(iter, trace_event); \
if (ret) \
- ret = trace_seq_printf(s, print); \
+ return ret; \
+ \
+ ret = trace_seq_printf(s, print); \
if (!ret) \
return TRACE_TYPE_PARTIAL_LINE; \
\
diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
index 194d796..aa92ac3 100644
--- a/kernel/trace/trace_output.c
+++ b/kernel/trace/trace_output.c
@@ -397,6 +397,32 @@ ftrace_print_hex_seq(struct trace_seq *p, const unsigned char *buf, int buf_len)
}
EXPORT_SYMBOL(ftrace_print_hex_seq);
+int ftrace_raw_output_prep(struct trace_iterator *iter,
+ struct trace_event *trace_event)
+{
+ struct ftrace_event_call *event;
+ struct trace_seq *s = &iter->seq;
+ struct trace_seq *p = &iter->tmp_seq;
+ struct trace_entry *entry;
+ int ret;
+
+ event = container_of(trace_event, struct ftrace_event_call, event);
+ entry = iter->ent;
+
+ if (entry->type != event->event.type) {
+ WARN_ON_ONCE(1);
+ return TRACE_TYPE_UNHANDLED;
+ }
+
+ trace_seq_init(p);
+ ret = trace_seq_printf(s, "%s: ", event->name);
+ if (!ret)
+ return TRACE_TYPE_PARTIAL_LINE;
+
+ return 0;
+}
+EXPORT_SYMBOL(ftrace_raw_output_prep);
+
#ifdef CONFIG_KRETPROBES
static inline const char *kretprobed(const char *name)
{
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [for-next][PATCH 2/6] tracing: Annotate event field-defining functions with __init
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 1/6] tracing: Add a helper function for event print functions Steven Rostedt
@ 2013-03-04 17:20 ` Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 3/6] tracing/syscalls: Annotate " Steven Rostedt
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel; +Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Li Zefan
[-- Attachment #1: 0002-tracing-Annotate-event-field-defining-functions-with.patch --]
[-- Type: text/plain, Size: 1805 bytes --]
From: Li Zefan <lizefan@huawei.com>
Those functions are called either during kernel boot or module init.
Before:
$ dmesg | grep 'Freeing unused kernel memory'
Freeing unused kernel memory: 1208k freed
Freeing unused kernel memory: 1360k freed
Freeing unused kernel memory: 1960k freed
After:
$ dmesg | grep 'Freeing unused kernel memory'
Freeing unused kernel memory: 1236k freed
Freeing unused kernel memory: 1388k freed
Freeing unused kernel memory: 1960k freed
Link: http://lkml.kernel.org/r/5125877D.5000201@huawei.com
Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/trace/ftrace.h | 2 +-
kernel/trace/trace_export.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index 17a77fc..a536f66 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -324,7 +324,7 @@ static struct trace_event_functions ftrace_event_type_funcs_##call = { \
#undef DECLARE_EVENT_CLASS
#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, func, print) \
-static int notrace \
+static int notrace __init \
ftrace_define_fields_##call(struct ftrace_event_call *event_call) \
{ \
struct ftrace_raw_##call field; \
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index e039906..4f6a91c 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -129,7 +129,7 @@ static void __always_unused ____ftrace_check_##name(void) \
#undef FTRACE_ENTRY
#define FTRACE_ENTRY(name, struct_name, id, tstruct, print, filter) \
-int \
+static int __init \
ftrace_define_fields_##name(struct ftrace_event_call *event_call) \
{ \
struct struct_name field; \
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [for-next][PATCH 3/6] tracing/syscalls: Annotate field-defining functions with __init
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 1/6] tracing: Add a helper function for event print functions Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 2/6] tracing: Annotate event field-defining functions with __init Steven Rostedt
@ 2013-03-04 17:20 ` Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 4/6] tracing: Add __per_cpu annotation to trace array percpu data pointer Steven Rostedt
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel; +Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Li Zefan
[-- Attachment #1: 0003-tracing-syscalls-Annotate-field-defining-functions-w.patch --]
[-- Type: text/plain, Size: 1203 bytes --]
From: Li Zefan <lizefan@huawei.com>
These two functions are called during kernel boot only.
Link: http://lkml.kernel.org/r/51258796.7020704@huawei.com
Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace_syscalls.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index a842783..00b5c3e 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -261,7 +261,7 @@ static void free_syscall_print_fmt(struct ftrace_event_call *call)
kfree(call->print_fmt);
}
-static int syscall_enter_define_fields(struct ftrace_event_call *call)
+static int __init syscall_enter_define_fields(struct ftrace_event_call *call)
{
struct syscall_trace_enter trace;
struct syscall_metadata *meta = call->data;
@@ -284,7 +284,7 @@ static int syscall_enter_define_fields(struct ftrace_event_call *call)
return ret;
}
-static int syscall_exit_define_fields(struct ftrace_event_call *call)
+static int __init syscall_exit_define_fields(struct ftrace_event_call *call)
{
struct syscall_trace_exit trace;
int ret;
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [for-next][PATCH 4/6] tracing: Add __per_cpu annotation to trace array percpu data pointer
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
` (2 preceding siblings ...)
2013-03-04 17:20 ` [for-next][PATCH 3/6] tracing/syscalls: Annotate " Steven Rostedt
@ 2013-03-04 17:20 ` Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 5/6] tracing: Fix trace events build without modules Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 6/6] tracing: Fix some section mismatch warnings Steven Rostedt
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel
Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Fengguang Wu
[-- Attachment #1: 0004-tracing-Add-__per_cpu-annotation-to-trace-array-perc.patch --]
[-- Type: text/plain, Size: 930 bytes --]
From: "Steven Rostedt (Red Hat)" <srostedt@redhat.com>
With the conversion of the data array to per cpu, sparse now complains
about the use of per_cpu_ptr() on the variable. But The variable is
allocated with alloc_percpu() and is fine to use. But since the structure
that contains the data variable does not annotate it as such, sparse
gives out a lot of false warnings.
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index c597523..50a9c81 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -198,7 +198,7 @@ struct trace_array {
struct list_head systems;
struct list_head events;
struct task_struct *waiter;
- struct trace_array_cpu *data;
+ struct trace_array_cpu __percpu *data;
};
enum {
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [for-next][PATCH 5/6] tracing: Fix trace events build without modules
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
` (3 preceding siblings ...)
2013-03-04 17:20 ` [for-next][PATCH 4/6] tracing: Add __per_cpu annotation to trace array percpu data pointer Steven Rostedt
@ 2013-03-04 17:20 ` Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 6/6] tracing: Fix some section mismatch warnings Steven Rostedt
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel
Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Fengguang Wu
[-- Attachment #1: 0005-tracing-Fix-trace-events-build-without-modules.patch --]
[-- Type: text/plain, Size: 4295 bytes --]
From: "Steven Rostedt (Red Hat)" <srostedt@redhat.com>
The new multi-buffers added a descriptor that kept track of module
events, and the directories they use, with struct ftace_module_file_ops.
This is used to add a ref count to keep modules from unloading while
their files are being accessed.
As the descriptor is only needed when CONFIG_MODULES is enabled, it
is only declared when the config is enabled. But that struct is
dereferenced in a few areas outside the #ifdef CONFIG_MODULES.
By adding some helper routines and moving code around a little,
events can be compiled again without modules.
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/trace_events.c | 55 ++++++++++++++++++++++++++++---------------
1 file changed, 36 insertions(+), 19 deletions(-)
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index 63b4bdf..0f1307a 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -1546,9 +1546,18 @@ struct ftrace_module_file_ops {
struct file_operations filter;
};
-static struct ftrace_module_file_ops *find_ftrace_file_ops(struct module *mod)
+static struct ftrace_module_file_ops *
+find_ftrace_file_ops(struct ftrace_module_file_ops *file_ops, struct module *mod)
{
- struct ftrace_module_file_ops *file_ops;
+ /*
+ * As event_calls are added in groups by module,
+ * when we find one file_ops, we don't need to search for
+ * each call in that module, as the rest should be the
+ * same. Only search for a new one if the last one did
+ * not match.
+ */
+ if (file_ops && mod == file_ops->mod)
+ return file_ops;
list_for_each_entry(file_ops, &ftrace_module_file_list, list) {
if (file_ops->mod == mod)
@@ -1664,16 +1673,35 @@ static int trace_module_notify(struct notifier_block *self,
return 0;
}
+
+static int
+__trace_add_new_mod_event(struct ftrace_event_call *call,
+ struct trace_array *tr,
+ struct ftrace_module_file_ops *file_ops)
+{
+ return __trace_add_new_event(call, tr,
+ &file_ops->id, &file_ops->enable,
+ &file_ops->filter, &file_ops->format);
+}
+
#else
-static struct ftrace_module_file_ops *find_ftrace_file_ops(struct module *mod)
+static inline struct ftrace_module_file_ops *
+find_ftrace_file_ops(struct ftrace_module_file_ops *file_ops, struct module *mod)
{
return NULL;
}
-static int trace_module_notify(struct notifier_block *self,
- unsigned long val, void *data)
+static inline int trace_module_notify(struct notifier_block *self,
+ unsigned long val, void *data)
{
return 0;
}
+static inline int
+__trace_add_new_mod_event(struct ftrace_event_call *call,
+ struct trace_array *tr,
+ struct ftrace_module_file_ops *file_ops)
+{
+ return -ENODEV;
+}
#endif /* CONFIG_MODULES */
/* Create a new event directory structure for a trace directory. */
@@ -1692,20 +1720,11 @@ __trace_add_event_dirs(struct trace_array *tr)
* want the module to disappear when reading one
* of these files). The file_ops keep account of
* the module ref count.
- *
- * As event_calls are added in groups by module,
- * when we find one file_ops, we don't need to search for
- * each call in that module, as the rest should be the
- * same. Only search for a new one if the last one did
- * not match.
*/
- if (!file_ops || call->mod != file_ops->mod)
- file_ops = find_ftrace_file_ops(call->mod);
+ file_ops = find_ftrace_file_ops(file_ops, call->mod);
if (!file_ops)
continue; /* Warn? */
- ret = __trace_add_new_event(call, tr,
- &file_ops->id, &file_ops->enable,
- &file_ops->filter, &file_ops->format);
+ ret = __trace_add_new_mod_event(call, tr, file_ops);
if (ret < 0)
pr_warning("Could not create directory for event %s\n",
call->name);
@@ -1794,9 +1813,7 @@ __add_event_to_tracers(struct ftrace_event_call *call,
list_for_each_entry(tr, &ftrace_trace_arrays, list) {
if (file_ops)
- __trace_add_new_event(call, tr,
- &file_ops->id, &file_ops->enable,
- &file_ops->filter, &file_ops->format);
+ __trace_add_new_mod_event(call, tr, file_ops);
else
__trace_add_new_event(call, tr,
&ftrace_event_id_fops,
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [for-next][PATCH 6/6] tracing: Fix some section mismatch warnings
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
` (4 preceding siblings ...)
2013-03-04 17:20 ` [for-next][PATCH 5/6] tracing: Fix trace events build without modules Steven Rostedt
@ 2013-03-04 17:20 ` Steven Rostedt
5 siblings, 0 replies; 7+ messages in thread
From: Steven Rostedt @ 2013-03-04 17:20 UTC (permalink / raw)
To: linux-kernel
Cc: Ingo Molnar, Andrew Morton, Frederic Weisbecker, Fengguang Wu,
Li Zefan
[-- Attachment #1: 0006-tracing-Fix-some-section-mismatch-warnings.patch --]
[-- Type: text/plain, Size: 2812 bytes --]
From: Li Zefan <lizefan@huawei.com>
As we've added __init annotation to field-defining functions, we should
add __refdata annotation to event_call variables, which reference those
functions.
Link: http://lkml.kernel.org/r/51343C1F.2050502@huawei.com
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
include/trace/ftrace.h | 2 +-
kernel/trace/trace_export.c | 2 +-
kernel/trace/trace_syscalls.c | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index a536f66..bbf09c2 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -572,7 +572,7 @@ static inline void ftrace_test_probe_##call(void) \
#define DECLARE_EVENT_CLASS(call, proto, args, tstruct, assign, print) \
_TRACE_PERF_PROTO(call, PARAMS(proto)); \
static const char print_fmt_##call[] = print; \
-static struct ftrace_event_class __used event_class_##call = { \
+static struct ftrace_event_class __used __refdata event_class_##call = { \
.system = __stringify(TRACE_SYSTEM), \
.define_fields = ftrace_define_fields_##call, \
.fields = LIST_HEAD_INIT(event_class_##call.fields),\
diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index 4f6a91c..d21a746 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -168,7 +168,7 @@ ftrace_define_fields_##name(struct ftrace_event_call *event_call) \
#define FTRACE_ENTRY_REG(call, struct_name, etype, tstruct, print, filter,\
regfn) \
\
-struct ftrace_event_class event_class_ftrace_##call = { \
+struct ftrace_event_class __refdata event_class_ftrace_##call = { \
.system = __stringify(TRACE_SYSTEM), \
.define_fields = ftrace_define_fields_##call, \
.fields = LIST_HEAD_INIT(event_class_ftrace_##call.fields),\
diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 00b5c3e..1cd37ff 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -479,7 +479,7 @@ struct trace_event_functions exit_syscall_print_funcs = {
.trace = print_syscall_exit,
};
-struct ftrace_event_class event_class_syscall_enter = {
+struct ftrace_event_class __refdata event_class_syscall_enter = {
.system = "syscalls",
.reg = syscall_enter_register,
.define_fields = syscall_enter_define_fields,
@@ -487,7 +487,7 @@ struct ftrace_event_class event_class_syscall_enter = {
.raw_init = init_syscall_trace,
};
-struct ftrace_event_class event_class_syscall_exit = {
+struct ftrace_event_class __refdata event_class_syscall_exit = {
.system = "syscalls",
.reg = syscall_exit_register,
.define_fields = syscall_exit_define_fields,
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-03-04 17:27 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-04 17:20 [for-next][PATCH 0/6] tracing: memory savings and minor fixes Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 1/6] tracing: Add a helper function for event print functions Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 2/6] tracing: Annotate event field-defining functions with __init Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 3/6] tracing/syscalls: Annotate " Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 4/6] tracing: Add __per_cpu annotation to trace array percpu data pointer Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 5/6] tracing: Fix trace events build without modules Steven Rostedt
2013-03-04 17:20 ` [for-next][PATCH 6/6] tracing: Fix some section mismatch warnings Steven Rostedt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox