WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

RE: [Xen-devel] [PATCH][HAP][2/2] fix CR4 initialization when hap is on

To: "Keir Fraser" <keir@xxxxxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx, "Tim Deegan" <Tim.Deegan@xxxxxxxxxxxxx>
Subject: RE: [Xen-devel] [PATCH][HAP][2/2] fix CR4 initialization when hap is on
From: "Huang2, Wei" <Wei.Huang2@xxxxxxx>
Date: Tue, 27 Mar 2007 12:32:21 -0500
Delivery-date: Tue, 27 Mar 2007 10:31:29 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C22F0147.C4DD%keir@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <7D748C767B7FA541A8AC5504A4C89A23015685DC@xxxxxxxxxxxxxxxxx> <C22F0147.C4DD%keir@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcdsnQGbE/OlOb8/T362nmc3AA3U0QD7eIHZAAHdciA=
Thread-topic: [Xen-devel] [PATCH][HAP][2/2] fix CR4 initialization when hap is on
There are two CR4 related variables (vmcb->cr4 and cpu_shadow_cr4). I agree that cpu_shadow_cr4 should be zero at start-of-day for both cases. Current construct_vmcb() initializes cpu_shadow_cr4 with read_cr4() & ~(X86_CR4_PGE | X86_CR4_PSE | X86_CR4_PAE), which seems imperfect to me (although it works well so far).
 
On the other hand, initial values of vmcb->cr4 should differ between hap and shadow modes. Nested paging relies vmcb->cr4 (and other control registers) to determine guest paging mode. When hap is on, vmcb->cr4 should be initialized with 0 to reflect correct state of guest. Under shadow mode, the value of vmcb->cr4 is initialized with proper values (none-zero) to utilize shadow page table. That is why we need a different code path for hap.
 
-Wei


From: Keir Fraser [mailto:keir@xxxxxxxxxxxxx]
Sent: Tuesday, March 27, 2007 11:14 AM
To: Huang2, Wei; xen-devel@xxxxxxxxxxxxxxxxxxx; Tim Deegan
Subject: Re: [Xen-devel] [PATCH][HAP][2/2] fix CR4 initialization when hap is on

This seems an odd change. The earlier setting of CR4 in construct_vmcb() already masks out paging-related bits. So why would the remaining bits’ behaviour differ between hap and shadow paging modes? It would seem to me that either CR4 should be zero at start-of-day in all cases (seems quite likely to me as that’s what happens in a native system), or the existing code should be okay in both cases.

 -- Keir

On 22/3/07 16:13, "Huang2, Wei" <Wei.Huang2@xxxxxxx> wrote:

This patch initializes VMCB CR4 and shadow CR4 with 0 when VMCB is being constructed under nested paging mode. It complies with recent reset_to_realmode change in hvmloader.

Signed-off-by: Wei Huang (wei.huang2@xxxxxxx <mailto:wei.huang2@xxxxxxx> )

 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>