From: Tim Deegan <Tim.Deegan@citrix.com>
To: "Dong, Eddie" <eddie.dong@intel.com>
Cc: Christoph Egger <Christoph.Egger@amd.com>,
"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 07/14] Nested Virtualization: trap
Date: Thu, 19 Aug 2010 09:35:52 +0100 [thread overview]
Message-ID: <20100819083552.GF20252@whitby.uk.xensource.com> (raw)
In-Reply-To: <1A42CE6F5F474C41B63392A5F80372B22A3E5C06@shsmsx501.ccr.corp.intel.com>
At 03:44 +0100 on 19 Aug (1282189499), Dong, Eddie wrote:
> >
> > +int hvm_inject_exception(unsigned int trapnr, int errcode, unsigned
> > long cr2) +{
> > + uint64_t exitcode;
> > + bool_t is_intercepted;
> > + struct vcpu *v = current;
> > + struct nestedhvm *hvm = &VCPU_NESTEDHVM(v);
> > +
> > + if ( !nestedhvm_enabled(v->domain) ) {
> > + hvm_funcs.inject_exception(trapnr, errcode, cr2);
> > + return 0;
> > + }
>
> If it is not nested, we go from here to vendor specific injection code.
> If it is nested, I think we'd better to go to another vendor specific
> handler too.
That's exactly what this wrapper does. It's basically:
if ( in L2 and L1 intercepts )
force vmexit
else
inject directly.
It calls out to arch-specific code to do the intercept check and the
vmexit. It could be tidied up a bit and the interfaces could change but
this looks like about the least amount of sharing there could be on
this path. I can't see anything objectionable.
Tim.
> We may have to resort to more vendor specific information within the
> process to handle possible different HW stuff. If above suggestion is
> reasonable, then I think we don't need this wrapper change because we
> can easily extend current vendor speifc inject_exception to support
> both nested case and non-nested case.
--
Tim Deegan <Tim.Deegan@citrix.com>
Principal Software Engineer, XenServer Engineering
Citrix Systems UK Ltd. (Company #02937203, SL9 0BG)
next prev parent reply other threads:[~2010-08-19 8:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1A42CE6F5F474C41B63392A5F80372B22A3E5B97@shsmsx501.ccr.corp.intel.com>
2010-08-19 2:44 ` [PATCH 07/14] Nested Virtualization: trap Dong, Eddie
2010-08-19 8:35 ` Tim Deegan [this message]
2010-08-19 10:32 ` Christoph Egger
2010-08-19 14:12 ` Dong, Eddie
2010-08-19 13:53 ` Dong, Eddie
2010-08-19 14:30 ` Tim Deegan
2010-08-23 3:12 ` Dong, Eddie
2010-08-31 10:34 ` Tim Deegan
2010-08-23 16:03 ` Christoph Egger
2010-08-05 15:02 Christoph Egger
2010-08-09 12:44 ` Tim Deegan
2010-08-10 8:55 ` Christoph Egger
2010-08-10 10:48 ` Tim Deegan
2010-08-10 12:25 ` Christoph Egger
2010-08-10 12:56 ` Tim Deegan
2010-08-10 13:37 ` Christoph Egger
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=20100819083552.GF20252@whitby.uk.xensource.com \
--to=tim.deegan@citrix.com \
--cc=Christoph.Egger@amd.com \
--cc=eddie.dong@intel.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.