From: changbin.du@intel.com To: mingo@redhat.com, akpm@linux-foundation.org, yamada.masahiro@socionext.com, michal.lkml@markovi.net Cc: rostedt@goodmis.org, tglx@linutronix.de, rdunlap@infradead.org, x86@kernel.org, linux@armlinux.org.uk, lgirdwood@gmail.com, broonie@kernel.org, arnd@arndb.de, linux-kbuild@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-sparse@vger.kernel.org, changbin.du@gmail.com, Changbin Du <changbin.du@intel.com> Subject: [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations Date: Tue, 5 Jun 2018 16:13:38 +0800 [thread overview] Message-ID: <1528186420-6615-3-git-send-email-changbin.du@intel.com> (raw) In-Reply-To: <1528186420-6615-1-git-send-email-changbin.du@intel.com> From: Changbin Du <changbin.du@intel.com> This patch add a new kernel hacking option NO_AUTO_INLINE. Selecting this option will prevent the compiler from optimizing the kernel by auto-inlining functions not marked with the inline keyword. With this option, only functions explicitly marked with "inline" will be inlined. This will allow the function tracer to trace more functions because it only traces functions that the compiler has not inlined. Signed-off-by: Changbin Du <changbin.du@intel.com> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- v2: Some grammar updates from Steven. --- Makefile | 6 ++++++ lib/Kconfig.debug | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/Makefile b/Makefile index d0d2652..6720c40 100644 --- a/Makefile +++ b/Makefile @@ -775,6 +775,12 @@ KBUILD_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ $(call cc-option,-fno-var-tracking) endif +ifdef CONFIG_NO_AUTO_INLINE +KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions) \ + $(call cc-option, -fno-inline-small-functions) \ + $(call cc-option, -fno-inline-functions-called-once) +endif + ifdef CONFIG_FUNCTION_TRACER ifndef CC_FLAGS_FTRACE CC_FLAGS_FTRACE := -pg diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index c40c7b7..da52243 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -198,6 +198,23 @@ config GDB_SCRIPTS instance. See Documentation/dev-tools/gdb-kernel-debugging.rst for further details. +config NO_AUTO_INLINE + bool "Disable compiler auto-inline optimizations" + help + This will prevent the compiler from optimizing the kernel by + auto-inlining functions not marked with the inline keyword. + With this option, only functions explicitly marked with + "inline" will be inlined. This will allow the function tracer + to trace more functions because it only traces functions that + the compiler has not inlined. + + Enabling this function can help debugging a kernel if using + the function tracer. But it can also change how the kernel + works, because inlining functions may change the timing, + which could make it difficult while debugging race conditions. + + If unsure, select N. + config ENABLE_WARN_DEPRECATED bool "Enable __deprecated logic" default y -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: changbin.du@intel.com (changbin.du at intel.com) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations Date: Tue, 5 Jun 2018 16:13:38 +0800 [thread overview] Message-ID: <1528186420-6615-3-git-send-email-changbin.du@intel.com> (raw) In-Reply-To: <1528186420-6615-1-git-send-email-changbin.du@intel.com> From: Changbin Du <changbin.du@intel.com> This patch add a new kernel hacking option NO_AUTO_INLINE. Selecting this option will prevent the compiler from optimizing the kernel by auto-inlining functions not marked with the inline keyword. With this option, only functions explicitly marked with "inline" will be inlined. This will allow the function tracer to trace more functions because it only traces functions that the compiler has not inlined. Signed-off-by: Changbin Du <changbin.du@intel.com> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org> --- v2: Some grammar updates from Steven. --- Makefile | 6 ++++++ lib/Kconfig.debug | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/Makefile b/Makefile index d0d2652..6720c40 100644 --- a/Makefile +++ b/Makefile @@ -775,6 +775,12 @@ KBUILD_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \ $(call cc-option,-fno-var-tracking) endif +ifdef CONFIG_NO_AUTO_INLINE +KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions) \ + $(call cc-option, -fno-inline-small-functions) \ + $(call cc-option, -fno-inline-functions-called-once) +endif + ifdef CONFIG_FUNCTION_TRACER ifndef CC_FLAGS_FTRACE CC_FLAGS_FTRACE := -pg diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index c40c7b7..da52243 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -198,6 +198,23 @@ config GDB_SCRIPTS instance. See Documentation/dev-tools/gdb-kernel-debugging.rst for further details. +config NO_AUTO_INLINE + bool "Disable compiler auto-inline optimizations" + help + This will prevent the compiler from optimizing the kernel by + auto-inlining functions not marked with the inline keyword. + With this option, only functions explicitly marked with + "inline" will be inlined. This will allow the function tracer + to trace more functions because it only traces functions that + the compiler has not inlined. + + Enabling this function can help debugging a kernel if using + the function tracer. But it can also change how the kernel + works, because inlining functions may change the timing, + which could make it difficult while debugging race conditions. + + If unsure, select N. + config ENABLE_WARN_DEPRECATED bool "Enable __deprecated logic" default y -- 2.7.4
next prev parent reply other threads:[~2018-06-05 8:24 UTC|newest] Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-06-05 8:13 [RESEND PATCH v5 0/4] kernel hacking: GCC optimization for better debug experience (-Og) changbin.du 2018-06-05 8:13 ` changbin.du at intel.com 2018-06-05 8:13 ` [PATCH v5 1/4] x86/mm: surround level4_kernel_pgt with #ifdef CONFIG_X86_5LEVEL...#endif changbin.du 2018-06-05 8:13 ` changbin.du at intel.com 2018-06-05 8:13 ` changbin.du [this message] 2018-06-05 8:13 ` [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations changbin.du at intel.com 2018-06-05 21:21 ` kbuild test robot 2018-06-05 21:21 ` kbuild test robot 2018-06-05 21:21 ` kbuild test robot 2018-06-05 21:21 ` kbuild test robot 2018-06-06 13:57 ` Steven Rostedt 2018-06-06 13:57 ` Steven Rostedt 2018-06-06 14:26 ` Johan Hovold 2018-06-06 14:26 ` Johan Hovold 2018-06-06 18:26 ` Steven Rostedt 2018-06-06 18:26 ` Steven Rostedt 2018-06-07 4:17 ` Viresh Kumar 2018-06-07 4:17 ` Viresh Kumar 2018-06-07 7:46 ` Du, Changbin 2018-06-07 7:46 ` Du, Changbin 2018-06-07 8:38 ` Viresh Kumar 2018-06-07 8:38 ` Viresh Kumar 2018-06-07 9:03 ` Bernd Petrovitsch 2018-06-07 9:03 ` Bernd Petrovitsch 2018-06-07 9:03 ` Bernd Petrovitsch 2018-06-07 9:10 ` Viresh Kumar 2018-06-07 9:10 ` Viresh Kumar 2018-06-07 9:18 ` Johan Hovold 2018-06-07 9:18 ` Johan Hovold 2018-06-07 9:19 ` Viresh Kumar 2018-06-07 9:19 ` Viresh Kumar 2018-06-07 10:12 ` Alex Elder 2018-06-07 10:12 ` Alex Elder 2018-06-07 10:27 ` Johan Hovold 2018-06-07 10:27 ` Johan Hovold 2018-06-07 10:27 ` Johan Hovold 2018-06-08 20:03 ` Steven Rostedt 2018-06-08 20:03 ` Steven Rostedt 2018-06-11 15:46 ` Johan Hovold 2018-06-11 15:46 ` Johan Hovold 2018-06-07 8:06 ` Johan Hovold 2018-06-07 8:06 ` Johan Hovold 2018-06-05 21:34 ` kbuild test robot 2018-06-05 21:34 ` kbuild test robot 2018-06-05 21:34 ` kbuild test robot 2018-06-05 21:34 ` kbuild test robot 2018-06-06 14:01 ` Steven Rostedt 2018-06-06 14:01 ` Steven Rostedt 2018-06-05 8:13 ` [PATCH v5 3/4] ARM: mm: fix build error in fix_to_virt with CONFIG_CC_OPTIMIZE_FOR_DEBUGGING changbin.du 2018-06-05 8:13 ` changbin.du at intel.com 2018-06-05 8:13 ` [PATCH v5 4/4] kernel hacking: new config CC_OPTIMIZE_FOR_DEBUGGING to apply GCC -Og optimization changbin.du 2018-06-05 8:13 ` changbin.du at intel.com 2018-06-10 10:44 ` kbuild test robot 2018-06-10 10:44 ` kbuild test robot 2018-06-10 10:44 ` kbuild test robot 2018-06-10 10:44 ` kbuild test robot 2018-06-10 15:49 ` kbuild test robot 2018-06-10 15:49 ` kbuild test robot 2018-06-10 15:49 ` kbuild test robot 2018-06-10 15:49 ` kbuild test robot 2018-06-11 16:00 ` Steven Rostedt 2018-06-11 16:00 ` Steven Rostedt -- strict thread matches above, loose matches on Subject: below -- 2018-05-11 8:09 [PATCH v5 0/4] kernel hacking: GCC optimization for better debug experience (-Og) changbin.du 2018-05-11 8:09 ` [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations changbin.du 2018-05-17 15:49 ` kbuild test robot 2018-05-17 15:49 ` kbuild test robot 2018-05-17 15:49 ` kbuild test robot 2018-05-17 17:58 ` kbuild test robot 2018-05-17 17:58 ` kbuild test robot 2018-05-17 17:58 ` kbuild test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1528186420-6615-3-git-send-email-changbin.du@intel.com \ --to=changbin.du@intel.com \ --cc=akpm@linux-foundation.org \ --cc=arnd@arndb.de \ --cc=broonie@kernel.org \ --cc=changbin.du@gmail.com \ --cc=lgirdwood@gmail.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kbuild@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-sparse@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=michal.lkml@markovi.net \ --cc=mingo@redhat.com \ --cc=rdunlap@infradead.org \ --cc=rostedt@goodmis.org \ --cc=tglx@linutronix.de \ --cc=x86@kernel.org \ --cc=yamada.masahiro@socionext.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.