lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 14 Mar 2017 19:14:25 -0700 From: Andi Kleen <andi@...stfloor.org> To: akpm@...ux-foundation.org Cc: linux-kernel@...r.kernel.org, Andi Kleen <ak@...ux.intel.com>, rostedt@...dmis.org Subject: [PATCH 1/7] trace: Move trace_seq_overflowed out of line From: Andi Kleen <ak@...ux.intel.com> Inlining trace_seq_overflowed takes ~17k in text size in my kernel. The function doesn't seem to be time critical, so we can just out of line it. Function Total Avg Num trace_seq_has_overflowed 17134 (0.00%) 33 514 This saves around 6k here text data bss dec hex filename 9102881 5367568 11116544 25586993 1866d31 vmlinux-orig 9096494 5367568 11116544 25580606 186543e vmlinux-trace-seq Cc: rostedt@...dmis.org Signed-off-by: Andi Kleen <ak@...ux.intel.com> --- include/linux/trace_seq.h | 12 +----------- kernel/trace/trace_seq.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/include/linux/trace_seq.h b/include/linux/trace_seq.h index cfaf5a1d4bad..442e4f087b95 100644 --- a/include/linux/trace_seq.h +++ b/include/linux/trace_seq.h @@ -56,17 +56,7 @@ trace_seq_buffer_ptr(struct trace_seq *s) return s->buffer + seq_buf_used(&s->seq); } -/** - * trace_seq_has_overflowed - return true if the trace_seq took too much - * @s: trace sequence descriptor - * - * Returns true if too much data was added to the trace_seq and it is - * now full and will not take anymore. - */ -static inline bool trace_seq_has_overflowed(struct trace_seq *s) -{ - return s->full || seq_buf_has_overflowed(&s->seq); -} +bool trace_seq_has_overflowed(struct trace_seq *s); /* * Currently only defined when tracing is enabled. diff --git a/kernel/trace/trace_seq.c b/kernel/trace/trace_seq.c index e694c9f9efa4..4367cd43e38c 100644 --- a/kernel/trace/trace_seq.c +++ b/kernel/trace/trace_seq.c @@ -375,3 +375,18 @@ int trace_seq_to_user(struct trace_seq *s, char __user *ubuf, int cnt) return seq_buf_to_user(&s->seq, ubuf, cnt); } EXPORT_SYMBOL_GPL(trace_seq_to_user); + + + +/** + * trace_seq_has_overflowed - return true if the trace_seq took too much + * @s: trace sequence descriptor + * + * Returns true if too much data was added to the trace_seq and it is + * now full and will not take anymore. + */ +bool trace_seq_has_overflowed(struct trace_seq *s) +{ + return s->full || seq_buf_has_overflowed(&s->seq); +} +EXPORT_SYMBOL_GPL(trace_seq_has_overflowed); -- 2.9.3
Powered by blists - more mailing lists