All of lore.kernel.org
 help / color / mirror / Atom feed
* vmcs GUEST_CR0 unused?
@ 2007-02-01 21:49 Robert Phillips
  2007-02-01 22:06 ` Anthony Liguori
  2007-02-01 23:40 ` Keir Fraser
  0 siblings, 2 replies; 3+ messages in thread
From: Robert Phillips @ 2007-02-01 21:49 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1: Type: text/plain, Size: 1201 bytes --]

Why does the vmx code maintain hvm_vmx.cpu_cr0?

I see code in vmx.c that keeps v->arch.hvm_vmx.cpu_cr0 up to date, and each
change is faithfully written to the vmcs using __vmwrite(GUEST_CR0, ...)
I also see that the CR0_GUEST_HOST_MASK is always all ones (~0UL), set in
construct_vmcs() and never modified.

However according to section 2.6.6 of the VT specification the value in
GUEST_CR0 is irrelevant if CR0_GUEST_HOST_MASK is all ones.
When the guest reads CR0, the mask will force it to see only the bits in
CR0_READ_SHADOW.
When the guest modifies CR0, the mask will force a vmexit.

So the vmcs value in GUEST_CR0 is never visible to the guest and never
really needed by the host.

It looks to me like the code that maintains hvm_vmx.cpu_cr0 and GUEST_CR0 is
superfluous.

The same argument applies to hvm_vmx.cup_cr4 and GUEST_CR4.

Am I missing something?

-- 
--------------------------------------------------------------------
Robert S. Phillips                          Virtual Iron Software
rphillips@virtualiron.com                Tower 1, Floor 2
978-849-1220                                 900 Chelmsford Street
                                                    Lowell, MA 01851

[-- Attachment #1.2: Type: text/html, Size: 1951 bytes --]

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

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-02-01 23:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-02-01 21:49 vmcs GUEST_CR0 unused? Robert Phillips
2007-02-01 22:06 ` Anthony Liguori
2007-02-01 23:40 ` Keir Fraser

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.