Red Hat Bugzilla – Bug 224671
x86_64 - Fix FS/GS registers for VT execution
Last modified: 2007-11-30 17:07:41 EST
Description of problem: 64-bit kernels boot extremely slowly on Intel VT hardware.
Version-Release number of selected component (if applicable):
How reproducible: 100%
Steps to Reproduce:
1. Boot using hardware virtualization (Xen / VMware)
2. Go get coffee.
3. Kernel booting is extremely slow
Kernel booting is extremely slow.
Kernel booting is extremely fast.
This upstream patch fixes the problem.
Created attachment 146725 [details]
Patch to fix the slow boot
Patch has been committed upstream - can it be backported to RHEL5?
Author: Zachary Amsden <firstname.lastname@example.org>
Date: Tue Feb 13 13:26:24 2007 +0100
[PATCH] x86-64: x86_64 - Fix FS/GS registers for VT execution
Initialize FS and GS to __KERNEL_DS as well. The actual value of them is not
important, but it is important to reload them in protected mode. At this time,
they still retain the real mode values from initial boot. VT disallows
execution of code under such conditions, which means hardware virtualization
can not be used to boot the kernel on Intel platforms, making the boot time
This requires moving the GS load before the load of GS_BASE, so just move
all the segments loads there to keep them together in the code.
Signed-off-by: Zachary Amsden <email@example.com>
Signed-off-by: Andi Kleen <firstname.lastname@example.org>
Zach, I have added this to the RHEL 5.1 list for prioritization with our Xen team.
This request was evaluated by Red Hat Kernel Team for inclusion in a Red
Hat Enterprise Linux maintenance release, and has moved to bugzilla
You can download this test kernel from http://people.redhat.com/dzickus/el5
confirmed the fix is in the -45 kernel.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.