All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
To: "H. Peter Anvin" <hpa@zytor.com>, Meelis Roos <mroos@linux.ee>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Linux Kernel list <linux-kernel@vger.kernel.org>
Subject: Re: 3.13: BUG: unable to handle kernel paging request at 00000000b4343e88
Date: Thu, 06 Feb 2014 15:58:20 +0100	[thread overview]
Message-ID: <52F3A30C.7050205@linux.vnet.ibm.com> (raw)
In-Reply-To: <52F27683.8090404@zytor.com>

On 05.02.2014 18:36, H. Peter Anvin wrote:
> On 02/05/2014 09:00 AM, Peter Oberparleiter wrote:
>>
>> Could you give this patch a try? It is a variation of the approach
>> proposed in the discussion mentioned earlier and fixes the problem
>> on my system.
>>
> 
> I would rather suggest that we explicitly disable gcov etc. from these
> kinds of small, magic primitives.  Honestly, you're just trying to put a
> bandaid on a gaping wound.
> 
> The real thing here is that hweight.c is not a normal C file, and we
> shouldn't treat is as such.  It is a constrained environment, and trying
> to tack crap like gcov to it is bound to lose, simply because gcov
> doesn't know the rules it has to play by.
> 
> Even with the below change, if gcov clobbers, say, %rdx we're still screwed.

I'm fine with the proposed alternative of disabling gcov profiling for
lib/hweight.c. The patch below fixes the problem on my test system.

---
x86/hweight: Fix BUG when booting with CONFIG_GCOV_PROFILE_ALL=y

Commit d61931d89b, "x86: Add optimized popcnt variants" introduced
compile flag -fcall-saved-rdi for lib/hweight.c. When combined with
options -fprofile-arcs and -O2, this flag causes gcc to generate broken
constructor code. As a result, a 64 bit x86 kernel compiled with
CONFIG_GCOV_PROFILE_ALL=y prints message "gcov: could not create file"
and runs into sproadic BUGs during boot.

This patch avoids the bug by excluding lib/hweight.o from coverage
profiling.

Reported-by: Meelis Roos <mroos@linux.ee>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
---
 lib/Makefile |    1 +
 1 file changed, 1 insertion(+)
diff -Naurp a/lib/Makefile b/lib/Makefile
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -43,6 +43,7 @@ obj-$(CONFIG_HAS_IOMEM) += iomap_copy.o
 obj-$(CONFIG_CHECK_SIGNATURE) += check_signature.o
 obj-$(CONFIG_DEBUG_LOCKING_API_SELFTESTS) += locking-selftest.o

+GCOV_PROFILE_hweight.o := n
 CFLAGS_hweight.o = $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS))
 obj-$(CONFIG_GENERIC_HWEIGHT) += hweight.o


  reply	other threads:[~2014-02-06 14:58 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-21 10:34 3.13: BUG: unable to handle kernel paging request at 00000000b4343e88 Meelis Roos
2014-01-21 22:10 ` Andrew Morton
2014-01-22 15:33   ` Meelis Roos
2014-01-24 13:47     ` Peter Oberparleiter
2014-01-24 20:54       ` Meelis Roos
2014-01-27 15:53         ` Peter Oberparleiter
2014-01-28  6:33           ` Meelis Roos
2014-01-29 15:05             ` Peter Oberparleiter
     [not found]               ` <alpine.SOC.1.00.1401292242390.12718@math.ut.ee>
2014-01-31 15:50                 ` Peter Oberparleiter
2014-02-05 17:00                   ` Peter Oberparleiter
2014-02-05 17:36                     ` H. Peter Anvin
2014-02-06 14:58                       ` Peter Oberparleiter [this message]
2014-02-06 15:18                         ` [tip:x86/urgent] x86, hweight: Fix BUG when booting with CONFIG_GCOV_PROFILE_ALL=y tip-bot for Peter Oberparleiter
2014-02-06  6:19                     ` 3.13: BUG: unable to handle kernel paging request at 00000000b4343e88 Meelis Roos

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=52F3A30C.7050205@linux.vnet.ibm.com \
    --to=oberpar@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mroos@linux.ee \
    /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.