[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] x86, hvm: MTRR can't cover all the memery ranges



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1201185635 0
# Node ID 6269a3ce7b830f6903a61e1116331590b47f7e99
# Parent  74a9bfccddba0fedd59c57e5f1a76d83a4178d7c
x86, hvm: MTRR can't cover all the memery ranges
MTRR can't cover all the memery ranges, due to guest E820 is changed
by CS:16728 with current method.
Signed-off-by: Disheng Su <disheng.su@xxxxxxxxx>
---
 xen/arch/x86/hvm/mtrr.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletion(-)

diff -r 74a9bfccddba -r 6269a3ce7b83 xen/arch/x86/hvm/mtrr.c
--- a/xen/arch/x86/hvm/mtrr.c   Thu Jan 24 14:39:38 2008 +0000
+++ b/xen/arch/x86/hvm/mtrr.c   Thu Jan 24 14:40:35 2008 +0000
@@ -186,7 +186,14 @@ static uint32_t range_to_mtrr(uint32_t r
                               uint8_t type)
 {
     if ( !range_sizek || (reg >= ((m->mtrr_cap & 0xff) - RESERVED_MTRR)) )
+    {
+        gdprintk(XENLOG_WARNING,
+                "Failed to init var mtrr msr[%d]"
+                "range_size:%x, total available MSR:%d\n",
+                reg, range_sizek,
+                (uint32_t)((m->mtrr_cap & 0xff) - RESERVED_MTRR));
         return reg;
+    }
 
     while ( range_sizek )
     {
@@ -202,7 +209,13 @@ static uint32_t range_to_mtrr(uint32_t r
         range_sizek  -= sizek;
 
         if ( reg >= ((m->mtrr_cap & 0xff) - RESERVED_MTRR) )
+        {
+            gdprintk(XENLOG_WARNING,
+                    "Failed to init var mtrr msr[%d],"
+                    "total available MSR:%d\n",
+                    reg, (uint32_t)((m->mtrr_cap & 0xff) - RESERVED_MTRR));
             break;
+        }
     }
 
     return reg;
@@ -253,7 +266,7 @@ static void setup_var_mtrrs(struct vcpu 
         {
             if ( e820_table[i].addr == 0x100000 )
             {
-                size = e820_table[i].size + 0x100000 + PAGE_SIZE * 3;
+                size = e820_table[i].size + 0x100000 + PAGE_SIZE * 4;
                 addr = 0;
             }
             else

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.