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