All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Andi Kleen <ak@linux.intel.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
	ak@linux.intel.com, tglx@linutronix.de
Subject: [tip:x86/cleanups] debug: Add CONFIG_READABLE_ASM
Date: Fri, 30 Mar 2012 10:41:19 -0700	[thread overview]
Message-ID: <tip-1873e870fd63ee4b87dbe0125ca373e420fb4987@git.kernel.org> (raw)
In-Reply-To: <1332960678-11879-2-git-send-email-andi@firstfloor.org>

Commit-ID:  1873e870fd63ee4b87dbe0125ca373e420fb4987
Gitweb:     http://git.kernel.org/tip/1873e870fd63ee4b87dbe0125ca373e420fb4987
Author:     Andi Kleen <ak@linux.intel.com>
AuthorDate: Wed, 28 Mar 2012 11:51:18 -0700
Committer:  H. Peter Anvin <hpa@zytor.com>
CommitDate: Fri, 30 Mar 2012 10:15:21 -0700

debug: Add CONFIG_READABLE_ASM

Add a config option to disable various gcc compiler optimizations that
make assembler listings much harder to read. This is everything that reorders
code significantly or creates partial functions.

This is mainly to keep kernel hackers sane.

Signed-off-by: Andi Kleen <ak@linux.intel.com>
Link: http://lkml.kernel.org/r/1332960678-11879-2-git-send-email-andi@firstfloor.org
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
---
 Makefile          |   10 ++++++++++
 lib/Kconfig.debug |    9 +++++++++
 2 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/Makefile b/Makefile
index 1932984..6f7328b 100644
--- a/Makefile
+++ b/Makefile
@@ -564,6 +564,16 @@ else
 KBUILD_CFLAGS	+= -O2
 endif
 
+ifdef CONFIG_READABLE_ASM
+# Disable optimizations that make assembler listings hard to read.
+# reorder blocks reorders the control in the function
+# ipa clone creates specialized cloned functions
+# partial inlining inlines only parts of functions
+KBUILD_CFLAGS += $(call cc-option,-fno-reorder-blocks,) \
+                 $(call cc-option,-fno-ipa-cp-clone,) \
+                 $(call cc-option,-fno-partial-inlining)
+endif
+
 include $(srctree)/arch/$(SRCARCH)/Makefile
 
 ifneq ($(CONFIG_FRAME_WARN),0)
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 6777153..4d3cbbb 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -70,6 +70,15 @@ config STRIP_ASM_SYMS
 	  that look like '.Lxxx') so they don't pollute the output of
 	  get_wchan() and suchlike.
 
+config READABLE_ASM
+        bool "Generate readable assembler code"
+        depends on DEBUG_KERNEL
+        help
+          Disable some compiler optimizations that tend to generate human unreadable
+          assembler output. This may make the kernel slightly slower, but it helps
+          to keep kernel developers who have to stare a lot at assembler listings
+          sane.
+
 config UNUSED_SYMBOLS
 	bool "Enable unused/obsolete exported symbols"
 	default y if X86

  reply	other threads:[~2012-03-30 17:41 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-28 18:51 [PATCH 1/2] x86: Use -mno-avx when available Andi Kleen
2012-03-28 18:51 ` [PATCH 2/2] Add CONFIG_READABLE_ASM Andi Kleen
2012-03-30 17:41   ` tip-bot for Andi Kleen [this message]
2012-04-12 19:08   ` Geert Uytterhoeven
2012-04-12 19:36     ` H. Peter Anvin
2012-04-12 19:42       ` Geert Uytterhoeven
2012-04-12 19:40     ` Sam Ravnborg
2012-04-12 19:47       ` Geert Uytterhoeven
2012-04-12 19:52         ` Sam Ravnborg
2012-04-12 19:57         ` Andi Kleen
2012-04-12 20:07           ` Sam Ravnborg
2012-04-12 20:17             ` Geert Uytterhoeven
2012-04-12 20:35               ` Sam Ravnborg
2012-05-08 19:36                 ` Geert Uytterhoeven
2012-05-12 20:23                   ` Geert Uytterhoeven
2012-05-12 20:25                     ` Sam Ravnborg
2012-03-30 17:16 ` [tip:x86/urgent] x86: Use -mno-avx when available tip-bot for Andi Kleen

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=tip-1873e870fd63ee4b87dbe0125ca373e420fb4987@git.kernel.org \
    --to=ak@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tglx@linutronix.de \
    /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: link
Be 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.