Re: Reboot hangs on VersaLogic Ocelot

From: Michael D Labriola
Date: Mon Jan 16 2012 - 12:15:35 EST


Ingo Molnar <mingo@xxxxxxx> wrote on 01/16/2012 02:53:48 AM:

> From: Ingo Molnar <mingo@xxxxxxx>
> To: Michael D Labriola <mlabriol@xxxxxxxx>, Matthew Garrett
<mjg@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Ingo Molnar
> <mingo@xxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>,
> x86@xxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, Kushal Koolwal
> <kushalkoolwal@xxxxxxxxx>, support@xxxxxxxxxxxxxx,
> michael.d.labriola@xxxxxxxxx
> Date: 01/16/2012 02:54 AM
> Subject: Re: Reboot hangs on VersaLogic Ocelot
>
>
> (Cc:-ed Matthew Garrett)
>
> * Michael D Labriola <mlabriol@xxxxxxxx> wrote:
>
> > I've been troubleshooting a VersaLogic Ocelot SBC that's been
> > hanging on reboot ever since I upgraded its BIOS. The
> > conclusion I've come to is that commit e19e074 (x86: Fix
> > reboot problem on VersaLogic Menlow boards) needs to be
> > reverted.
> >
> > My system was rebooting fine (kernel v3.2) prior to upgrading
> > the BIOS, but it turns out that the DMI string being looked
> > for in the VersaLogic reboot quirk wasn't added until I
> > upgraded the BIOS.
> >
> > Here's a summary of the behavior I encountered on my system
> > (VL-EPMs-21a rev 1.00 w/ BIOS 6.5.102)
> >
> > - v2.6.37 reboot=bios is needed
> >
> > - v2.6.38-rc1: behavior changed, reboot=acpi is needed, reboot=kbd and
> > reboot=bios result in system hang.
> >
> > - v2.6.38: VersaLogic patch (e19e074 x86: Fix reboot problem on
> > VersaLogic Menlow boards) was applied prior to v2.6.38-rc7. This
> > patch sets a quirk for VersaLogic Menlow boards that forces the use
> > of reboot=bios, which doesn't work anymore. As far as I can tell,
> > there's no way to override this faulty quirk, as it seems to take
> > precedence over the reboot= argument.
>
> That's another bug i'd argue - the user specifying something on
> the boot command line should *always* override the kernel's
> built-in defaults.

Agreed. This would have taken me about 5 mins to troubleshoot if I'd
realized up front that passing reboot= args on command line was being
overridden by this quirk. The obvious first thing to do was try all the
available options... none of which had any effect. I've got a patch to
change this behavior as well (DMI scanning for quirks *only* happens if
user didn't pass a reboot= option on the command line).

> > - v3.2: It seems that commit 660e34c (x86: Reorder reboot method
> > preferences) changed the default reboot method to acpi prior to
> > v3.0-rc1, which means the default behavior is appropriate for the
> > Ocelot. After reverting commit e19e074, my system reboots perfectly
> > w/out passing any reboot= arguments. I confirmed that this is a
> > true statement for all 3 versions of the Ocelot's BIOS.
>
> And this works for the older BIOS version as well, the one which
> motivated commit e19e074?

Versions of the BIOS prior to 6.5.102 set the DMI information to something
the quirk wasn't looking for, so that's actually the only applicable BIOS
rev. Older versions can all be rebooted by passing
reboot=whatever_worked_in_that_version.

> Please send a patch that removes the quirk (not named a revert -
> as technically the old quirk did solve problems), with the
> changelog containing your (excellent) bug analysis and the test
> coverage above, plus a signoff?

Will do, hopefully this afternoon.

> Matthew, do you concur? Looks like your reordering changes
> actively improved the default behavior and we can start removing
> quirks.
>
> Thanks,
>
> Ingo

---
Michael D Labriola
Electric Boat
mlabriol@xxxxxxxx
401-848-8871 (desk)
401-848-8513 (lab)
401-316-9844 (cell)








--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/