Re: [PATCH 3/4] tracing: Annotate event field-defining functions with __init
On Thu, 2013-02-21 at 10:33 +0800, Li Zefan wrote: > 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 Also nice :-) Here's my numbers (again with lots of debug enabled): old: [0.027087] Freeing SMP alternatives: 12k freed [6.835298] Freeing initrd memory: 8004k freed [ 18.820837] Freeing unused kernel memory: 1092k freed [ 18.838487] Freeing unused kernel memory: 1456k freed [ 18.850665] Freeing unused kernel memory: 1544k freed new: [0.025087] Freeing SMP alternatives: 12k freed [6.775349] Freeing initrd memory: 8004k freed [ 18.753519] Freeing unused kernel memory: 1144k freed [ 18.771447] Freeing unused kernel memory: 1508k freed [ 18.783637] Freeing unused kernel memory: 1544k freed Lets hope these pass all my tests. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 3/4] tracing: Annotate event field-defining functions with __init
On Thu, 2013-02-21 at 10:33 +0800, Li Zefan wrote: 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 Also nice :-) Here's my numbers (again with lots of debug enabled): old: [0.027087] Freeing SMP alternatives: 12k freed [6.835298] Freeing initrd memory: 8004k freed [ 18.820837] Freeing unused kernel memory: 1092k freed [ 18.838487] Freeing unused kernel memory: 1456k freed [ 18.850665] Freeing unused kernel memory: 1544k freed new: [0.025087] Freeing SMP alternatives: 12k freed [6.775349] Freeing initrd memory: 8004k freed [ 18.753519] Freeing unused kernel memory: 1144k freed [ 18.771447] Freeing unused kernel memory: 1508k freed [ 18.783637] Freeing unused kernel memory: 1544k freed Lets hope these pass all my tests. -- Steve -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 3/4] tracing: Annotate event field-defining functions with __init
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 Signed-off-by: Li Zefan --- 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 20b6005..dc18af3 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.8.0.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH 3/4] tracing: Annotate event field-defining functions with __init
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 Signed-off-by: Li Zefan lize...@huawei.com --- 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 20b6005..dc18af3 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.8.0.2 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/