Bug 64394 - Unreliable reboots with "reboot=bios" option.
Summary: Unreliable reboots with "reboot=bios" option.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 2.1
Classification: Red Hat
Component: kernel
Version: 2.1
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Larry Woodman
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2002-05-03 15:08 UTC by Robert Hentosh
Modified: 2007-11-30 22:06 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2002-07-18 13:59:49 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
INVD cache patch for reboot=bios (558 bytes, patch)
2002-05-03 15:10 UTC, Robert Hentosh
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2002:104 0 high SHIPPED_LIVE Several bugs fixed in new kernel 2002-05-30 04:00:00 UTC
Red Hat Product Errata RHSA-2002:128 0 normal SHIPPED_LIVE Moderate: Updated kernel with information security fixes, bug fixes, and updated drivers 2002-06-25 04:00:00 UTC

Description Robert Hentosh 2002-05-03 15:08:27 UTC
Description of Problem:
When specifying the "reboot=bios" option the code that switches to real-mode 
and jumps to the BIOS vector contains a bug that causes some platforms to hang 
repeatedly.  This bug has been present since at since least 2.2.x kernel.  This 
problem exists in both Hampton, Pensacola and prior versions at least to 7.0.

Version-Release number of selected component (if applicable):


How Reproducible:  On a PE6400 running 7.2 it happens most every time.  On some 
tests it showed more frequently after booting then running vi on any file and 
then typing `reboot`.


Steps to Reproduce:
1. Boot PE6400 on 7.2 with "reboot=bios" as kernel param.
2. login as root, vi any file.
3. type `reboot`

Actual Results:
System will shutdown orderly and then hang not continuing to the BIOS post 
screens.

Expected Results:
System will reboot normally and one will see the BIOS screens.

Additional Information:
A patch has been submitted to the lkml and was accepted by the orignal author  
of the routine at fault(Jamie Lokier).

Comment 1 Robert Hentosh 2002-05-03 15:10:08 UTC
Created attachment 56286 [details]
INVD cache patch for reboot=bios

Comment 2 Robert Hentosh 2002-05-03 15:13:34 UTC
The patch simply changes the hand assembled code instruction INVD to WBINVD.  
INVD invalidates the CPU cache and since the routine was just previously copied 
in can still exists only in the cache.  INVD at this time then cause the 
routine to be lost and it just executes the "garbage" left in RAM.  WBINVD 
insures that the routine is written to RAM before invalidating the cache, 
insuring that the jump to the BIOS reset vector takes place.


Comment 3 Matt Domsch 2002-07-09 19:04:36 UTC
This will be included in the first Pensacola errata kernel, and is included 
already in 2.4.19-ac.  This needs to get pushed to Marcelo for 2.4.x, and to 
Linus for 2.5.x.

Comment 4 John A. Hull 2002-07-23 22:58:35 UTC
Closing since it is fixed.


Note You need to log in before you can comment on or make changes to this bug.