Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1199899 > unrolled thread
| Started by | Denys Vlasenko <dvlasenk@redhat.com> |
|---|---|
| First post | 2015-08-04 16:20 +0200 |
| Last post | 2015-08-05 22:20 +0200 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH 3/3] jiffies: Force inlining of {m,u}msecs_to_jiffies() Denys Vlasenko <dvlasenk@redhat.com> - 2015-08-04 16:20 +0200
[tip:core/types] jiffies: Force inlining of {m,u}msecs_to_jiffies () tip-bot for Denys Vlasenko <tipbot@zytor.com> - 2015-08-05 22:20 +0200
| From | Denys Vlasenko <dvlasenk@redhat.com> |
|---|---|
| Date | 2015-08-04 16:20 +0200 |
| Subject | [PATCH 3/3] jiffies: Force inlining of {m,u}msecs_to_jiffies() |
| Message-ID | <pTLep-4wJ-13@gated-at.bofh.it> |
With this config:
http://busybox.net/~vda/kernel_config_OPTIMIZE_INLINING_and_Os
gcc-4.7.2 generates many copies of these tiny functions:
msecs_to_jiffies (45 copies):
55 push %rbp
48 89 e5 mov %rsp,%rbp
e8 59 ec 03 00 callq __msecs_to_jiffies
5d pop %rbp
c3 retq
usecs_to_jiffies (10 copies):
55 push %rbp
48 89 e5 mov %rsp,%rbp
e8 5d 54 5e ff callq __usecs_to_jiffies
5d pop %rbp
c3 retq
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66122
This patch fixes this via s/inline/__always_inline/
text data bss dec hex filename
86970954 17195912 36659200 140826066 864d5d2 vmlinux.before
86966150 17195912 36659200 140821262 864c30e vmlinux
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Graf <tgraf@suug.ch>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org
---
include/linux/jiffies.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
index 535fd3b..1ba48a1 100644
--- a/include/linux/jiffies.h
+++ b/include/linux/jiffies.h
@@ -351,7 +351,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
* directly here and from __msecs_to_jiffies() in the case where
* constant folding is not possible.
*/
-static inline unsigned long msecs_to_jiffies(const unsigned int m)
+static __always_inline unsigned long msecs_to_jiffies(const unsigned int m)
{
if (__builtin_constant_p(m)) {
if ((int)m < 0)
@@ -405,7 +405,7 @@ static inline unsigned long _usecs_to_jiffies(const unsigned int u)
* directly here and from __msecs_to_jiffies() in the case where
* constant folding is not possible.
*/
-static inline unsigned long usecs_to_jiffies(const unsigned int u)
+static __always_inline unsigned long usecs_to_jiffies(const unsigned int u)
{
if (__builtin_constant_p(u)) {
if (u > jiffies_to_usecs(MAX_JIFFY_OFFSET))
--
1.8.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | tip-bot for Denys Vlasenko <tipbot@zytor.com> |
|---|---|
| Date | 2015-08-05 22:20 +0200 |
| Subject | [tip:core/types] jiffies: Force inlining of {m,u}msecs_to_jiffies () |
| Message-ID | <pUdkn-3qW-47@gated-at.bofh.it> |
| In reply to | #1199899 |
Commit-ID: accd0b9ec015d611eb7783dd86f1bb31bf8d62ab
Gitweb: http://git.kernel.org/tip/accd0b9ec015d611eb7783dd86f1bb31bf8d62ab
Author: Denys Vlasenko <dvlasenk@redhat.com>
AuthorDate: Tue, 4 Aug 2015 16:15:16 +0200
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Wed, 5 Aug 2015 09:38:09 +0200
jiffies: Force inlining of {m,u}msecs_to_jiffies()
With this config:
http://busybox.net/~vda/kernel_config_OPTIMIZE_INLINING_and_Os
gcc-4.7.2 generates many copies of these tiny functions:
msecs_to_jiffies (45 copies):
55 push %rbp
48 89 e5 mov %rsp,%rbp
e8 59 ec 03 00 callq __msecs_to_jiffies
5d pop %rbp
c3 retq
usecs_to_jiffies (10 copies):
55 push %rbp
48 89 e5 mov %rsp,%rbp
e8 5d 54 5e ff callq __usecs_to_jiffies
5d pop %rbp
c3 retq
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66122
This patch fixes this via s/inline/__always_inline/
text data bss dec filename
86970954 17195912 36659200 140826066 vmlinux.before
86966150 17195912 36659200 140821262 vmlinux
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Thomas Graf <tgraf@suug.ch>
Cc: linux-kernel@vger.kernel.org
Link: http://lkml.kernel.org/r/1438697716-28121-3-git-send-email-dvlasenk@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
include/linux/jiffies.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
index 535fd3b..1ba48a1 100644
--- a/include/linux/jiffies.h
+++ b/include/linux/jiffies.h
@@ -351,7 +351,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
* directly here and from __msecs_to_jiffies() in the case where
* constant folding is not possible.
*/
-static inline unsigned long msecs_to_jiffies(const unsigned int m)
+static __always_inline unsigned long msecs_to_jiffies(const unsigned int m)
{
if (__builtin_constant_p(m)) {
if ((int)m < 0)
@@ -405,7 +405,7 @@ static inline unsigned long _usecs_to_jiffies(const unsigned int u)
* directly here and from __msecs_to_jiffies() in the case where
* constant folding is not possible.
*/
-static inline unsigned long usecs_to_jiffies(const unsigned int u)
+static __always_inline unsigned long usecs_to_jiffies(const unsigned int u)
{
if (__builtin_constant_p(u)) {
if (u > jiffies_to_usecs(MAX_JIFFY_OFFSET))
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web