Live-Patching Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y
@ 2020-07-07  9:21 Masahiro Yamada
  2020-07-07  9:21 ` [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/ Masahiro Yamada
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Masahiro Yamada @ 2020-07-07  9:21 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Ingo Molnar, Steven Rostedt, Anders Roxell, Sami Tolvanen,
	Masahiro Yamada, Michael Ellerman, Benjamin Herrenschmidt,
	Brendan Higgins, David S. Miller, Haren Myneni, Herbert Xu,
	Ingo Molnar, Jiri Kosina, Joe Lawrence, Jonathan Corbet,
	Josh Poimboeuf, Michal Marek, Miroslav Benes, Paul Mackerras,
	Petr Mladek, Rich Felker, Russell King, Tal Gilboa,
	Yoshinori Sato, kunit-dev, linux-arm-kernel, linux-crypto,
	linux-doc, linux-kernel, linux-kselftest, linux-sh, linuxppc-dev,
	live-patching

CFLAGS_REMOVE_<file>.o filters out flags when compiling a particular
object, but there is no convenient way to do that for every object in
a directory.

Add ccflags-remove-y and asflags-remove-y to make it easily.

Use ccflags-remove-y to clean up some Makefiles.

The add/remove order works as follows:

 [1] KBUILD_CFLAGS specifies compiler flags used globally

 [2] ccflags-y adds compiler flags for all objects in the
     current Makefile

 [3] ccflags-remove-y removes compiler flags for all objects in the
     current Makefile (New feature)

 [4] CFLAGS_<file> adds compiler flags per file.

 [5] CFLAGS_REMOVE_<file> removes compiler flags per file.

Having [3] before [4] allows us to remove flags from most (but not all)
objects in the current Makefile.

For example, kernel/trace/Makefile removes $(CC_FLAGS_FTRACE)
from all objects in the directory, then adds it back to
trace_selftest_dynamic.o and CFLAGS_trace_kprobe_selftest.o

Please note ccflags-remove-y has no effect to the sub-directories.
In contrast, the previous notation got rid of compiler flags also from
all the sub-directories.

  arch/arm/boot/compressed/
  arch/powerpc/xmon/
  arch/sh/
  kernel/trace/

... have no sub-directories.

  lib/

... has several sub-directories.

To keep the behavior, I added ccflags-remove-y to all Makefiles
in subdirectories of lib/, except:

  lib/vdso/Makefile        - Kbuild does not descend into this Makefile
  lib/raid/test/Makefile   - This is not used for the kernel build

I think commit 2464a609ded0 ("ftrace: do not trace library functions")
excluded too much. In later commit, I will try to remove ccflags-remove-y
from sub-directory Makefiles.

Suggested-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
---

Changes in v2:
  - Swap the order of [3] and [4] to keep the current behavior of
    kernel/trace/Makefile.
  - Add ccflags-remove-y to subdir Makefiles of lib/

 Documentation/kbuild/makefiles.rst | 14 ++++++++++++++
 arch/arm/boot/compressed/Makefile  |  6 +-----
 arch/powerpc/xmon/Makefile         |  3 +--
 arch/sh/boot/compressed/Makefile   |  5 +----
 kernel/trace/Makefile              |  4 ++--
 lib/842/Makefile                   |  3 +++
 lib/Makefile                       |  5 +----
 lib/crypto/Makefile                |  2 ++
 lib/dim/Makefile                   |  2 ++
 lib/fonts/Makefile                 |  2 ++
 lib/kunit/Makefile                 |  3 +++
 lib/livepatch/Makefile             |  2 ++
 lib/lz4/Makefile                   |  1 +
 lib/lzo/Makefile                   |  2 ++
 lib/math/Makefile                  |  2 ++
 lib/mpi/Makefile                   |  2 ++
 lib/raid6/Makefile                 |  3 +++
 lib/reed_solomon/Makefile          |  2 ++
 lib/xz/Makefile                    |  3 +++
 lib/zlib_deflate/Makefile          |  2 ++
 lib/zlib_dfltcc/Makefile           |  2 ++
 lib/zlib_inflate/Makefile          |  2 ++
 lib/zstd/Makefile                  |  1 +
 scripts/Makefile.lib               | 14 ++++++++------
 24 files changed, 64 insertions(+), 23 deletions(-)

diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst
index 6515ebc12b6f..14d8e7d23c04 100644
--- a/Documentation/kbuild/makefiles.rst
+++ b/Documentation/kbuild/makefiles.rst
@@ -368,6 +368,14 @@ more details, with real examples.
 
 		subdir-ccflags-y := -Werror
 
+    ccflags-remove-y, asflags-remove-y
+	These flags are used to remove particular flags for the compiler,
+	assembler invocations.
+
+	Example::
+
+		ccflags-remove-$(CONFIG_MCOUNT) += -pg
+
     CFLAGS_$@, AFLAGS_$@
 	CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
 	kbuild makefile.
@@ -375,6 +383,9 @@ more details, with real examples.
 	$(CFLAGS_$@) specifies per-file options for $(CC).  The $@
 	part has a literal value which specifies the file that it is for.
 
+	CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
+	can re-add compiler flags that were removed by ccflags-remove-y.
+
 	Example::
 
 		# drivers/scsi/Makefile
@@ -387,6 +398,9 @@ more details, with real examples.
 	$(AFLAGS_$@) is a similar feature for source files in assembly
 	languages.
 
+	AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
+	can re-add assembler flags that were removed by asflags-remove-y.
+
 	Example::
 
 		# arch/arm/kernel/Makefile
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 00602a6fba04..3d5691b23951 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -103,13 +103,9 @@ clean-files += piggy_data lib1funcs.S ashldi3.S bswapsdi2.S hyp-stub.S
 
 KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
 
-ifeq ($(CONFIG_FUNCTION_TRACER),y)
-ORIG_CFLAGS := $(KBUILD_CFLAGS)
-KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
-endif
-
 ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \
 	     -I$(obj) $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += -pg
 asflags-y := -DZIMAGE
 
 # Supply kernel BSS size to the decompressor via a linker symbol.
diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile
index 89c76ca35640..eb25d7554ffd 100644
--- a/arch/powerpc/xmon/Makefile
+++ b/arch/powerpc/xmon/Makefile
@@ -7,8 +7,7 @@ UBSAN_SANITIZE := n
 KASAN_SANITIZE := n
 
 # Disable ftrace for the entire directory
-ORIG_CFLAGS := $(KBUILD_CFLAGS)
-KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
 
 ifdef CONFIG_CC_IS_CLANG
 # clang stores addresses on the stack causing the frame size to blow
diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
index ad0e2403e56f..589d2d8a573d 100644
--- a/arch/sh/boot/compressed/Makefile
+++ b/arch/sh/boot/compressed/Makefile
@@ -28,10 +28,7 @@ IMAGE_OFFSET	:= $(shell /bin/bash -c 'printf "0x%08x" \
 			$(CONFIG_BOOT_LINK_OFFSET)]')
 endif
 
-ifeq ($(CONFIG_MCOUNT),y)
-ORIG_CFLAGS := $(KBUILD_CFLAGS)
-KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
-endif
+ccflags-remove-$(CONFIG_MCOUNT) += -pg
 
 LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
 		   -T $(obj)/../../kernel/vmlinux.lds
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index 6575bb0a0434..7492844a8b1b 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -2,9 +2,9 @@
 
 # Do not instrument the tracer itself:
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 ifdef CONFIG_FUNCTION_TRACER
-ORIG_CFLAGS := $(KBUILD_CFLAGS)
-KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
 
 # Avoid recursion due to instrumentation.
 KCSAN_SANITIZE := n
diff --git a/lib/842/Makefile b/lib/842/Makefile
index 6f7aad269288..b815e824ae37 100644
--- a/lib/842/Makefile
+++ b/lib/842/Makefile
@@ -1,3 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
+
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_842_COMPRESS) += 842_compress.o
 obj-$(CONFIG_842_DECOMPRESS) += 842_decompress.o
diff --git a/lib/Makefile b/lib/Makefile
index b1c42c10073b..b2ed4beddd68 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -3,10 +3,7 @@
 # Makefile for some libs needed in the kernel.
 #
 
-ifdef CONFIG_FUNCTION_TRACER
-ORIG_CFLAGS := $(KBUILD_CFLAGS)
-KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
-endif
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
 
 # These files are disabled because they produce lots of non-interesting and/or
 # flaky coverage that is not a function of syscall inputs. For example,
diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile
index 3a435629d9ce..b557ef0b07c2 100644
--- a/lib/crypto/Makefile
+++ b/lib/crypto/Makefile
@@ -1,5 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 # chacha is used by the /dev/random driver which is always builtin
 obj-y						+= chacha.o
 obj-$(CONFIG_CRYPTO_LIB_CHACHA_GENERIC)		+= libchacha.o
diff --git a/lib/dim/Makefile b/lib/dim/Makefile
index 1d6858a108cb..97fc3e89d34e 100644
--- a/lib/dim/Makefile
+++ b/lib/dim/Makefile
@@ -2,6 +2,8 @@
 # DIM Dynamic Interrupt Moderation library
 #
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_DIMLIB) += dim.o
 
 dim-y := dim.o net_dim.o rdma_dim.o
diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile
index ed95070860de..f951750c179e 100644
--- a/lib/fonts/Makefile
+++ b/lib/fonts/Makefile
@@ -1,6 +1,8 @@
 # SPDX-License-Identifier: GPL-2.0
 # Font handling
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 font-objs := fonts.o
 
 font-objs-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile
index 724b94311ca3..8c847557ab24 100644
--- a/lib/kunit/Makefile
+++ b/lib/kunit/Makefile
@@ -1,3 +1,6 @@
+
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_KUNIT) +=			kunit.o
 
 kunit-objs +=				test.o \
diff --git a/lib/livepatch/Makefile b/lib/livepatch/Makefile
index 295b94bff370..9abdf615b088 100644
--- a/lib/livepatch/Makefile
+++ b/lib/livepatch/Makefile
@@ -2,6 +2,8 @@
 #
 # Makefile for livepatch test code.
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_TEST_LIVEPATCH) += test_klp_atomic_replace.o \
 				test_klp_callbacks_demo.o \
 				test_klp_callbacks_demo2.o \
diff --git a/lib/lz4/Makefile b/lib/lz4/Makefile
index 5b42242afaa2..53da4cab7015 100644
--- a/lib/lz4/Makefile
+++ b/lib/lz4/Makefile
@@ -1,5 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
 ccflags-y += -O3
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
 
 obj-$(CONFIG_LZ4_COMPRESS) += lz4_compress.o
 obj-$(CONFIG_LZ4HC_COMPRESS) += lz4hc_compress.o
diff --git a/lib/lzo/Makefile b/lib/lzo/Makefile
index 2f58fafbbddd..9565a555275b 100644
--- a/lib/lzo/Makefile
+++ b/lib/lzo/Makefile
@@ -1,4 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 lzo_compress-objs := lzo1x_compress.o
 lzo_decompress-objs := lzo1x_decompress_safe.o
 
diff --git a/lib/math/Makefile b/lib/math/Makefile
index be6909e943bd..49aa50e28185 100644
--- a/lib/math/Makefile
+++ b/lib/math/Makefile
@@ -1,4 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0-only
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-y += div64.o gcd.o lcm.o int_pow.o int_sqrt.o reciprocal_div.o
 
 obj-$(CONFIG_CORDIC)		+= cordic.o
diff --git a/lib/mpi/Makefile b/lib/mpi/Makefile
index d5874a7f5ff9..df7883521619 100644
--- a/lib/mpi/Makefile
+++ b/lib/mpi/Makefile
@@ -3,6 +3,8 @@
 # MPI multiprecision maths library (from gpg)
 #
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_MPILIB) = mpi.o
 
 mpi-y = \
diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile
index b4c0df6d706d..3482d6ae3f3b 100644
--- a/lib/raid6/Makefile
+++ b/lib/raid6/Makefile
@@ -1,4 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
+
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_RAID6_PQ)	+= raid6_pq.o
 
 raid6_pq-y	+= algos.o recov.o tables.o int1.o int2.o int4.o \
diff --git a/lib/reed_solomon/Makefile b/lib/reed_solomon/Makefile
index 5d4fa68f26cb..a5c9defdac7f 100644
--- a/lib/reed_solomon/Makefile
+++ b/lib/reed_solomon/Makefile
@@ -3,5 +3,7 @@
 # This is a modified version of reed solomon lib,
 #
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_REED_SOLOMON) += reed_solomon.o
 obj-$(CONFIG_REED_SOLOMON_TEST) += test_rslib.o
diff --git a/lib/xz/Makefile b/lib/xz/Makefile
index fa6af814a8d1..fae9b6c7c389 100644
--- a/lib/xz/Makefile
+++ b/lib/xz/Makefile
@@ -1,4 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0-only
+
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_XZ_DEC) += xz_dec.o
 xz_dec-y := xz_dec_syms.o xz_dec_stream.o xz_dec_lzma2.o
 xz_dec-$(CONFIG_XZ_DEC_BCJ) += xz_dec_bcj.o
diff --git a/lib/zlib_deflate/Makefile b/lib/zlib_deflate/Makefile
index 2622e03c0b94..1fcefe73536f 100644
--- a/lib/zlib_deflate/Makefile
+++ b/lib/zlib_deflate/Makefile
@@ -7,6 +7,8 @@
 # decompression code.
 #
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate.o
 
 zlib_deflate-objs := deflate.o deftree.o deflate_syms.o
diff --git a/lib/zlib_dfltcc/Makefile b/lib/zlib_dfltcc/Makefile
index 8e4d5afbbb10..7a8067f6e772 100644
--- a/lib/zlib_dfltcc/Makefile
+++ b/lib/zlib_dfltcc/Makefile
@@ -6,6 +6,8 @@
 # This is the code for s390 zlib hardware support.
 #
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_ZLIB_DFLTCC) += zlib_dfltcc.o
 
 zlib_dfltcc-objs := dfltcc.o dfltcc_deflate.o dfltcc_inflate.o dfltcc_syms.o
diff --git a/lib/zlib_inflate/Makefile b/lib/zlib_inflate/Makefile
index 27327d3e9f54..a451e96f9845 100644
--- a/lib/zlib_inflate/Makefile
+++ b/lib/zlib_inflate/Makefile
@@ -14,6 +14,8 @@
 # uncompression can be done without blocking on allocation).
 #
 
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
+
 obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate.o
 
 zlib_inflate-objs := inffast.o inflate.o infutil.o \
diff --git a/lib/zstd/Makefile b/lib/zstd/Makefile
index f5d778e7e5c7..01be908a2d94 100644
--- a/lib/zstd/Makefile
+++ b/lib/zstd/Makefile
@@ -3,6 +3,7 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd_compress.o
 obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd_decompress.o
 
 ccflags-y += -O3
+ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
 
 zstd_compress-y := fse_compress.o huf_compress.o compress.o \
 		   entropy_common.o fse_decompress.o zstd_common.o
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 916b2f7f7098..3629f66646d7 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -111,12 +111,14 @@ basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
 modname_flags  = -DKBUILD_MODNAME=$(call name-fix,$(modname))
 modfile_flags  = -DKBUILD_MODFILE=$(call stringify,$(modfile))
 
-orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
-                 $(ccflags-y) $(CFLAGS_$(target-stem).o)
-_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(target-stem).o), $(orig_c_flags))
-orig_a_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \
-                 $(asflags-y) $(AFLAGS_$(target-stem).o)
-_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(target-stem).o), $(orig_a_flags))
+_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(target-stem).o), \
+                     $(filter-out $(ccflags-remove-y), \
+                         $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(ccflags-y)) \
+                     $(CFLAGS_$(target-stem).o))
+_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(target-stem).o), \
+                     $(filter-out $(asflags-remove-y), \
+                         $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) $(asflags-y)) \
+                     $(AFLAGS_$(target-stem).o))
 _cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(target-stem).lds)
 
 #
-- 
2.25.1


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

* [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-07  9:21 [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Masahiro Yamada
@ 2020-07-07  9:21 ` Masahiro Yamada
  2020-07-07 16:02   ` Steven Rostedt
  2020-07-08  6:52   ` Petr Mladek
  2020-07-07 19:58 ` [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Brendan Higgins
  2020-07-07 21:25 ` Anders Roxell
  2 siblings, 2 replies; 10+ messages in thread
From: Masahiro Yamada @ 2020-07-07  9:21 UTC (permalink / raw)
  To: linux-kbuild
  Cc: Ingo Molnar, Steven Rostedt, Anders Roxell, Sami Tolvanen,
	Masahiro Yamada, Brendan Higgins, David S. Miller, Haren Myneni,
	Herbert Xu, Jiri Kosina, Joe Lawrence, Josh Poimboeuf,
	Miroslav Benes, Petr Mladek, Tal Gilboa, kunit-dev, linux-crypto,
	linux-kernel, linux-kselftest, live-patching

  ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)

exists here in sub-directories of lib/ to keep the behavior of
commit 2464a609ded0 ("ftrace: do not trace library functions").

Since that commit, not only the objects in lib/ but also the ones in
the sub-directories are excluded from ftrace (although the commit
description did not explicitly mention this).

However, most of library functions in sub-directories are not so hot.
Re-add them to ftrace.

Going forward, only the objects right under lib/ will be excluded.

Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

Changes in v2:
  - New patch

 lib/842/Makefile          | 3 ---
 lib/crypto/Makefile       | 2 --
 lib/dim/Makefile          | 2 --
 lib/fonts/Makefile        | 2 --
 lib/kunit/Makefile        | 3 ---
 lib/livepatch/Makefile    | 2 --
 lib/lz4/Makefile          | 1 -
 lib/lzo/Makefile          | 2 --
 lib/math/Makefile         | 2 --
 lib/mpi/Makefile          | 2 --
 lib/raid6/Makefile        | 3 ---
 lib/reed_solomon/Makefile | 2 --
 lib/xz/Makefile           | 3 ---
 lib/zlib_deflate/Makefile | 2 --
 lib/zlib_dfltcc/Makefile  | 2 --
 lib/zlib_inflate/Makefile | 2 --
 lib/zstd/Makefile         | 1 -
 17 files changed, 36 deletions(-)

diff --git a/lib/842/Makefile b/lib/842/Makefile
index b815e824ae37..6f7aad269288 100644
--- a/lib/842/Makefile
+++ b/lib/842/Makefile
@@ -1,6 +1,3 @@
 # SPDX-License-Identifier: GPL-2.0-only
-
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_842_COMPRESS) += 842_compress.o
 obj-$(CONFIG_842_DECOMPRESS) += 842_decompress.o
diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile
index b557ef0b07c2..3a435629d9ce 100644
--- a/lib/crypto/Makefile
+++ b/lib/crypto/Makefile
@@ -1,7 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 # chacha is used by the /dev/random driver which is always builtin
 obj-y						+= chacha.o
 obj-$(CONFIG_CRYPTO_LIB_CHACHA_GENERIC)		+= libchacha.o
diff --git a/lib/dim/Makefile b/lib/dim/Makefile
index 97fc3e89d34e..1d6858a108cb 100644
--- a/lib/dim/Makefile
+++ b/lib/dim/Makefile
@@ -2,8 +2,6 @@
 # DIM Dynamic Interrupt Moderation library
 #
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_DIMLIB) += dim.o
 
 dim-y := dim.o net_dim.o rdma_dim.o
diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile
index f951750c179e..ed95070860de 100644
--- a/lib/fonts/Makefile
+++ b/lib/fonts/Makefile
@@ -1,8 +1,6 @@
 # SPDX-License-Identifier: GPL-2.0
 # Font handling
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 font-objs := fonts.o
 
 font-objs-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile
index 8c847557ab24..724b94311ca3 100644
--- a/lib/kunit/Makefile
+++ b/lib/kunit/Makefile
@@ -1,6 +1,3 @@
-
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_KUNIT) +=			kunit.o
 
 kunit-objs +=				test.o \
diff --git a/lib/livepatch/Makefile b/lib/livepatch/Makefile
index 9abdf615b088..295b94bff370 100644
--- a/lib/livepatch/Makefile
+++ b/lib/livepatch/Makefile
@@ -2,8 +2,6 @@
 #
 # Makefile for livepatch test code.
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_TEST_LIVEPATCH) += test_klp_atomic_replace.o \
 				test_klp_callbacks_demo.o \
 				test_klp_callbacks_demo2.o \
diff --git a/lib/lz4/Makefile b/lib/lz4/Makefile
index 53da4cab7015..5b42242afaa2 100644
--- a/lib/lz4/Makefile
+++ b/lib/lz4/Makefile
@@ -1,6 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0-only
 ccflags-y += -O3
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
 
 obj-$(CONFIG_LZ4_COMPRESS) += lz4_compress.o
 obj-$(CONFIG_LZ4HC_COMPRESS) += lz4hc_compress.o
diff --git a/lib/lzo/Makefile b/lib/lzo/Makefile
index 9565a555275b..2f58fafbbddd 100644
--- a/lib/lzo/Makefile
+++ b/lib/lzo/Makefile
@@ -1,6 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0-only
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 lzo_compress-objs := lzo1x_compress.o
 lzo_decompress-objs := lzo1x_decompress_safe.o
 
diff --git a/lib/math/Makefile b/lib/math/Makefile
index 49aa50e28185..be6909e943bd 100644
--- a/lib/math/Makefile
+++ b/lib/math/Makefile
@@ -1,6 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0-only
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-y += div64.o gcd.o lcm.o int_pow.o int_sqrt.o reciprocal_div.o
 
 obj-$(CONFIG_CORDIC)		+= cordic.o
diff --git a/lib/mpi/Makefile b/lib/mpi/Makefile
index df7883521619..d5874a7f5ff9 100644
--- a/lib/mpi/Makefile
+++ b/lib/mpi/Makefile
@@ -3,8 +3,6 @@
 # MPI multiprecision maths library (from gpg)
 #
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_MPILIB) = mpi.o
 
 mpi-y = \
diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile
index 3482d6ae3f3b..b4c0df6d706d 100644
--- a/lib/raid6/Makefile
+++ b/lib/raid6/Makefile
@@ -1,7 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0
-
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_RAID6_PQ)	+= raid6_pq.o
 
 raid6_pq-y	+= algos.o recov.o tables.o int1.o int2.o int4.o \
diff --git a/lib/reed_solomon/Makefile b/lib/reed_solomon/Makefile
index a5c9defdac7f..5d4fa68f26cb 100644
--- a/lib/reed_solomon/Makefile
+++ b/lib/reed_solomon/Makefile
@@ -3,7 +3,5 @@
 # This is a modified version of reed solomon lib,
 #
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_REED_SOLOMON) += reed_solomon.o
 obj-$(CONFIG_REED_SOLOMON_TEST) += test_rslib.o
diff --git a/lib/xz/Makefile b/lib/xz/Makefile
index fae9b6c7c389..fa6af814a8d1 100644
--- a/lib/xz/Makefile
+++ b/lib/xz/Makefile
@@ -1,7 +1,4 @@
 # SPDX-License-Identifier: GPL-2.0-only
-
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_XZ_DEC) += xz_dec.o
 xz_dec-y := xz_dec_syms.o xz_dec_stream.o xz_dec_lzma2.o
 xz_dec-$(CONFIG_XZ_DEC_BCJ) += xz_dec_bcj.o
diff --git a/lib/zlib_deflate/Makefile b/lib/zlib_deflate/Makefile
index 1fcefe73536f..2622e03c0b94 100644
--- a/lib/zlib_deflate/Makefile
+++ b/lib/zlib_deflate/Makefile
@@ -7,8 +7,6 @@
 # decompression code.
 #
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate.o
 
 zlib_deflate-objs := deflate.o deftree.o deflate_syms.o
diff --git a/lib/zlib_dfltcc/Makefile b/lib/zlib_dfltcc/Makefile
index 7a8067f6e772..8e4d5afbbb10 100644
--- a/lib/zlib_dfltcc/Makefile
+++ b/lib/zlib_dfltcc/Makefile
@@ -6,8 +6,6 @@
 # This is the code for s390 zlib hardware support.
 #
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_ZLIB_DFLTCC) += zlib_dfltcc.o
 
 zlib_dfltcc-objs := dfltcc.o dfltcc_deflate.o dfltcc_inflate.o dfltcc_syms.o
diff --git a/lib/zlib_inflate/Makefile b/lib/zlib_inflate/Makefile
index a451e96f9845..27327d3e9f54 100644
--- a/lib/zlib_inflate/Makefile
+++ b/lib/zlib_inflate/Makefile
@@ -14,8 +14,6 @@
 # uncompression can be done without blocking on allocation).
 #
 
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
-
 obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate.o
 
 zlib_inflate-objs := inffast.o inflate.o infutil.o \
diff --git a/lib/zstd/Makefile b/lib/zstd/Makefile
index 01be908a2d94..f5d778e7e5c7 100644
--- a/lib/zstd/Makefile
+++ b/lib/zstd/Makefile
@@ -3,7 +3,6 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd_compress.o
 obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd_decompress.o
 
 ccflags-y += -O3
-ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
 
 zstd_compress-y := fse_compress.o huf_compress.o compress.o \
 		   entropy_common.o fse_decompress.o zstd_common.o
-- 
2.25.1


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

* Re: [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-07  9:21 ` [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/ Masahiro Yamada
@ 2020-07-07 16:02   ` Steven Rostedt
  2020-07-22  2:08     ` Masahiro Yamada
  2020-07-08  6:52   ` Petr Mladek
  1 sibling, 1 reply; 10+ messages in thread
From: Steven Rostedt @ 2020-07-07 16:02 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-kbuild, Ingo Molnar, Anders Roxell, Sami Tolvanen,
	Brendan Higgins, David S. Miller, Haren Myneni, Herbert Xu,
	Jiri Kosina, Joe Lawrence, Josh Poimboeuf, Miroslav Benes,
	Petr Mladek, Tal Gilboa, kunit-dev, linux-crypto, linux-kernel,
	linux-kselftest, live-patching

On Tue,  7 Jul 2020 18:21:17 +0900
Masahiro Yamada <masahiroy@kernel.org> wrote:

>   ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> 
> exists here in sub-directories of lib/ to keep the behavior of
> commit 2464a609ded0 ("ftrace: do not trace library functions").
> 
> Since that commit, not only the objects in lib/ but also the ones in
> the sub-directories are excluded from ftrace (although the commit
> description did not explicitly mention this).
> 
> However, most of library functions in sub-directories are not so hot.
> Re-add them to ftrace.

I'm OK with this change, but note, it wasn't just the hot path that I
disabled ftrace on lib for, but some of these calls are done very early
at boot up. It may have been PowerPC that I was stumbling over. The
issue is that they would call mcount before the kernel was mapped
properly, and the system would crash.

My PowerPC box no longer boots so I can't test this anymore. But a lot
has changed since 2008, and all this may very well be OK.

-- Steve

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

* Re: [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y
  2020-07-07  9:21 [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Masahiro Yamada
  2020-07-07  9:21 ` [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/ Masahiro Yamada
@ 2020-07-07 19:58 ` Brendan Higgins
  2020-07-07 21:25 ` Anders Roxell
  2 siblings, 0 replies; 10+ messages in thread
From: Brendan Higgins @ 2020-07-07 19:58 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-kbuild, Ingo Molnar, Steven Rostedt, Anders Roxell,
	Sami Tolvanen, Michael Ellerman, Benjamin Herrenschmidt,
	David S. Miller, Haren Myneni, Herbert Xu, Ingo Molnar,
	Jiri Kosina, Joe Lawrence, Jonathan Corbet, Josh Poimboeuf,
	Michal Marek, Miroslav Benes, Paul Mackerras, Petr Mladek,
	Rich Felker, Russell King, Tal Gilboa, Yoshinori Sato,
	KUnit Development, Linux ARM, linux-crypto,
	open list:DOCUMENTATION, Linux Kernel Mailing List,
	open list:KERNEL SELFTEST FRAMEWORK, linux-sh, linuxppc-dev,
	live-patching

On Tue, Jul 7, 2020 at 2:22 AM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> CFLAGS_REMOVE_<file>.o filters out flags when compiling a particular
> object, but there is no convenient way to do that for every object in
> a directory.
>
> Add ccflags-remove-y and asflags-remove-y to make it easily.
>
> Use ccflags-remove-y to clean up some Makefiles.
>
> The add/remove order works as follows:
>
>  [1] KBUILD_CFLAGS specifies compiler flags used globally
>
>  [2] ccflags-y adds compiler flags for all objects in the
>      current Makefile
>
>  [3] ccflags-remove-y removes compiler flags for all objects in the
>      current Makefile (New feature)
>
>  [4] CFLAGS_<file> adds compiler flags per file.
>
>  [5] CFLAGS_REMOVE_<file> removes compiler flags per file.
>
> Having [3] before [4] allows us to remove flags from most (but not all)
> objects in the current Makefile.
>
> For example, kernel/trace/Makefile removes $(CC_FLAGS_FTRACE)
> from all objects in the directory, then adds it back to
> trace_selftest_dynamic.o and CFLAGS_trace_kprobe_selftest.o
>
> Please note ccflags-remove-y has no effect to the sub-directories.
> In contrast, the previous notation got rid of compiler flags also from
> all the sub-directories.
>
>   arch/arm/boot/compressed/
>   arch/powerpc/xmon/
>   arch/sh/
>   kernel/trace/
>
> ... have no sub-directories.
>
>   lib/
>
> ... has several sub-directories.
>
> To keep the behavior, I added ccflags-remove-y to all Makefiles
> in subdirectories of lib/, except:
>
>   lib/vdso/Makefile        - Kbuild does not descend into this Makefile
>   lib/raid/test/Makefile   - This is not used for the kernel build
>
> I think commit 2464a609ded0 ("ftrace: do not trace library functions")
> excluded too much. In later commit, I will try to remove ccflags-remove-y
> from sub-directory Makefiles.
>
> Suggested-by: Sami Tolvanen <samitolvanen@google.com>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)

Acked-by: Brendan Higgins <brendanhiggins@google.com> (KUnit)

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

* Re: [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y
  2020-07-07  9:21 [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Masahiro Yamada
  2020-07-07  9:21 ` [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/ Masahiro Yamada
  2020-07-07 19:58 ` [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Brendan Higgins
@ 2020-07-07 21:25 ` Anders Roxell
  2 siblings, 0 replies; 10+ messages in thread
From: Anders Roxell @ 2020-07-07 21:25 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Linux Kbuild mailing list, Ingo Molnar, Steven Rostedt,
	Sami Tolvanen, Michael Ellerman, Benjamin Herrenschmidt,
	Brendan Higgins, David S. Miller, Haren Myneni, Herbert Xu,
	Ingo Molnar, Jiri Kosina, Joe Lawrence, Jonathan Corbet,
	Josh Poimboeuf, Michal Marek, Miroslav Benes, Paul Mackerras,
	Petr Mladek, Rich Felker, Russell King, Tal Gilboa,
	Yoshinori Sato, KUnit Development, Linux ARM, linux-crypto,
	linux-doc, Linux Kernel Mailing List,
	open list:KERNEL SELFTEST FRAMEWORK, Linux-sh list, linuxppc-dev,
	live-patching

On Tue, 7 Jul 2020 at 11:21, Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> CFLAGS_REMOVE_<file>.o filters out flags when compiling a particular
> object, but there is no convenient way to do that for every object in
> a directory.
>
> Add ccflags-remove-y and asflags-remove-y to make it easily.
>
> Use ccflags-remove-y to clean up some Makefiles.
>
> The add/remove order works as follows:
>
>  [1] KBUILD_CFLAGS specifies compiler flags used globally
>
>  [2] ccflags-y adds compiler flags for all objects in the
>      current Makefile
>
>  [3] ccflags-remove-y removes compiler flags for all objects in the
>      current Makefile (New feature)
>
>  [4] CFLAGS_<file> adds compiler flags per file.
>
>  [5] CFLAGS_REMOVE_<file> removes compiler flags per file.
>
> Having [3] before [4] allows us to remove flags from most (but not all)
> objects in the current Makefile.
>
> For example, kernel/trace/Makefile removes $(CC_FLAGS_FTRACE)
> from all objects in the directory, then adds it back to
> trace_selftest_dynamic.o and CFLAGS_trace_kprobe_selftest.o
>
> Please note ccflags-remove-y has no effect to the sub-directories.
> In contrast, the previous notation got rid of compiler flags also from
> all the sub-directories.
>
>   arch/arm/boot/compressed/
>   arch/powerpc/xmon/
>   arch/sh/
>   kernel/trace/
>
> ... have no sub-directories.
>
>   lib/
>
> ... has several sub-directories.
>
> To keep the behavior, I added ccflags-remove-y to all Makefiles
> in subdirectories of lib/, except:
>
>   lib/vdso/Makefile        - Kbuild does not descend into this Makefile
>   lib/raid/test/Makefile   - This is not used for the kernel build
>
> I think commit 2464a609ded0 ("ftrace: do not trace library functions")
> excluded too much. In later commit, I will try to remove ccflags-remove-y
> from sub-directory Makefiles.
>
> Suggested-by: Sami Tolvanen <samitolvanen@google.com>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)

Tested-by: Anders Roxell <anders.roxell@linaro.org>

> ---
>
> Changes in v2:
>   - Swap the order of [3] and [4] to keep the current behavior of
>     kernel/trace/Makefile.
>   - Add ccflags-remove-y to subdir Makefiles of lib/
>
>  Documentation/kbuild/makefiles.rst | 14 ++++++++++++++
>  arch/arm/boot/compressed/Makefile  |  6 +-----
>  arch/powerpc/xmon/Makefile         |  3 +--
>  arch/sh/boot/compressed/Makefile   |  5 +----
>  kernel/trace/Makefile              |  4 ++--
>  lib/842/Makefile                   |  3 +++
>  lib/Makefile                       |  5 +----
>  lib/crypto/Makefile                |  2 ++
>  lib/dim/Makefile                   |  2 ++
>  lib/fonts/Makefile                 |  2 ++
>  lib/kunit/Makefile                 |  3 +++
>  lib/livepatch/Makefile             |  2 ++
>  lib/lz4/Makefile                   |  1 +
>  lib/lzo/Makefile                   |  2 ++
>  lib/math/Makefile                  |  2 ++
>  lib/mpi/Makefile                   |  2 ++
>  lib/raid6/Makefile                 |  3 +++
>  lib/reed_solomon/Makefile          |  2 ++
>  lib/xz/Makefile                    |  3 +++
>  lib/zlib_deflate/Makefile          |  2 ++
>  lib/zlib_dfltcc/Makefile           |  2 ++
>  lib/zlib_inflate/Makefile          |  2 ++
>  lib/zstd/Makefile                  |  1 +
>  scripts/Makefile.lib               | 14 ++++++++------
>  24 files changed, 64 insertions(+), 23 deletions(-)
>
> diff --git a/Documentation/kbuild/makefiles.rst b/Documentation/kbuild/makefiles.rst
> index 6515ebc12b6f..14d8e7d23c04 100644
> --- a/Documentation/kbuild/makefiles.rst
> +++ b/Documentation/kbuild/makefiles.rst
> @@ -368,6 +368,14 @@ more details, with real examples.
>
>                 subdir-ccflags-y := -Werror
>
> +    ccflags-remove-y, asflags-remove-y
> +       These flags are used to remove particular flags for the compiler,
> +       assembler invocations.
> +
> +       Example::
> +
> +               ccflags-remove-$(CONFIG_MCOUNT) += -pg
> +
>      CFLAGS_$@, AFLAGS_$@
>         CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
>         kbuild makefile.
> @@ -375,6 +383,9 @@ more details, with real examples.
>         $(CFLAGS_$@) specifies per-file options for $(CC).  The $@
>         part has a literal value which specifies the file that it is for.
>
> +       CFLAGS_$@ has the higher priority than ccflags-remove-y; CFLAGS_$@
> +       can re-add compiler flags that were removed by ccflags-remove-y.
> +
>         Example::
>
>                 # drivers/scsi/Makefile
> @@ -387,6 +398,9 @@ more details, with real examples.
>         $(AFLAGS_$@) is a similar feature for source files in assembly
>         languages.
>
> +       AFLAGS_$@ has the higher priority than asflags-remove-y; AFLAGS_$@
> +       can re-add assembler flags that were removed by asflags-remove-y.
> +
>         Example::
>
>                 # arch/arm/kernel/Makefile
> diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
> index 00602a6fba04..3d5691b23951 100644
> --- a/arch/arm/boot/compressed/Makefile
> +++ b/arch/arm/boot/compressed/Makefile
> @@ -103,13 +103,9 @@ clean-files += piggy_data lib1funcs.S ashldi3.S bswapsdi2.S hyp-stub.S
>
>  KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
>
> -ifeq ($(CONFIG_FUNCTION_TRACER),y)
> -ORIG_CFLAGS := $(KBUILD_CFLAGS)
> -KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
> -endif
> -
>  ccflags-y := -fpic $(call cc-option,-mno-single-pic-base,) -fno-builtin \
>              -I$(obj) $(DISABLE_ARM_SSP_PER_TASK_PLUGIN)
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += -pg
>  asflags-y := -DZIMAGE
>
>  # Supply kernel BSS size to the decompressor via a linker symbol.
> diff --git a/arch/powerpc/xmon/Makefile b/arch/powerpc/xmon/Makefile
> index 89c76ca35640..eb25d7554ffd 100644
> --- a/arch/powerpc/xmon/Makefile
> +++ b/arch/powerpc/xmon/Makefile
> @@ -7,8 +7,7 @@ UBSAN_SANITIZE := n
>  KASAN_SANITIZE := n
>
>  # Disable ftrace for the entire directory
> -ORIG_CFLAGS := $(KBUILD_CFLAGS)
> -KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
>
>  ifdef CONFIG_CC_IS_CLANG
>  # clang stores addresses on the stack causing the frame size to blow
> diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
> index ad0e2403e56f..589d2d8a573d 100644
> --- a/arch/sh/boot/compressed/Makefile
> +++ b/arch/sh/boot/compressed/Makefile
> @@ -28,10 +28,7 @@ IMAGE_OFFSET := $(shell /bin/bash -c 'printf "0x%08x" \
>                         $(CONFIG_BOOT_LINK_OFFSET)]')
>  endif
>
> -ifeq ($(CONFIG_MCOUNT),y)
> -ORIG_CFLAGS := $(KBUILD_CFLAGS)
> -KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
> -endif
> +ccflags-remove-$(CONFIG_MCOUNT) += -pg
>
>  LDFLAGS_vmlinux := --oformat $(ld-bfd) -Ttext $(IMAGE_OFFSET) -e startup \
>                    -T $(obj)/../../kernel/vmlinux.lds
> diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
> index 6575bb0a0434..7492844a8b1b 100644
> --- a/kernel/trace/Makefile
> +++ b/kernel/trace/Makefile
> @@ -2,9 +2,9 @@
>
>  # Do not instrument the tracer itself:
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  ifdef CONFIG_FUNCTION_TRACER
> -ORIG_CFLAGS := $(KBUILD_CFLAGS)
> -KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
>
>  # Avoid recursion due to instrumentation.
>  KCSAN_SANITIZE := n
> diff --git a/lib/842/Makefile b/lib/842/Makefile
> index 6f7aad269288..b815e824ae37 100644
> --- a/lib/842/Makefile
> +++ b/lib/842/Makefile
> @@ -1,3 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> +
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_842_COMPRESS) += 842_compress.o
>  obj-$(CONFIG_842_DECOMPRESS) += 842_decompress.o
> diff --git a/lib/Makefile b/lib/Makefile
> index b1c42c10073b..b2ed4beddd68 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -3,10 +3,7 @@
>  # Makefile for some libs needed in the kernel.
>  #
>
> -ifdef CONFIG_FUNCTION_TRACER
> -ORIG_CFLAGS := $(KBUILD_CFLAGS)
> -KBUILD_CFLAGS = $(subst $(CC_FLAGS_FTRACE),,$(ORIG_CFLAGS))
> -endif
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
>
>  # These files are disabled because they produce lots of non-interesting and/or
>  # flaky coverage that is not a function of syscall inputs. For example,
> diff --git a/lib/crypto/Makefile b/lib/crypto/Makefile
> index 3a435629d9ce..b557ef0b07c2 100644
> --- a/lib/crypto/Makefile
> +++ b/lib/crypto/Makefile
> @@ -1,5 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  # chacha is used by the /dev/random driver which is always builtin
>  obj-y                                          += chacha.o
>  obj-$(CONFIG_CRYPTO_LIB_CHACHA_GENERIC)                += libchacha.o
> diff --git a/lib/dim/Makefile b/lib/dim/Makefile
> index 1d6858a108cb..97fc3e89d34e 100644
> --- a/lib/dim/Makefile
> +++ b/lib/dim/Makefile
> @@ -2,6 +2,8 @@
>  # DIM Dynamic Interrupt Moderation library
>  #
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_DIMLIB) += dim.o
>
>  dim-y := dim.o net_dim.o rdma_dim.o
> diff --git a/lib/fonts/Makefile b/lib/fonts/Makefile
> index ed95070860de..f951750c179e 100644
> --- a/lib/fonts/Makefile
> +++ b/lib/fonts/Makefile
> @@ -1,6 +1,8 @@
>  # SPDX-License-Identifier: GPL-2.0
>  # Font handling
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  font-objs := fonts.o
>
>  font-objs-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
> diff --git a/lib/kunit/Makefile b/lib/kunit/Makefile
> index 724b94311ca3..8c847557ab24 100644
> --- a/lib/kunit/Makefile
> +++ b/lib/kunit/Makefile
> @@ -1,3 +1,6 @@
> +
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_KUNIT) +=                 kunit.o
>
>  kunit-objs +=                          test.o \
> diff --git a/lib/livepatch/Makefile b/lib/livepatch/Makefile
> index 295b94bff370..9abdf615b088 100644
> --- a/lib/livepatch/Makefile
> +++ b/lib/livepatch/Makefile
> @@ -2,6 +2,8 @@
>  #
>  # Makefile for livepatch test code.
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_TEST_LIVEPATCH) += test_klp_atomic_replace.o \
>                                 test_klp_callbacks_demo.o \
>                                 test_klp_callbacks_demo2.o \
> diff --git a/lib/lz4/Makefile b/lib/lz4/Makefile
> index 5b42242afaa2..53da4cab7015 100644
> --- a/lib/lz4/Makefile
> +++ b/lib/lz4/Makefile
> @@ -1,5 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0-only
>  ccflags-y += -O3
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
>
>  obj-$(CONFIG_LZ4_COMPRESS) += lz4_compress.o
>  obj-$(CONFIG_LZ4HC_COMPRESS) += lz4hc_compress.o
> diff --git a/lib/lzo/Makefile b/lib/lzo/Makefile
> index 2f58fafbbddd..9565a555275b 100644
> --- a/lib/lzo/Makefile
> +++ b/lib/lzo/Makefile
> @@ -1,4 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  lzo_compress-objs := lzo1x_compress.o
>  lzo_decompress-objs := lzo1x_decompress_safe.o
>
> diff --git a/lib/math/Makefile b/lib/math/Makefile
> index be6909e943bd..49aa50e28185 100644
> --- a/lib/math/Makefile
> +++ b/lib/math/Makefile
> @@ -1,4 +1,6 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-y += div64.o gcd.o lcm.o int_pow.o int_sqrt.o reciprocal_div.o
>
>  obj-$(CONFIG_CORDIC)           += cordic.o
> diff --git a/lib/mpi/Makefile b/lib/mpi/Makefile
> index d5874a7f5ff9..df7883521619 100644
> --- a/lib/mpi/Makefile
> +++ b/lib/mpi/Makefile
> @@ -3,6 +3,8 @@
>  # MPI multiprecision maths library (from gpg)
>  #
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_MPILIB) = mpi.o
>
>  mpi-y = \
> diff --git a/lib/raid6/Makefile b/lib/raid6/Makefile
> index b4c0df6d706d..3482d6ae3f3b 100644
> --- a/lib/raid6/Makefile
> +++ b/lib/raid6/Makefile
> @@ -1,4 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0
> +
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_RAID6_PQ) += raid6_pq.o
>
>  raid6_pq-y     += algos.o recov.o tables.o int1.o int2.o int4.o \
> diff --git a/lib/reed_solomon/Makefile b/lib/reed_solomon/Makefile
> index 5d4fa68f26cb..a5c9defdac7f 100644
> --- a/lib/reed_solomon/Makefile
> +++ b/lib/reed_solomon/Makefile
> @@ -3,5 +3,7 @@
>  # This is a modified version of reed solomon lib,
>  #
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_REED_SOLOMON) += reed_solomon.o
>  obj-$(CONFIG_REED_SOLOMON_TEST) += test_rslib.o
> diff --git a/lib/xz/Makefile b/lib/xz/Makefile
> index fa6af814a8d1..fae9b6c7c389 100644
> --- a/lib/xz/Makefile
> +++ b/lib/xz/Makefile
> @@ -1,4 +1,7 @@
>  # SPDX-License-Identifier: GPL-2.0-only
> +
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_XZ_DEC) += xz_dec.o
>  xz_dec-y := xz_dec_syms.o xz_dec_stream.o xz_dec_lzma2.o
>  xz_dec-$(CONFIG_XZ_DEC_BCJ) += xz_dec_bcj.o
> diff --git a/lib/zlib_deflate/Makefile b/lib/zlib_deflate/Makefile
> index 2622e03c0b94..1fcefe73536f 100644
> --- a/lib/zlib_deflate/Makefile
> +++ b/lib/zlib_deflate/Makefile
> @@ -7,6 +7,8 @@
>  # decompression code.
>  #
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_ZLIB_DEFLATE) += zlib_deflate.o
>
>  zlib_deflate-objs := deflate.o deftree.o deflate_syms.o
> diff --git a/lib/zlib_dfltcc/Makefile b/lib/zlib_dfltcc/Makefile
> index 8e4d5afbbb10..7a8067f6e772 100644
> --- a/lib/zlib_dfltcc/Makefile
> +++ b/lib/zlib_dfltcc/Makefile
> @@ -6,6 +6,8 @@
>  # This is the code for s390 zlib hardware support.
>  #
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_ZLIB_DFLTCC) += zlib_dfltcc.o
>
>  zlib_dfltcc-objs := dfltcc.o dfltcc_deflate.o dfltcc_inflate.o dfltcc_syms.o
> diff --git a/lib/zlib_inflate/Makefile b/lib/zlib_inflate/Makefile
> index 27327d3e9f54..a451e96f9845 100644
> --- a/lib/zlib_inflate/Makefile
> +++ b/lib/zlib_inflate/Makefile
> @@ -14,6 +14,8 @@
>  # uncompression can be done without blocking on allocation).
>  #
>
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> +
>  obj-$(CONFIG_ZLIB_INFLATE) += zlib_inflate.o
>
>  zlib_inflate-objs := inffast.o inflate.o infutil.o \
> diff --git a/lib/zstd/Makefile b/lib/zstd/Makefile
> index f5d778e7e5c7..01be908a2d94 100644
> --- a/lib/zstd/Makefile
> +++ b/lib/zstd/Makefile
> @@ -3,6 +3,7 @@ obj-$(CONFIG_ZSTD_COMPRESS) += zstd_compress.o
>  obj-$(CONFIG_ZSTD_DECOMPRESS) += zstd_decompress.o
>
>  ccflags-y += -O3
> +ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
>
>  zstd_compress-y := fse_compress.o huf_compress.o compress.o \
>                    entropy_common.o fse_decompress.o zstd_common.o
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index 916b2f7f7098..3629f66646d7 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -111,12 +111,14 @@ basename_flags = -DKBUILD_BASENAME=$(call name-fix,$(basetarget))
>  modname_flags  = -DKBUILD_MODNAME=$(call name-fix,$(modname))
>  modfile_flags  = -DKBUILD_MODFILE=$(call stringify,$(modfile))
>
> -orig_c_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) \
> -                 $(ccflags-y) $(CFLAGS_$(target-stem).o)
> -_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(target-stem).o), $(orig_c_flags))
> -orig_a_flags   = $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) \
> -                 $(asflags-y) $(AFLAGS_$(target-stem).o)
> -_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(target-stem).o), $(orig_a_flags))
> +_c_flags       = $(filter-out $(CFLAGS_REMOVE_$(target-stem).o), \
> +                     $(filter-out $(ccflags-remove-y), \
> +                         $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS) $(ccflags-y)) \
> +                     $(CFLAGS_$(target-stem).o))
> +_a_flags       = $(filter-out $(AFLAGS_REMOVE_$(target-stem).o), \
> +                     $(filter-out $(asflags-remove-y), \
> +                         $(KBUILD_CPPFLAGS) $(KBUILD_AFLAGS) $(asflags-y)) \
> +                     $(AFLAGS_$(target-stem).o))
>  _cpp_flags     = $(KBUILD_CPPFLAGS) $(cppflags-y) $(CPPFLAGS_$(target-stem).lds)
>
>  #
> --
> 2.25.1
>

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

* Re: [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-07  9:21 ` [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/ Masahiro Yamada
  2020-07-07 16:02   ` Steven Rostedt
@ 2020-07-08  6:52   ` Petr Mladek
  2020-07-08  9:23     ` Petr Mladek
  1 sibling, 1 reply; 10+ messages in thread
From: Petr Mladek @ 2020-07-08  6:52 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-kbuild, Ingo Molnar, Steven Rostedt, Anders Roxell,
	Sami Tolvanen, Brendan Higgins, David S. Miller, Haren Myneni,
	Herbert Xu, Jiri Kosina, Joe Lawrence, Josh Poimboeuf,
	Miroslav Benes, Tal Gilboa, kunit-dev, linux-crypto,
	linux-kernel, linux-kselftest, live-patching

On Tue 2020-07-07 18:21:17, Masahiro Yamada wrote:
>   ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> 
> exists here in sub-directories of lib/ to keep the behavior of
> commit 2464a609ded0 ("ftrace: do not trace library functions").
> 
> Since that commit, not only the objects in lib/ but also the ones in
> the sub-directories are excluded from ftrace (although the commit
> description did not explicitly mention this).
> 
> However, most of library functions in sub-directories are not so hot.
> Re-add them to ftrace.
> 
> Going forward, only the objects right under lib/ will be excluded.
 
> diff --git a/lib/livepatch/Makefile b/lib/livepatch/Makefile
> index 9abdf615b088..295b94bff370 100644
> --- a/lib/livepatch/Makefile
> +++ b/lib/livepatch/Makefile
> @@ -2,8 +2,6 @@
>  #
>  # Makefile for livepatch test code.
>  
> -ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> -
>  obj-$(CONFIG_TEST_LIVEPATCH) += test_klp_atomic_replace.o \
>  				test_klp_callbacks_demo.o \
>  				test_klp_callbacks_demo2.o \

With this change it might be possible to remove also the last few
lines that explicitly added $(CC_FLAGS_FTRACE) for two test modules.

The two modules really needed these flags. But they are fine also
for the other modules.

We could do this later as a followup patch but it would be nice
to do so here.

Best Regards,
Petr

PS: BTW: The livepatch selftests fail in Linus's master now. But it
seems to be for another reason. I am going to dig into it.

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

* Re: [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-08  6:52   ` Petr Mladek
@ 2020-07-08  9:23     ` Petr Mladek
  2020-07-22  2:10       ` Masahiro Yamada
  0 siblings, 1 reply; 10+ messages in thread
From: Petr Mladek @ 2020-07-08  9:23 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: linux-kbuild, Ingo Molnar, Steven Rostedt, Anders Roxell,
	Sami Tolvanen, Brendan Higgins, David S. Miller, Haren Myneni,
	Herbert Xu, Jiri Kosina, Joe Lawrence, Josh Poimboeuf,
	Miroslav Benes, Tal Gilboa, kunit-dev, linux-crypto,
	linux-kernel, linux-kselftest, live-patching

On Wed 2020-07-08 08:52:23, Petr Mladek wrote:
>
> PS: BTW: The livepatch selftests fail in Linus's master now. But it
> seems to be for another reason. I am going to dig into it.

JFYI, the livepatch selftests are actually working. I have messed
the testing here. I am sorry for the noise.

Best Regards,
Petr

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

* Re: [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-07 16:02   ` Steven Rostedt
@ 2020-07-22  2:08     ` Masahiro Yamada
  2020-07-22 20:49       ` Steven Rostedt
  0 siblings, 1 reply; 10+ messages in thread
From: Masahiro Yamada @ 2020-07-22  2:08 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Linux Kbuild mailing list, Ingo Molnar, Anders Roxell,
	Sami Tolvanen, Brendan Higgins, David S. Miller, Haren Myneni,
	Herbert Xu, Jiri Kosina, Joe Lawrence, Josh Poimboeuf,
	Miroslav Benes, Petr Mladek, Tal Gilboa, kunit-dev,
	Linux Crypto Mailing List, Linux Kernel Mailing List,
	open list:KERNEL SELFTEST FRAMEWORK, live-patching

On Wed, Jul 8, 2020 at 1:02 AM Steven Rostedt <rostedt@goodmis.org> wrote:
>
> On Tue,  7 Jul 2020 18:21:17 +0900
> Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> >   ccflags-remove-$(CONFIG_FUNCTION_TRACER) += $(CC_FLAGS_FTRACE)
> >
> > exists here in sub-directories of lib/ to keep the behavior of
> > commit 2464a609ded0 ("ftrace: do not trace library functions").
> >
> > Since that commit, not only the objects in lib/ but also the ones in
> > the sub-directories are excluded from ftrace (although the commit
> > description did not explicitly mention this).
> >
> > However, most of library functions in sub-directories are not so hot.
> > Re-add them to ftrace.
>
> I'm OK with this change, but note, it wasn't just the hot path that I
> disabled ftrace on lib for, but some of these calls are done very early
> at boot up. It may have been PowerPC that I was stumbling over. The
> issue is that they would call mcount before the kernel was mapped
> properly, and the system would crash.
>
> My PowerPC box no longer boots so I can't test this anymore. But a lot
> has changed since 2008, and all this may very well be OK.
>
> -- Steve


That's why I split this into two commits
so that we can do git-bisect and
revert the second one in case of a regression.

Anyway, we have some more time to test this in linux-next
(and somebody reports an issue, if any).


-- 
Best Regards
Masahiro Yamada

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

* Re: [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-08  9:23     ` Petr Mladek
@ 2020-07-22  2:10       ` Masahiro Yamada
  0 siblings, 0 replies; 10+ messages in thread
From: Masahiro Yamada @ 2020-07-22  2:10 UTC (permalink / raw)
  To: Petr Mladek
  Cc: Linux Kbuild mailing list, Ingo Molnar, Steven Rostedt,
	Anders Roxell, Sami Tolvanen, Brendan Higgins, David S. Miller,
	Haren Myneni, Herbert Xu, Jiri Kosina, Joe Lawrence,
	Josh Poimboeuf, Miroslav Benes, Tal Gilboa, kunit-dev,
	Linux Crypto Mailing List, Linux Kernel Mailing List,
	open list:KERNEL SELFTEST FRAMEWORK, live-patching

On Wed, Jul 8, 2020 at 6:23 PM Petr Mladek <pmladek@suse.com> wrote:
>
> On Wed 2020-07-08 08:52:23, Petr Mladek wrote:
> >
> > PS: BTW: The livepatch selftests fail in Linus's master now. But it
> > seems to be for another reason. I am going to dig into it.
>
> JFYI, the livepatch selftests are actually working. I have messed
> the testing here. I am sorry for the noise.
>
> Best Regards,
> Petr

No worry, thank you for testing this patch.


I deleted the following two lines,
otherwise $(CC_FLAGS_FTRACE) would be added twice.

# Target modules to be livepatched require CC_FLAGS_FTRACE
CFLAGS_test_klp_callbacks_busy.o       += $(CC_FLAGS_FTRACE)
CFLAGS_test_klp_callbacks_mod.o                += $(CC_FLAGS_FTRACE)




-- 
Best Regards
Masahiro Yamada

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

* Re: [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/
  2020-07-22  2:08     ` Masahiro Yamada
@ 2020-07-22 20:49       ` Steven Rostedt
  0 siblings, 0 replies; 10+ messages in thread
From: Steven Rostedt @ 2020-07-22 20:49 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Linux Kbuild mailing list, Ingo Molnar, Anders Roxell,
	Sami Tolvanen, Brendan Higgins, David S. Miller, Haren Myneni,
	Herbert Xu, Jiri Kosina, Joe Lawrence, Josh Poimboeuf,
	Miroslav Benes, Petr Mladek, Tal Gilboa, kunit-dev,
	Linux Crypto Mailing List, Linux Kernel Mailing List,
	open list:KERNEL SELFTEST FRAMEWORK, live-patching

On Wed, 22 Jul 2020 11:08:51 +0900
Masahiro Yamada <masahiroy@kernel.org> wrote:

> That's why I split this into two commits
> so that we can do git-bisect and
> revert the second one in case of a regression.
> 
> Anyway, we have some more time to test this in linux-next
> (and somebody reports an issue, if any).
> 

You can add my

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

and take it through your tree.

-- Steve

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

end of thread, back to index

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-07  9:21 [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Masahiro Yamada
2020-07-07  9:21 ` [PATCH v2 2/2] kbuild: trace functions in subdirectories of lib/ Masahiro Yamada
2020-07-07 16:02   ` Steven Rostedt
2020-07-22  2:08     ` Masahiro Yamada
2020-07-22 20:49       ` Steven Rostedt
2020-07-08  6:52   ` Petr Mladek
2020-07-08  9:23     ` Petr Mladek
2020-07-22  2:10       ` Masahiro Yamada
2020-07-07 19:58 ` [PATCH v2 1/2] kbuild: introduce ccflags-remove-y and asflags-remove-y Brendan Higgins
2020-07-07 21:25 ` Anders Roxell

Live-Patching Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/live-patching/0 live-patching/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 live-patching live-patching/ https://lore.kernel.org/live-patching \
		live-patching@vger.kernel.org
	public-inbox-index live-patching

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.live-patching


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git