All of lore.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.