Red Hat Bugzilla – Bug 410811
[Stratus 5.2 Regression] Xen 3.1.2 hypervisor corrupts reserved memory below 16M
Last modified: 2008-05-21 11:03:00 EDT
Description of problem:
The latest Xen hypervisor (3.1.2) adds all memory between 1M and 16M to its
boot-time allocator pool, regardless of whether or not any of that memory is
reserved by the BIOS. The earlier (3.1.0) hypersior paid strict attention to
the e820 tables before adding any memory to the allocator pool.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Boot machine
The outward sympton was first observed on a Stratus platform, which has a
reserved BIOS area (256K located at 15M). After any SMI was triggered, the
machine would slow down by a factor of 50 or so. It turns out that on return
from SMI, the MTRRs had changed the cache policy on main memory from write-back,
to write-through. Further investigation demonstrated that the reserved BIOS
area was being corrupted by the hypervisor itself at boot time.
The problem appears to have been introduced by the 15044 patch from upstream.
This patch replaced code that paid attention to the e820 tables with this:
+ init_boot_pages(1<<20, 16<<20); /* Initial seed: 15MB */
That line adds all memory from 1M to 16M to the boot allocator. Not good.
Created attachment 277241 [details]
Avoid handing reserved pages to the boot allocator
Tested on 64-bit platform. Needs testing on 32-bit.
Chris - Please review this w/ XS folks and help work it upstream.
Patch for this is upstream on the Xen 3.1.3 branch:
Kimball, has this been POSTed yet? This looks like the last of the pieces that
are needed for full enablement of Stratus systems...
Kimball and I just finished a last round of testing on this; there were
some bits that had to make it upstream, which they finally did this weekend. I
expect to post the patches tomorrow.
Chris/Kimball -- How is this looking to make Beta?
It looks like Kimball's original patch was included in the latest build, so it
should make beta.
Hi Chris, great news. Can you post what version of the build it made, and
wouldn't this mean this is in MODIFIED state as well? Thanks!
You can download this test kernel from http://people.redhat.com/dzickus/el5
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.