public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] compiler: Introduce __always_unused
@ 2009-11-02  0:50 Li Zefan
  2009-11-02  0:51 ` [PATCH 2/2] tracing: Fix to use __always_unused attribute Li Zefan
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Li Zefan @ 2009-11-02  0:50 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Steven Rostedt, Frederic Weisbecker, Linus Torvalds,
	Andrew Morton, LKML

I wrote some code which is used as compile-time checker, and the
code should be elided after compile.

So I need to annotate the code as "always unused", compared to
"maybe unused".

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 include/linux/compiler-gcc.h |    1 +
 include/linux/compiler.h     |    4 ++++
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index a3ed7cb..73dcf80 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -79,6 +79,7 @@
 #define  noinline			__attribute__((noinline))
 #define __attribute_const__		__attribute__((__const__))
 #define __maybe_unused			__attribute__((unused))
+#define __always_unused			__attribute__((unused))
 
 #define __gcc_header(x) #x
 #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index d1cc9f0..1ccebf4 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -132,6 +132,10 @@ extern void __chk_io_ptr(const volatile void __iomem *);
 # define __maybe_unused		/* unimplemented */
 #endif
 
+#ifndef __always_unused
+# define __always_unused	/* unimplemented */
+#endif
+
 #ifndef noinline
 #define noinline
 #endif
-- 
1.6.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/2] tracing: Fix to use __always_unused attribute
  2009-11-02  0:50 [PATCH 1/2] compiler: Introduce __always_unused Li Zefan
@ 2009-11-02  0:51 ` Li Zefan
  2009-11-02 16:16   ` [tip:tracing/core] " tip-bot for Li Zefan
  2009-11-02  1:15 ` [PATCH 1/2] compiler: Introduce __always_unused Arjan van de Ven
  2009-11-02 16:15 ` [tip:tracing/core] " tip-bot for Li Zefan
  2 siblings, 1 reply; 6+ messages in thread
From: Li Zefan @ 2009-11-02  0:51 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Steven Rostedt, Frederic Weisbecker, Linus Torvalds,
	Andrew Morton, LKML

____ftrace_check_##name() is used for compile-time check on
F_printk() only, so it should be marked as __unused instead
of __used.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 kernel/trace/trace_export.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index 934d81f..dff8c84 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -48,11 +48,11 @@
 struct ____ftrace_##name {					\
 	tstruct							\
 };								\
-static void __used ____ftrace_check_##name(void)		\
+static void __always_unused ____ftrace_check_##name(void)	\
 {								\
 	struct ____ftrace_##name *__entry = NULL;		\
 								\
-	/* force cmpile-time check on F_printk() */		\
+	/* force compile-time check on F_printk() */		\
 	printk(print);						\
 }
 
-- 
1.6.3


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] compiler: Introduce __always_unused
  2009-11-02  0:50 [PATCH 1/2] compiler: Introduce __always_unused Li Zefan
  2009-11-02  0:51 ` [PATCH 2/2] tracing: Fix to use __always_unused attribute Li Zefan
@ 2009-11-02  1:15 ` Arjan van de Ven
  2009-11-02  2:04   ` Li Zefan
  2009-11-02 16:15 ` [tip:tracing/core] " tip-bot for Li Zefan
  2 siblings, 1 reply; 6+ messages in thread
From: Arjan van de Ven @ 2009-11-02  1:15 UTC (permalink / raw)
  To: Li Zefan
  Cc: Ingo Molnar, Steven Rostedt, Frederic Weisbecker, Linus Torvalds,
	Andrew Morton, LKML

On Mon, 02 Nov 2009 08:50:52 +0800
Li Zefan <lizf@cn.fujitsu.com> wrote:

Hi,

> I wrote some code which is used as compile-time checker, and the
> code should be elided after compile.
> +#define __always_unused
> __attribute__((unused)) 

I have a suggestion.
In addition to marking it attribute unused, would it be useful to also
put a section attribute as part of this, to a section that we can then
drop from the binary by way of the linker script ?



-- 
Arjan van de Ven 	Intel Open Source Technology Centre
For development, discussion and tips for power savings, 
visit http://www.lesswatts.org

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 1/2] compiler: Introduce __always_unused
  2009-11-02  1:15 ` [PATCH 1/2] compiler: Introduce __always_unused Arjan van de Ven
@ 2009-11-02  2:04   ` Li Zefan
  0 siblings, 0 replies; 6+ messages in thread
From: Li Zefan @ 2009-11-02  2:04 UTC (permalink / raw)
  To: Arjan van de Ven
  Cc: Ingo Molnar, Steven Rostedt, Frederic Weisbecker, Linus Torvalds,
	Andrew Morton, LKML

Arjan van de Ven wrote:
> On Mon, 02 Nov 2009 08:50:52 +0800
> Li Zefan <lizf@cn.fujitsu.com> wrote:
> 
> Hi,
> 
>> I wrote some code which is used as compile-time checker, and the
>> code should be elided after compile.
>> +#define __always_unused
>> __attribute__((unused)) 
> 
> I have a suggestion.
> In addition to marking it attribute unused, would it be useful to also
> put a section attribute as part of this, to a section that we can then
> drop from the binary by way of the linker script ?
> 

__unused is used to suppress define-but-unused warning. If the
annotated symbol is really unused, it will be optimized out,
so I think we don't need to add a section for this.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [tip:tracing/core] compiler: Introduce __always_unused
  2009-11-02  0:50 [PATCH 1/2] compiler: Introduce __always_unused Li Zefan
  2009-11-02  0:51 ` [PATCH 2/2] tracing: Fix to use __always_unused attribute Li Zefan
  2009-11-02  1:15 ` [PATCH 1/2] compiler: Introduce __always_unused Arjan van de Ven
@ 2009-11-02 16:15 ` tip-bot for Li Zefan
  2 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Li Zefan @ 2009-11-02 16:15 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, torvalds, lizf, fweisbec, rostedt, tglx,
	mingo

Commit-ID:  7b2a35132ad0a70902dcd2844c27ed64cda0ce9b
Gitweb:     http://git.kernel.org/tip/7b2a35132ad0a70902dcd2844c27ed64cda0ce9b
Author:     Li Zefan <lizf@cn.fujitsu.com>
AuthorDate: Mon, 2 Nov 2009 08:50:52 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Mon, 2 Nov 2009 15:47:54 +0100

compiler: Introduce __always_unused

I wrote some code which is used as compile-time checker, and the
code should be elided after compile.

So I need to annotate the code as "always unused", compared to
"maybe unused".

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <4AEE2CEC.8040206@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 include/linux/compiler-gcc.h |    1 +
 include/linux/compiler.h     |    4 ++++
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index a3ed7cb..73dcf80 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -79,6 +79,7 @@
 #define  noinline			__attribute__((noinline))
 #define __attribute_const__		__attribute__((__const__))
 #define __maybe_unused			__attribute__((unused))
+#define __always_unused			__attribute__((unused))
 
 #define __gcc_header(x) #x
 #define _gcc_header(x) __gcc_header(linux/compiler-gcc##x.h)
diff --git a/include/linux/compiler.h b/include/linux/compiler.h
index 04fb513..7947f4f 100644
--- a/include/linux/compiler.h
+++ b/include/linux/compiler.h
@@ -213,6 +213,10 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
 # define __maybe_unused		/* unimplemented */
 #endif
 
+#ifndef __always_unused
+# define __always_unused	/* unimplemented */
+#endif
+
 #ifndef noinline
 #define noinline
 #endif

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [tip:tracing/core] tracing: Fix to use __always_unused attribute
  2009-11-02  0:51 ` [PATCH 2/2] tracing: Fix to use __always_unused attribute Li Zefan
@ 2009-11-02 16:16   ` tip-bot for Li Zefan
  0 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Li Zefan @ 2009-11-02 16:16 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, hpa, mingo, torvalds, lizf, fweisbec, rostedt, tglx,
	mingo

Commit-ID:  5e9b397292ca0b9409dced33e3a22ec993377064
Gitweb:     http://git.kernel.org/tip/5e9b397292ca0b9409dced33e3a22ec993377064
Author:     Li Zefan <lizf@cn.fujitsu.com>
AuthorDate: Mon, 2 Nov 2009 08:51:13 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Mon, 2 Nov 2009 15:47:54 +0100

tracing: Fix to use __always_unused attribute

____ftrace_check_##name() is used for compile-time check on
F_printk() only, so it should be marked as __unused instead
of __used.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <4AEE2D01.4010305@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 kernel/trace/trace_export.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
index 9753fcc..c74848d 100644
--- a/kernel/trace/trace_export.c
+++ b/kernel/trace/trace_export.c
@@ -48,11 +48,11 @@
 struct ____ftrace_##name {					\
 	tstruct							\
 };								\
-static void __used ____ftrace_check_##name(void)		\
+static void __always_unused ____ftrace_check_##name(void)	\
 {								\
 	struct ____ftrace_##name *__entry = NULL;		\
 								\
-	/* force cmpile-time check on F_printk() */		\
+	/* force compile-time check on F_printk() */		\
 	printk(print);						\
 }
 

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-11-02 16:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-02  0:50 [PATCH 1/2] compiler: Introduce __always_unused Li Zefan
2009-11-02  0:51 ` [PATCH 2/2] tracing: Fix to use __always_unused attribute Li Zefan
2009-11-02 16:16   ` [tip:tracing/core] " tip-bot for Li Zefan
2009-11-02  1:15 ` [PATCH 1/2] compiler: Introduce __always_unused Arjan van de Ven
2009-11-02  2:04   ` Li Zefan
2009-11-02 16:15 ` [tip:tracing/core] " tip-bot for Li Zefan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox