All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Lively <dlively@virtualiron.com>
To: Keir Fraser <keir@xensource.com>
Cc: xen-devel@lists.xensource.com, Ben Guthro <bguthro@virtualiron.com>
Subject: Re: [PATCH] Limit MCG Cap
Date: Wed, 29 Aug 2007 09:23:15 -0400	[thread overview]
Message-ID: <46D57343.2060602@virtualiron.com> (raw)
In-Reply-To: <C2F9B040.14F1A%keir@xensource.com>

[-- Attachment #1: Type: text/plain, Size: 1295 bytes --]

Hi Keir -
  Your suggestion to report 0 for reads of MSR_IA32_MCG_CAP seems to be 
working well on a wide variety of HVM guests (Windows & Linux, 32 & 
64bit).  I've attached a new patch.

Thanks,
Dave

This patch implements a suggestion of Keir's (in response to a patch of 
mine):

Intercept guest reads of MSR_IA32_MCG_CAP and report 0, indicating no 
machine check "units", which agrees more closely with Xen's 
super-minimal machine check architecture (just enough to allow Windows 
to run).

This fixes a bug that occurs when migrating a RHEL4-64bit guest to a 
host with fewer machine check units than the original host.  These host 
physical details shouldn't be leaking through to guests.

Signed-off-by: David Lively <dlively@virtualiron.com>


Keir Fraser wrote:
> Given that we don't properly virtualise/emulate machine check (we only set
> the feature bit because some versions of Windows demand it) can we get away
> with returning zero for reads of MCG_CAP?
>
>  -- Keir
>
> On 27/8/07 20:11, "Ben Guthro" <bguthro@virtualiron.com> wrote:
>
>   
>> Intercept guest reads of MSR_IA32_MCG_CAP and limit the number of memory banks
>> reported to one.
>> This prevents us from trying to read status of non-existent banks when
>> migrated to a machine
>> with fewer banks.
>>
>>     


[-- Attachment #2: xen-limit-mcg-cap.patch --]
[-- Type: text/x-patch, Size: 1007 bytes --]

diff -r 9f111c7d648f xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c	Tue Aug 28 22:40:01 2007 -0400
+++ b/xen/arch/x86/hvm/svm/svm.c	Tue Aug 28 22:40:01 2007 -0400
@@ -2058,6 +2058,9 @@ static inline void svm_do_msr_access(
              */
             msr_content = 0;
             break;
+        case MSR_IA32_MCG_CAP:
+            msr_content = 0;
+            break;
         default:
             if ( rdmsr_hypervisor_regs(ecx, &eax, &edx) ||
                  rdmsr_safe(ecx, eax, edx) == 0 )
diff -r 9f111c7d648f xen/arch/x86/hvm/vmx/vmx.c
--- a/xen/arch/x86/hvm/vmx/vmx.c	Tue Aug 28 22:40:01 2007 -0400
+++ b/xen/arch/x86/hvm/vmx/vmx.c	Tue Aug 28 22:40:01 2007 -0400
@@ -2554,6 +2554,9 @@ static inline int vmx_do_msr_read(struct
     case MSR_IA32_APICBASE:
         msr_content = vcpu_vlapic(v)->hw.apic_base_msr;
         break;
+    case MSR_IA32_MCG_CAP:
+        msr_content = 0;
+        break;
     default:
         if ( long_mode_do_msr_read(regs) )
             goto done;

[-- Attachment #3: Type: text/plain, Size: 138 bytes --]

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

       reply	other threads:[~2007-08-29 13:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <C2F9B040.14F1A%keir@xensource.com>
2007-08-29 13:23 ` David Lively [this message]
2007-08-27 19:11 [PATCH] Limit MCG Cap Ben Guthro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=46D57343.2060602@virtualiron.com \
    --to=dlively@virtualiron.com \
    --cc=bguthro@virtualiron.com \
    --cc=keir@xensource.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.