* 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).