2011-04-21 02:39:10

by Steven Rostedt

[permalink] [raw]
Subject: [RFC][PATCH 07/11] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

From: Steven Rostedt <[email protected]>

When mcount is called in a section that ftrace will not modify it into
a nop, we want to warn about this. But not warn about this always. Now
if the user builds the kernel with the option RECORDMCOUNT_WARN=1 then
the build will warn about mcount callers that are ignored and will just
waste execution time.

Cc: Michal Marek <[email protected]>
Cc: [email protected]
Signed-off-by: Steven Rostedt <[email protected]>
---
Makefile | 1 +
scripts/Makefile.build | 5 ++++-
2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 8392b64..4e484cf 100644
--- a/Makefile
+++ b/Makefile
@@ -1268,6 +1268,7 @@ help:
@echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)'
@echo ' make C=2 [targets] Force check of all c source with $$CHECK'
@echo ' make W=1 [targets] Enable extra gcc checks'
+ @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
@echo ''
@echo 'Execute "make" or "make all" to build all targets marked with [*] '
@echo 'For further info see the ./README file'
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index d5f925a..fdca952 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -244,13 +244,16 @@ endif

ifdef CONFIG_FTRACE_MCOUNT_RECORD
ifdef BUILD_C_RECORDMCOUNT
+ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
+ RECORDMCOUNT_FLAGS = -w
+endif
# Due to recursion, we must skip empty.o.
# The empty.o file is created in the make process in order to determine
# the target endianness and word size. It is made before all other C
# files, including recordmcount.
sub_cmd_record_mcount = \
if [ $(@) != "scripts/mod/empty.o" ]; then \
- $(objtree)/scripts/recordmcount "$(@)"; \
+ $(objtree)/scripts/recordmcount $(RECORDMCOUNT_FLAGS) "$(@)"; \
fi;
else
sub_cmd_record_mcount = set -e ; perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \
--
1.7.2.3


2011-04-21 02:40:30

by Steven Rostedt

[permalink] [raw]
Subject: Re: [RFC][PATCH 07/11] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

On Wed, 2011-04-20 at 22:28 -0400, Steven Rostedt wrote:
> plain text document attachment
> (0007-kbuild-recordmcount-Add-RECORDMCOUNT_WARN-to-warn-ab.patch)
> From: Steven Rostedt <[email protected]>
>
> When mcount is called in a section that ftrace will not modify it into
> a nop, we want to warn about this. But not warn about this always. Now
> if the user builds the kernel with the option RECORDMCOUNT_WARN=1 then
> the build will warn about mcount callers that are ignored and will just
> waste execution time.
>
> Cc: Michal Marek <[email protected]>
> Cc: [email protected]
> Signed-off-by: Steven Rostedt <[email protected]>

Michal,

Can I get an Acked-by from you for this patch. Or comments if it doesn't
suit you?

Thanks,

-- Stvee

2011-04-21 20:40:15

by Michal Marek

[permalink] [raw]
Subject: Re: [RFC][PATCH 07/11] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

On 21.4.2011 04:28, Steven Rostedt wrote:
> +ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
> + RECORDMCOUNT_FLAGS = -w
> +endif

RECORDMCOUNT_WARN is IMO unlikely to be used with some other meaning in
the environment, so I think you can drop the origin check. Nevertheless

Acked-by: Michal Marek <[email protected]>

Michal

2011-04-26 19:08:06

by Steven Rostedt

[permalink] [raw]
Subject: Re: [RFC][PATCH 07/11] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

On Thu, 2011-04-21 at 22:40 +0200, Michal Marek wrote:
> On 21.4.2011 04:28, Steven Rostedt wrote:
> > +ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
> > + RECORDMCOUNT_FLAGS = -w
> > +endif
>
> RECORDMCOUNT_WARN is IMO unlikely to be used with some other meaning in
> the environment, so I think you can drop the origin check. Nevertheless

You haven't seen my environment variables ;)

>
> Acked-by: Michal Marek <[email protected]>

Thanks!

-- Steve

2011-05-18 18:34:01

by Steven Rostedt

[permalink] [raw]
Subject: [tip:perf/core] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

Commit-ID: 85356f802225fedeee8c3e65bdd93b263ace0a8b
Gitweb: http://git.kernel.org/tip/85356f802225fedeee8c3e65bdd93b263ace0a8b
Author: Steven Rostedt <[email protected]>
AuthorDate: Tue, 12 Apr 2011 18:59:10 -0400
Committer: Steven Rostedt <[email protected]>
CommitDate: Mon, 16 May 2011 14:45:03 -0400

kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

When mcount is called in a section that ftrace will not modify it into
a nop, we want to warn about this. But not warn about this always. Now
if the user builds the kernel with the option RECORDMCOUNT_WARN=1 then
the build will warn about mcount callers that are ignored and will just
waste execution time.

Acked-by: Michal Marek <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Steven Rostedt <[email protected]>
---
Makefile | 1 +
scripts/Makefile.build | 5 ++++-
2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 41ea6fb..e7d01ad 100644
--- a/Makefile
+++ b/Makefile
@@ -1268,6 +1268,7 @@ help:
@echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)'
@echo ' make C=2 [targets] Force check of all c source with $$CHECK'
@echo ' make W=1 [targets] Enable extra gcc checks'
+ @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
@echo ''
@echo 'Execute "make" or "make all" to build all targets marked with [*] '
@echo 'For further info see the ./README file'
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index d5f925a..fdca952 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -244,13 +244,16 @@ endif

ifdef CONFIG_FTRACE_MCOUNT_RECORD
ifdef BUILD_C_RECORDMCOUNT
+ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
+ RECORDMCOUNT_FLAGS = -w
+endif
# Due to recursion, we must skip empty.o.
# The empty.o file is created in the make process in order to determine
# the target endianness and word size. It is made before all other C
# files, including recordmcount.
sub_cmd_record_mcount = \
if [ $(@) != "scripts/mod/empty.o" ]; then \
- $(objtree)/scripts/recordmcount "$(@)"; \
+ $(objtree)/scripts/recordmcount $(RECORDMCOUNT_FLAGS) "$(@)"; \
fi;
else
sub_cmd_record_mcount = set -e ; perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \

2011-06-16 14:07:08

by Steven Rostedt

[permalink] [raw]
Subject: [tip:perf/core] kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

Commit-ID: a3a8350ab2f588f3a7a08dc86658bf90773f9a52
Gitweb: http://git.kernel.org/tip/a3a8350ab2f588f3a7a08dc86658bf90773f9a52
Author: Steven Rostedt <[email protected]>
AuthorDate: Tue, 12 Apr 2011 18:59:10 -0400
Committer: Steven Rostedt <[email protected]>
CommitDate: Tue, 17 May 2011 10:41:49 -0400

kbuild/recordmcount: Add RECORDMCOUNT_WARN to warn about mcount callers

When mcount is called in a section that ftrace will not modify it into
a nop, we want to warn about this. But not warn about this always. Now
if the user builds the kernel with the option RECORDMCOUNT_WARN=1 then
the build will warn about mcount callers that are ignored and will just
waste execution time.

Acked-by: Michal Marek <[email protected]>
Cc: [email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Steven Rostedt <[email protected]>
---
Makefile | 1 +
scripts/Makefile.build | 5 ++++-
2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/Makefile b/Makefile
index 41ea6fb..e7d01ad 100644
--- a/Makefile
+++ b/Makefile
@@ -1268,6 +1268,7 @@ help:
@echo ' make C=1 [targets] Check all c source with $$CHECK (sparse by default)'
@echo ' make C=2 [targets] Force check of all c source with $$CHECK'
@echo ' make W=1 [targets] Enable extra gcc checks'
+ @echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
@echo ''
@echo 'Execute "make" or "make all" to build all targets marked with [*] '
@echo 'For further info see the ./README file'
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 7d3f903..6165622 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -244,13 +244,16 @@ endif

ifdef CONFIG_FTRACE_MCOUNT_RECORD
ifdef BUILD_C_RECORDMCOUNT
+ifeq ("$(origin RECORDMCOUNT_WARN)", "command line")
+ RECORDMCOUNT_FLAGS = -w
+endif
# Due to recursion, we must skip empty.o.
# The empty.o file is created in the make process in order to determine
# the target endianness and word size. It is made before all other C
# files, including recordmcount.
sub_cmd_record_mcount = \
if [ $(@) != "scripts/mod/empty.o" ]; then \
- $(objtree)/scripts/recordmcount "$(@)"; \
+ $(objtree)/scripts/recordmcount $(RECORDMCOUNT_FLAGS) "$(@)"; \
fi;
recordmcount_source := $(srctree)/scripts/recordmcount.c \
$(srctree)/scripts/recordmcount.h