linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends'
@ 2017-02-27 20:59 Guenter Roeck
  2017-02-27 22:21 ` Josh Poimboeuf
  0 siblings, 1 reply; 6+ messages in thread
From: Guenter Roeck @ 2017-02-27 20:59 UTC (permalink / raw)
  To: Josh Poimboeuf; +Cc: Peter Zijlstra, Ingo Molnar, linux-kernel

Hi,

my qemu tests for mips64 in -next fail as follows.

...
VFS: Mounted root (ext3 filesystem) on device 8:0.
Freeing unused kernel memory: 304K
This architecture does not have kernel memory protection.
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a

---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a

There is no symbol traceback, and I don't see any other (obvious) error
message.  bisect points to commit 'objtool: Improve detection of BUG()
and other dead ends'; reverting that patch fixes the problem.
Bisect log is attached below.

The script used to run the test as well as the root file system is available
at https://github.com/groeck/linux-build-test/tree/master/rootfs/mips64

A complete log is available at
http://kerneltests.org/builders/qemu-mips64-next/builds/592/steps/qemubuildcommand/logs/stdio

Guenter

---
# bad: [ed7b11e565c736828f0b793f596a4ca20efee747] Add linux-next specific files for 20170227
# good: [c470abd4fde40ea6a0846a2beab642a578c0b8cd] Linux 4.10
git bisect start 'HEAD' 'v4.10'
# good: [caa59428971d5ad81d19512365c9ba580d83268c] Merge tag 'staging-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
git bisect good caa59428971d5ad81d19512365c9ba580d83268c
# good: [d5500a074741b78b7f778b4ab3415d5ecdcda0a7] Merge tag 'usercopy-v4.11-rc1.fix' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
git bisect good d5500a074741b78b7f778b4ab3415d5ecdcda0a7
# good: [5d8a00eee2ed2e548a5d21b0edf495f3f7bf8bb4] Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
git bisect good 5d8a00eee2ed2e548a5d21b0edf495f3f7bf8bb4
# good: [017bfb6c372fa793cdb09828597a464fa24e0ea7] Merge remote-tracking branch 'jfs/jfs-next'
git bisect good 017bfb6c372fa793cdb09828597a464fa24e0ea7
# bad: [e2a95a3fe9e9586df29e8d673dc8cdd36ed6158b] Merge remote-tracking branch 'edac/linux_next'
git bisect bad e2a95a3fe9e9586df29e8d673dc8cdd36ed6158b
# good: [736e441efdafdbf0bb32732d87e00b8ba7f75260] Merge remote-tracking branch 'thermal/next'
git bisect good 736e441efdafdbf0bb32732d87e00b8ba7f75260
# good: [5bd695c24b294b482d86d352a4a0c7ba2059dcff] Merge remote-tracking branch 'block/for-next'
git bisect good 5bd695c24b294b482d86d352a4a0c7ba2059dcff
# good: [690962e72babac64c8240071e106d2c3e8d08306] Merge remote-tracking branch 'spi/for-next'
git bisect good 690962e72babac64c8240071e106d2c3e8d08306
# bad: [462a53b1a2f984a8c8c0aade1c461ce9ea156d5b] Merge branch 'perf/urgent'
git bisect bad 462a53b1a2f984a8c8c0aade1c461ce9ea156d5b
# good: [bb963e16507ca7670f0bb47ccaada8874b2ba6a1] perf utils: Check verbose flag properly
git bisect good bb963e16507ca7670f0bb47ccaada8874b2ba6a1
# good: [7bbba0eb1af34694868d028b80475981f90e6bee] perf/core: Fix perf_event_enable_on_exec() timekeeping (again)
git bisect good 7bbba0eb1af34694868d028b80475981f90e6bee
# bad: [1db159781cc7df093085ccaddc022beaaa9dd990] Merge branch 'core/urgent'
git bisect bad 1db159781cc7df093085ccaddc022beaaa9dd990
# bad: [d1091c7fa3d52ebce4dd3f15d04155b3469b2f90] objtool: Improve detection of BUG() and other dead ends
git bisect bad d1091c7fa3d52ebce4dd3f15d04155b3469b2f90
# good: [9f0c18aec620bc9d82268b3cb937568dd07b43ff] objtool: Fix CONFIG_STACK_VALIDATION=y warning for out-of-tree modules
git bisect good 9f0c18aec620bc9d82268b3cb937568dd07b43ff
# first bad commit: [d1091c7fa3d52ebce4dd3f15d04155b3469b2f90] objtool: Improve detection of BUG() and other dead ends

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

* Re: Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends'
  2017-02-27 20:59 Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends' Guenter Roeck
@ 2017-02-27 22:21 ` Josh Poimboeuf
  2017-02-27 23:23   ` Guenter Roeck
  0 siblings, 1 reply; 6+ messages in thread
From: Josh Poimboeuf @ 2017-02-27 22:21 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Peter Zijlstra, Ingo Molnar, linux-kernel

On Mon, Feb 27, 2017 at 12:59:23PM -0800, Guenter Roeck wrote:
> Hi,
> 
> my qemu tests for mips64 in -next fail as follows.
> 
> ...
> VFS: Mounted root (ext3 filesystem) on device 8:0.
> Freeing unused kernel memory: 304K
> This architecture does not have kernel memory protection.
> Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> 
> ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> 
> There is no symbol traceback, and I don't see any other (obvious) error
> message.  bisect points to commit 'objtool: Improve detection of BUG()
> and other dead ends'; reverting that patch fixes the problem.
> Bisect log is attached below.
> 
> The script used to run the test as well as the root file system is available
> at https://github.com/groeck/linux-build-test/tree/master/rootfs/mips64
> 
> A complete log is available at
> http://kerneltests.org/builders/qemu-mips64-next/builds/592/steps/qemubuildcommand/logs/stdio

Hi Guenter,

This failure doesn't make much sense.  Objtool (and the reported bad
patch) are x86-only and should have nothing to do with mips64.  Would it
be possible for you to double check the error?

Otherwise I could try to recreate.  Do you have a recommendation for a
mips cross-compiler?  (preferably something that's already built and that
might work on Fedora)

> ---
> # bad: [ed7b11e565c736828f0b793f596a4ca20efee747] Add linux-next specific files for 20170227
> # good: [c470abd4fde40ea6a0846a2beab642a578c0b8cd] Linux 4.10
> git bisect start 'HEAD' 'v4.10'
> # good: [caa59428971d5ad81d19512365c9ba580d83268c] Merge tag 'staging-4.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
> git bisect good caa59428971d5ad81d19512365c9ba580d83268c
> # good: [d5500a074741b78b7f778b4ab3415d5ecdcda0a7] Merge tag 'usercopy-v4.11-rc1.fix' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
> git bisect good d5500a074741b78b7f778b4ab3415d5ecdcda0a7
> # good: [5d8a00eee2ed2e548a5d21b0edf495f3f7bf8bb4] Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux
> git bisect good 5d8a00eee2ed2e548a5d21b0edf495f3f7bf8bb4
> # good: [017bfb6c372fa793cdb09828597a464fa24e0ea7] Merge remote-tracking branch 'jfs/jfs-next'
> git bisect good 017bfb6c372fa793cdb09828597a464fa24e0ea7
> # bad: [e2a95a3fe9e9586df29e8d673dc8cdd36ed6158b] Merge remote-tracking branch 'edac/linux_next'
> git bisect bad e2a95a3fe9e9586df29e8d673dc8cdd36ed6158b
> # good: [736e441efdafdbf0bb32732d87e00b8ba7f75260] Merge remote-tracking branch 'thermal/next'
> git bisect good 736e441efdafdbf0bb32732d87e00b8ba7f75260
> # good: [5bd695c24b294b482d86d352a4a0c7ba2059dcff] Merge remote-tracking branch 'block/for-next'
> git bisect good 5bd695c24b294b482d86d352a4a0c7ba2059dcff
> # good: [690962e72babac64c8240071e106d2c3e8d08306] Merge remote-tracking branch 'spi/for-next'
> git bisect good 690962e72babac64c8240071e106d2c3e8d08306
> # bad: [462a53b1a2f984a8c8c0aade1c461ce9ea156d5b] Merge branch 'perf/urgent'
> git bisect bad 462a53b1a2f984a8c8c0aade1c461ce9ea156d5b
> # good: [bb963e16507ca7670f0bb47ccaada8874b2ba6a1] perf utils: Check verbose flag properly
> git bisect good bb963e16507ca7670f0bb47ccaada8874b2ba6a1
> # good: [7bbba0eb1af34694868d028b80475981f90e6bee] perf/core: Fix perf_event_enable_on_exec() timekeeping (again)
> git bisect good 7bbba0eb1af34694868d028b80475981f90e6bee
> # bad: [1db159781cc7df093085ccaddc022beaaa9dd990] Merge branch 'core/urgent'
> git bisect bad 1db159781cc7df093085ccaddc022beaaa9dd990
> # bad: [d1091c7fa3d52ebce4dd3f15d04155b3469b2f90] objtool: Improve detection of BUG() and other dead ends
> git bisect bad d1091c7fa3d52ebce4dd3f15d04155b3469b2f90
> # good: [9f0c18aec620bc9d82268b3cb937568dd07b43ff] objtool: Fix CONFIG_STACK_VALIDATION=y warning for out-of-tree modules
> git bisect good 9f0c18aec620bc9d82268b3cb937568dd07b43ff
> # first bad commit: [d1091c7fa3d52ebce4dd3f15d04155b3469b2f90] objtool: Improve detection of BUG() and other dead ends

-- 
Josh

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

* Re: Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends'
  2017-02-27 22:21 ` Josh Poimboeuf
@ 2017-02-27 23:23   ` Guenter Roeck
  2017-02-28  0:43     ` Josh Poimboeuf
  0 siblings, 1 reply; 6+ messages in thread
From: Guenter Roeck @ 2017-02-27 23:23 UTC (permalink / raw)
  To: Josh Poimboeuf; +Cc: Peter Zijlstra, Ingo Molnar, linux-kernel

Hi Josh,

On Mon, Feb 27, 2017 at 04:21:14PM -0600, Josh Poimboeuf wrote:
> On Mon, Feb 27, 2017 at 12:59:23PM -0800, Guenter Roeck wrote:
> > Hi,
> > 
> > my qemu tests for mips64 in -next fail as follows.
> > 
> > ...
> > VFS: Mounted root (ext3 filesystem) on device 8:0.
> > Freeing unused kernel memory: 304K
> > This architecture does not have kernel memory protection.
> > Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> > 
> > ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> > 
> > There is no symbol traceback, and I don't see any other (obvious) error
> > message.  bisect points to commit 'objtool: Improve detection of BUG()
> > and other dead ends'; reverting that patch fixes the problem.
> > Bisect log is attached below.
> > 
> > The script used to run the test as well as the root file system is available
> > at https://github.com/groeck/linux-build-test/tree/master/rootfs/mips64
> > 
> > A complete log is available at
> > http://kerneltests.org/builders/qemu-mips64-next/builds/592/steps/qemubuildcommand/logs/stdio
> 
> Hi Guenter,
> 
> This failure doesn't make much sense.  Objtool (and the reported bad
> patch) are x86-only and should have nothing to do with mips64.  Would it
> be possible for you to double check the error?
> 
I already did; after all, bisect points to the patch, and reverting it fixes
the problem. After looking into the patch, I concluded that the following
might help.

-#define unreachable() annotate_unreachable(); __builtin_unreachable()
+#define unreachable() do { annotate_unreachable(); __builtin_unreachable(); } while (0)

and it does ...

> Otherwise I could try to recreate.  Do you have a recommendation for a
> mips cross-compiler?  (preferably something that's already built and that
> might work on Fedora)
> 
I use gcc 4.9.0 from
https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/4.9.0/

Guenter

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

* Re: Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends'
  2017-02-27 23:23   ` Guenter Roeck
@ 2017-02-28  0:43     ` Josh Poimboeuf
  2017-02-28  4:21       ` [PATCH] objtool: enclose contents of unreachable() macro in a block Josh Poimboeuf
  0 siblings, 1 reply; 6+ messages in thread
From: Josh Poimboeuf @ 2017-02-28  0:43 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Peter Zijlstra, Ingo Molnar, linux-kernel

On Mon, Feb 27, 2017 at 03:23:28PM -0800, Guenter Roeck wrote:
> Hi Josh,
> 
> On Mon, Feb 27, 2017 at 04:21:14PM -0600, Josh Poimboeuf wrote:
> > On Mon, Feb 27, 2017 at 12:59:23PM -0800, Guenter Roeck wrote:
> > > Hi,
> > > 
> > > my qemu tests for mips64 in -next fail as follows.
> > > 
> > > ...
> > > VFS: Mounted root (ext3 filesystem) on device 8:0.
> > > Freeing unused kernel memory: 304K
> > > This architecture does not have kernel memory protection.
> > > Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> > > 
> > > ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000a
> > > 
> > > There is no symbol traceback, and I don't see any other (obvious) error
> > > message.  bisect points to commit 'objtool: Improve detection of BUG()
> > > and other dead ends'; reverting that patch fixes the problem.
> > > Bisect log is attached below.
> > > 
> > > The script used to run the test as well as the root file system is available
> > > at https://github.com/groeck/linux-build-test/tree/master/rootfs/mips64
> > > 
> > > A complete log is available at
> > > http://kerneltests.org/builders/qemu-mips64-next/builds/592/steps/qemubuildcommand/logs/stdio
> > 
> > Hi Guenter,
> > 
> > This failure doesn't make much sense.  Objtool (and the reported bad
> > patch) are x86-only and should have nothing to do with mips64.  Would it
> > be possible for you to double check the error?
> > 
> I already did; after all, bisect points to the patch, and reverting it fixes
> the problem. After looking into the patch, I concluded that the following
> might help.
> 
> -#define unreachable() annotate_unreachable(); __builtin_unreachable()
> +#define unreachable() do { annotate_unreachable(); __builtin_unreachable(); } while (0)
> 
> and it does ...
> 

Doh, of course.  Thanks for pointing it out, I'll fix it.

-- 
Josh

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

* [PATCH] objtool: enclose contents of unreachable() macro in a block
  2017-02-28  0:43     ` Josh Poimboeuf
@ 2017-02-28  4:21       ` Josh Poimboeuf
  2017-02-28  6:49         ` [tip:core/urgent] objtool: Enclose " tip-bot for Josh Poimboeuf
  0 siblings, 1 reply; 6+ messages in thread
From: Josh Poimboeuf @ 2017-02-28  4:21 UTC (permalink / raw)
  To: Guenter Roeck; +Cc: Peter Zijlstra, Ingo Molnar, linux-kernel


Guenter Roeck reported a boot failure in mips64.  It was bisected to the
following commit:

  d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")

The unreachable() macro was formerly only composed of a single
statement.  The above commit added a second statement, but neglected to
enclose the statements in a block.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Suggested-by: Guenter Roeck <linux@roeck-us.net>
Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
---
 include/linux/compiler-gcc.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index de47134..f457b520 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -215,7 +215,8 @@
  * this in the preprocessor, but we can live with this because they're
  * unreleased.  Really, we need to have autoconf for the kernel.
  */
-#define unreachable() annotate_unreachable(); __builtin_unreachable()
+#define unreachable() \
+	do { annotate_unreachable(); __builtin_unreachable(); } while (0)
 
 /* Mark a function definition as prohibited from being cloned. */
 #define __noclone	__attribute__((__noclone__, __optimize__("no-tracer")))
-- 
2.7.4

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

* [tip:core/urgent] objtool: Enclose contents of unreachable() macro in a block
  2017-02-28  4:21       ` [PATCH] objtool: enclose contents of unreachable() macro in a block Josh Poimboeuf
@ 2017-02-28  6:49         ` tip-bot for Josh Poimboeuf
  0 siblings, 0 replies; 6+ messages in thread
From: tip-bot for Josh Poimboeuf @ 2017-02-28  6:49 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: jpoimboe, hpa, mingo, tglx, peterz, linux, torvalds, linux-kernel

Commit-ID:  4e4636cf981b5b629fbfb78aa9f232e015f7d521
Gitweb:     http://git.kernel.org/tip/4e4636cf981b5b629fbfb78aa9f232e015f7d521
Author:     Josh Poimboeuf <jpoimboe@redhat.com>
AuthorDate: Mon, 27 Feb 2017 22:21:16 -0600
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Tue, 28 Feb 2017 07:47:26 +0100

objtool: Enclose contents of unreachable() macro in a block

Guenter Roeck reported a boot failure in mips64.  It was bisected to the
following commit:

  d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")

The unreachable() macro was formerly only composed of a single
statement.  The above commit added a second statement, but neglected to
enclose the statements in a block.

Suggested-by: Guenter Roeck <linux@roeck-us.net>
Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: d1091c7fa3d5 ("objtool: Improve detection of BUG() and other dead ends")
Link: http://lkml.kernel.org/r/20170228042116.glmwmwiohcix7o4a@treble
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 include/linux/compiler-gcc.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
index de47134..f457b52 100644
--- a/include/linux/compiler-gcc.h
+++ b/include/linux/compiler-gcc.h
@@ -215,7 +215,8 @@
  * this in the preprocessor, but we can live with this because they're
  * unreleased.  Really, we need to have autoconf for the kernel.
  */
-#define unreachable() annotate_unreachable(); __builtin_unreachable()
+#define unreachable() \
+	do { annotate_unreachable(); __builtin_unreachable(); } while (0)
 
 /* Mark a function definition as prohibited from being cloned. */
 #define __noclone	__attribute__((__noclone__, __optimize__("no-tracer")))

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

end of thread, other threads:[~2017-02-28 10:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-27 20:59 Crash in -next due to 'objtool: Improve detection of BUG() and other dead ends' Guenter Roeck
2017-02-27 22:21 ` Josh Poimboeuf
2017-02-27 23:23   ` Guenter Roeck
2017-02-28  0:43     ` Josh Poimboeuf
2017-02-28  4:21       ` [PATCH] objtool: enclose contents of unreachable() macro in a block Josh Poimboeuf
2017-02-28  6:49         ` [tip:core/urgent] objtool: Enclose " tip-bot for Josh Poimboeuf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).