* 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest @ 2017-06-09 10:33 Hans de Goede 2017-06-10 17:54 ` Linus Torvalds 0 siblings, 1 reply; 8+ messages in thread From: Hans de Goede @ 2017-06-09 10:33 UTC (permalink / raw) To: Linus Torvalds; +Cc: Linux Kernel Mailing List, vbox-dev Hi Linus, Sorry for escalating this right up to you, but this issue does not seem to be getting any attention and I'm not sure which subsys maintainer to poke about this. The problem is that the 4.12-rc# kernels fail to boot on VirtualBox guests hosted on any machine with a Sky Lake (and probably also a Kaby Lake) CPU, for details see: https://bugzilla.kernel.org/show_bug.cgi?id=195961 Regards, Hans ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest 2017-06-09 10:33 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest Hans de Goede @ 2017-06-10 17:54 ` Linus Torvalds 2017-06-10 17:57 ` Linus Torvalds 2017-06-12 8:16 ` Thomas Gleixner 0 siblings, 2 replies; 8+ messages in thread From: Linus Torvalds @ 2017-06-10 17:54 UTC (permalink / raw) To: Hans de Goede, Ingo Molnar Cc: Linux Kernel Mailing List, vbox-dev, the arch/x86 maintainers On Fri, Jun 9, 2017 at 3:33 AM, Hans de Goede <hdegoede@redhat.com> wrote: > > Sorry for escalating this right up to you, but this issue > does not seem to be getting any attention and I'm not sure > which subsys maintainer to poke about this. Looks like x86. Added people. > The problem is that the 4.12-rc# kernels fail to boot on > VirtualBox guests hosted on any machine with a Sky Lake > (and probably also a Kaby Lake) CPU, for details see: > > https://bugzilla.kernel.org/show_bug.cgi?id=195961 It would probably help enormously if somebody who saw this did a bisection. If nothing else, we might have the option to just revert until the issue is figured out. Linus ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest 2017-06-10 17:54 ` Linus Torvalds @ 2017-06-10 17:57 ` Linus Torvalds 2017-06-12 8:16 ` Thomas Gleixner 1 sibling, 0 replies; 8+ messages in thread From: Linus Torvalds @ 2017-06-10 17:57 UTC (permalink / raw) To: Hans de Goede, Ingo Molnar Cc: Linux Kernel Mailing List, the arch/x86 maintainers Oh, and Hans - please don't add closed mailing lists when you cc other people who aren't on the mailing list. If the vbox-dev mailing list isn't interested in my emails, I'm not interested in seeing them added to the thread either. Just say no to closed mailing lists. Linus ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest 2017-06-10 17:54 ` Linus Torvalds 2017-06-10 17:57 ` Linus Torvalds @ 2017-06-12 8:16 ` Thomas Gleixner 2017-06-12 11:52 ` Peter Zijlstra 1 sibling, 1 reply; 8+ messages in thread From: Thomas Gleixner @ 2017-06-12 8:16 UTC (permalink / raw) To: Linus Torvalds Cc: Hans de Goede, Ingo Molnar, Linux Kernel Mailing List, the arch/x86 maintainers, Peter Zijlstra On Sat, 10 Jun 2017, Linus Torvalds wrote: > On Fri, Jun 9, 2017 at 3:33 AM, Hans de Goede <hdegoede@redhat.com> wrote: > > > > Sorry for escalating this right up to you, but this issue > > does not seem to be getting any attention and I'm not sure > > which subsys maintainer to poke about this. > > Looks like x86. Added people. > > > The problem is that the 4.12-rc# kernels fail to boot on > > VirtualBox guests hosted on any machine with a Sky Lake > > (and probably also a Kaby Lake) CPU, for details see: > > > > https://bugzilla.kernel.org/show_bug.cgi?id=195961 Looks like the WARN/BUG rework. Peter???? Thanks, tglx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest 2017-06-12 8:16 ` Thomas Gleixner @ 2017-06-12 11:52 ` Peter Zijlstra 2017-06-12 16:51 ` Hans de Goede 0 siblings, 1 reply; 8+ messages in thread From: Peter Zijlstra @ 2017-06-12 11:52 UTC (permalink / raw) To: Thomas Gleixner Cc: Linus Torvalds, Hans de Goede, Ingo Molnar, Linux Kernel Mailing List, the arch/x86 maintainers On Mon, Jun 12, 2017 at 10:16:53AM +0200, Thomas Gleixner wrote: > On Sat, 10 Jun 2017, Linus Torvalds wrote: > > > On Fri, Jun 9, 2017 at 3:33 AM, Hans de Goede <hdegoede@redhat.com> wrote: > > > > > > Sorry for escalating this right up to you, but this issue > > > does not seem to be getting any attention and I'm not sure > > > which subsys maintainer to poke about this. > > > > Looks like x86. Added people. > > > > > The problem is that the 4.12-rc# kernels fail to boot on > > > VirtualBox guests hosted on any machine with a Sky Lake > > > (and probably also a Kaby Lake) CPU, for details see: > > > > > > https://bugzilla.kernel.org/show_bug.cgi?id=195961 > > Looks like the WARN/BUG rework. Peter???? I wasn't aware we'd call WARN _that_ early. Does something like so make it work? --- arch/x86/include/asm/extable.h | 1 + arch/x86/kernel/traps.c | 2 +- arch/x86/mm/extable.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/extable.h b/arch/x86/include/asm/extable.h index b8ad261d11dc..c66d19e3c23e 100644 --- a/arch/x86/include/asm/extable.h +++ b/arch/x86/include/asm/extable.h @@ -29,6 +29,7 @@ struct pt_regs; } while (0) extern int fixup_exception(struct pt_regs *regs, int trapnr); +extern int fixup_bug(struct pt_regs *regs, int trapnr); extern bool ex_has_fault_handler(unsigned long ip); extern void early_fixup_exception(struct pt_regs *regs, int trapnr); diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 3995d3a777d4..bf54309b85da 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -182,7 +182,7 @@ int is_valid_bugaddr(unsigned long addr) return ud == INSN_UD0 || ud == INSN_UD2; } -static int fixup_bug(struct pt_regs *regs, int trapnr) +int fixup_bug(struct pt_regs *regs, int trapnr) { if (trapnr != X86_TRAP_UD) return 0; diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c index 35ea061010a1..0ea8afcb929c 100644 --- a/arch/x86/mm/extable.c +++ b/arch/x86/mm/extable.c @@ -162,6 +162,9 @@ void __init early_fixup_exception(struct pt_regs *regs, int trapnr) if (fixup_exception(regs, trapnr)) return; + if (fixup_bug(regs, trapnr)) + return; + fail: early_printk("PANIC: early exception 0x%02x IP %lx:%lx error %lx cr2 0x%lx\n", (unsigned)trapnr, (unsigned long)regs->cs, regs->ip, ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest 2017-06-12 11:52 ` Peter Zijlstra @ 2017-06-12 16:51 ` Hans de Goede 2017-06-12 18:01 ` Peter Zijlstra 0 siblings, 1 reply; 8+ messages in thread From: Hans de Goede @ 2017-06-12 16:51 UTC (permalink / raw) To: Peter Zijlstra, Thomas Gleixner Cc: Linus Torvalds, Ingo Molnar, Linux Kernel Mailing List, the arch/x86 maintainers, Frank Mehnert, Michael Thayer Hi, On 12-06-17 13:52, Peter Zijlstra wrote: > On Mon, Jun 12, 2017 at 10:16:53AM +0200, Thomas Gleixner wrote: >> On Sat, 10 Jun 2017, Linus Torvalds wrote: >> >>> On Fri, Jun 9, 2017 at 3:33 AM, Hans de Goede <hdegoede@redhat.com> wrote: >>>> >>>> Sorry for escalating this right up to you, but this issue >>>> does not seem to be getting any attention and I'm not sure >>>> which subsys maintainer to poke about this. >>> >>> Looks like x86. Added people. >>> >>>> The problem is that the 4.12-rc# kernels fail to boot on >>>> VirtualBox guests hosted on any machine with a Sky Lake >>>> (and probably also a Kaby Lake) CPU, for details see: >>>> >>>> https://bugzilla.kernel.org/show_bug.cgi?id=195961 >> >> Looks like the WARN/BUG rework. Peter???? > > I wasn't aware we'd call WARN _that_ early. Does something like so make > it work? Yes it does, with this patch the oops is back (unrelated problem) and the kernel boots again :) You can add my: Tested-by: Hans de Goede <hdegoede@redhat.com> Regards, Hans > > --- > arch/x86/include/asm/extable.h | 1 + > arch/x86/kernel/traps.c | 2 +- > arch/x86/mm/extable.c | 3 +++ > 3 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/include/asm/extable.h b/arch/x86/include/asm/extable.h > index b8ad261d11dc..c66d19e3c23e 100644 > --- a/arch/x86/include/asm/extable.h > +++ b/arch/x86/include/asm/extable.h > @@ -29,6 +29,7 @@ struct pt_regs; > } while (0) > > extern int fixup_exception(struct pt_regs *regs, int trapnr); > +extern int fixup_bug(struct pt_regs *regs, int trapnr); > extern bool ex_has_fault_handler(unsigned long ip); > extern void early_fixup_exception(struct pt_regs *regs, int trapnr); > > diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c > index 3995d3a777d4..bf54309b85da 100644 > --- a/arch/x86/kernel/traps.c > +++ b/arch/x86/kernel/traps.c > @@ -182,7 +182,7 @@ int is_valid_bugaddr(unsigned long addr) > return ud == INSN_UD0 || ud == INSN_UD2; > } > > -static int fixup_bug(struct pt_regs *regs, int trapnr) > +int fixup_bug(struct pt_regs *regs, int trapnr) > { > if (trapnr != X86_TRAP_UD) > return 0; > diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c > index 35ea061010a1..0ea8afcb929c 100644 > --- a/arch/x86/mm/extable.c > +++ b/arch/x86/mm/extable.c > @@ -162,6 +162,9 @@ void __init early_fixup_exception(struct pt_regs *regs, int trapnr) > if (fixup_exception(regs, trapnr)) > return; > > + if (fixup_bug(regs, trapnr)) > + return; > + > fail: > early_printk("PANIC: early exception 0x%02x IP %lx:%lx error %lx cr2 0x%lx\n", > (unsigned)trapnr, (unsigned long)regs->cs, regs->ip, > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest 2017-06-12 16:51 ` Hans de Goede @ 2017-06-12 18:01 ` Peter Zijlstra 2017-06-12 19:25 ` [tip:x86/urgent] x86/debug: Handle early WARN_ONs proper tip-bot for Peter Zijlstra 0 siblings, 1 reply; 8+ messages in thread From: Peter Zijlstra @ 2017-06-12 18:01 UTC (permalink / raw) To: Hans de Goede Cc: Thomas Gleixner, Linus Torvalds, Ingo Molnar, Linux Kernel Mailing List, the arch/x86 maintainers, Frank Mehnert, Michael Thayer On Mon, Jun 12, 2017 at 06:51:17PM +0200, Hans de Goede wrote: > Yes it does, with this patch the oops is back (unrelated problem) and > the kernel boots again :) Cheers! Full patch below. --- Subject: Re: 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 12 Jun 2017 13:52:46 +0200 Hans managed to trigger a WARN very early in the boot which killed his (Virtual) box. Turns out we need to also consider fixup_bug() in early_fixup_exception(). Cc: Ingo Molnar <mingo@kernel.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Thomas Gleixner <tglx@linutronix.de> Fixes: 9a93848fe787 ("x86/debug: Implement __WARN() using UD0") Reported-by: Hans de Goede <hdegoede@redhat.com> Tested-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> --- arch/x86/include/asm/extable.h | 1 + arch/x86/kernel/traps.c | 2 +- arch/x86/mm/extable.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) --- a/arch/x86/include/asm/extable.h +++ b/arch/x86/include/asm/extable.h @@ -29,6 +29,7 @@ struct pt_regs; } while (0) extern int fixup_exception(struct pt_regs *regs, int trapnr); +extern int fixup_bug(struct pt_regs *regs, int trapnr); extern bool ex_has_fault_handler(unsigned long ip); extern void early_fixup_exception(struct pt_regs *regs, int trapnr); --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -182,7 +182,7 @@ int is_valid_bugaddr(unsigned long addr) return ud == INSN_UD0 || ud == INSN_UD2; } -static int fixup_bug(struct pt_regs *regs, int trapnr) +int fixup_bug(struct pt_regs *regs, int trapnr) { if (trapnr != X86_TRAP_UD) return 0; --- a/arch/x86/mm/extable.c +++ b/arch/x86/mm/extable.c @@ -162,6 +162,9 @@ void __init early_fixup_exception(struct if (fixup_exception(regs, trapnr)) return; + if (fixup_bug(regs, trapnr)) + return; + fail: early_printk("PANIC: early exception 0x%02x IP %lx:%lx error %lx cr2 0x%lx\n", (unsigned)trapnr, (unsigned long)regs->cs, regs->ip, ^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip:x86/urgent] x86/debug: Handle early WARN_ONs proper 2017-06-12 18:01 ` Peter Zijlstra @ 2017-06-12 19:25 ` tip-bot for Peter Zijlstra 0 siblings, 0 replies; 8+ messages in thread From: tip-bot for Peter Zijlstra @ 2017-06-12 19:25 UTC (permalink / raw) To: linux-tip-commits Cc: michael.thayer, peterz, hpa, hdegoede, frank.mehnert, mingo, torvalds, tglx, linux-kernel Commit-ID: 8a524f803a3e0290cdba6d373361b2cef9752934 Gitweb: http://git.kernel.org/tip/8a524f803a3e0290cdba6d373361b2cef9752934 Author: Peter Zijlstra <peterz@infradead.org> AuthorDate: Mon, 12 Jun 2017 13:52:46 +0200 Committer: Thomas Gleixner <tglx@linutronix.de> CommitDate: Mon, 12 Jun 2017 21:17:48 +0200 x86/debug: Handle early WARN_ONs proper Hans managed to trigger a WARN very early in the boot which killed his (Virtual) box. The reason is that the recent rework of WARN() to use UD0 forgot to add the fixup_bug() call to early_fixup_exception(). As a result the kernel does not handle the WARN_ON injected UD0 exception and panics. Add the missing fixup call, so early UD's injected by WARN() get handled. Fixes: 9a93848fe787 ("x86/debug: Implement __WARN() using UD0") Reported-and-tested-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Frank Mehnert <frank.mehnert@oracle.com> Cc: Hans de Goede <hdegoede@redhat.com> Cc: Michael Thayer <michael.thayer@oracle.com> Link: http://lkml.kernel.org/r/20170612180108.w4vgu2ckucmllf3a@hirez.programming.kicks-ass.net --- arch/x86/include/asm/extable.h | 1 + arch/x86/kernel/traps.c | 2 +- arch/x86/mm/extable.c | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/arch/x86/include/asm/extable.h b/arch/x86/include/asm/extable.h index b8ad261..c66d19e 100644 --- a/arch/x86/include/asm/extable.h +++ b/arch/x86/include/asm/extable.h @@ -29,6 +29,7 @@ struct pt_regs; } while (0) extern int fixup_exception(struct pt_regs *regs, int trapnr); +extern int fixup_bug(struct pt_regs *regs, int trapnr); extern bool ex_has_fault_handler(unsigned long ip); extern void early_fixup_exception(struct pt_regs *regs, int trapnr); diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 3995d3a..bf54309 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c @@ -182,7 +182,7 @@ int is_valid_bugaddr(unsigned long addr) return ud == INSN_UD0 || ud == INSN_UD2; } -static int fixup_bug(struct pt_regs *regs, int trapnr) +int fixup_bug(struct pt_regs *regs, int trapnr) { if (trapnr != X86_TRAP_UD) return 0; diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c index 35ea061..0ea8afc 100644 --- a/arch/x86/mm/extable.c +++ b/arch/x86/mm/extable.c @@ -162,6 +162,9 @@ void __init early_fixup_exception(struct pt_regs *regs, int trapnr) if (fixup_exception(regs, trapnr)) return; + if (fixup_bug(regs, trapnr)) + return; + fail: early_printk("PANIC: early exception 0x%02x IP %lx:%lx error %lx cr2 0x%lx\n", (unsigned)trapnr, (unsigned long)regs->cs, regs->ip, ^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2017-06-12 19:29 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-06-09 10:33 4.12 REGRESSION, 4.12 does not boot as VirtualBox guest Hans de Goede 2017-06-10 17:54 ` Linus Torvalds 2017-06-10 17:57 ` Linus Torvalds 2017-06-12 8:16 ` Thomas Gleixner 2017-06-12 11:52 ` Peter Zijlstra 2017-06-12 16:51 ` Hans de Goede 2017-06-12 18:01 ` Peter Zijlstra 2017-06-12 19:25 ` [tip:x86/urgent] x86/debug: Handle early WARN_ONs proper tip-bot for Peter Zijlstra
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.