xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Keir Fraser <keir.fraser@eu.citrix.com>
To: Jonathan White <jonxwhite@gmail.com>, Dulloor <dulloor@gmail.com>,
	Patrick Colp <pjcolp@gmail.com>,
	George Dunlap <George.Dunlap@eu.citrix.com>,
	"Xen-devel@lists.xensource.com" <Xen-de>
Subject: Re: Re: Writing VM Exit handlers in Xen
Date: Thu, 29 Jul 2010 17:09:57 +0100	[thread overview]
Message-ID: <C8776665.1C19E%keir.fraser@eu.citrix.com> (raw)
In-Reply-To: <AANLkTinH76pQRMZWGn35y5DiBk9hj+9jesW3-DvsvQ=L@mail.gmail.com>

On 29/07/2010 16:30, "Jonathan White" <jonxwhite@gmail.com> wrote:

> Thanks so much for your responses.
> Yes, I am familiar with the Intel manuals and VT chapters in volume
> 3B. My question was where to look in the Xen or dom0 code to tweak
> what VMExits are enabled in the VMCS of a particular HVM guest, so
> that VTx actually traps on those conditions and gives me an
> opportunity to handle them in a handler.
> Do I modify VMCS structure directly in Xen somewhere, or are there
> easier interfaces available for VMCS management?

The intercepts get set up for a new vcpu in
xen/arch/x86/hvm/vmx/vmcs.c:construct_vmcs(). See how certain VMCS control
fields are shadowed in the per-vcpu infor structure. You can also update
these after a vcpu is initialised, and then write the shadow field back to
the VMCS (see for example xen/arch/x86/hvm/vmx/vmx.c:vmx_save_dr() which
updates VMCS field CPU_BASED_VM_EXEC_CONTROL). The vmexits when they occur
are demuxed in xen/arch/x86/hvm/vmx/vmx.c:vmx_vmexit_handler().

 K.

> Sorry, I should have phrased my question better earlier.
> 
> Thanks,
> Jon
> 
> 
> On 7/29/10, Dulloor <dulloor@gmail.com> wrote:
>> You might also want to look at 21.6 (VM Execution controls) for the tunables
>> and
>> Appendix 1.
>> 
>> -dulloor
>> 
>> On Thu, Jul 29, 2010 at 6:16 AM, Patrick Colp <pjcolp@gmail.com> wrote:
>>>>> I would like to start write some simple Intel-VT VMExit handlers in Xen
>>>>> -
>>>>> for e.g. when CPUID is executed, or some other VM Exit condition is
>>>>> satisfied.
>>>>> How can I define new VMExit conditions for a Intel-VT based HVM guest
>>>>> (WinXP) in Xen? and how can I write simple handlers for those
>>>>> conditions?
>>> 
>>> You can't define new VMExit conditions. For all the possible exit
>>> conditions, look at Intel's "Intel 64 and IA-32 Architectures Software
>>> Developer's Manual", Volume 3B. In the current (or near current)
>>> edition, you want to look at chapter 24 - VM Exits.
>>> 
>>> 
>>> Patrick
>>> 
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>>> 
>> 

      reply	other threads:[~2010-07-29 16:09 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-29  8:45 Writing VM Exit handlers in Xen Jonathan White
2010-07-29  8:59 ` George Dunlap
2010-07-29 13:16   ` Patrick Colp
2010-07-29 15:01     ` Dulloor
2010-07-29 15:30       ` Jonathan White
2010-07-29 16:09         ` Keir Fraser [this message]

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=C8776665.1C19E%keir.fraser@eu.citrix.com \
    --to=keir.fraser@eu.citrix.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=dulloor@gmail.com \
    --cc=jonxwhite@gmail.com \
    --cc=pjcolp@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).