All of lore.kernel.org
 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	[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	[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 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.