From: Razvan Cojocaru <rcojocaru@bitdefender.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: kevin.tian@intel.com, Ian.Campbell@citrix.com,
stefano.stabellini@eu.citrix.com, andrew.cooper3@citrix.com,
eddie.dong@intel.com, xen-devel@lists.xen.org,
andres@lagarcavilla.org, jun.nakajima@intel.com,
Ian.Jackson@eu.citrix.com
Subject: Re: [PATCH RFC V3 5/5] xen: Handle resumed instruction based on previous mem_event reply
Date: Thu, 24 Jul 2014 19:29:56 +0300 [thread overview]
Message-ID: <53D13484.2010108@bitdefender.com> (raw)
In-Reply-To: <53D145760200007800025A79@mail.emea.novell.com>
On 07/24/2014 06:42 PM, Jan Beulich wrote:
>>>> On 23.07.14 at 14:34, <rcojocaru@bitdefender.com> wrote:
>> + {
>> + v->arch.mem_event.emulate_flags = MEM_EVENT_FLAG_EMULATE;
>> + v->arch.mem_event.gpa = gpa;
>> + v->arch.mem_event.eip = eip;
>> + }
>> + }
>> + }
>> +
>> + if ( v->arch.mem_event.gpa != gpa || v->arch.mem_event.eip != eip )
>> + {
>> + v->arch.mem_event.emulate_flags = 0;
>> + v->arch.mem_event.gpa = gpa;
>> + v->arch.mem_event.eip = eip;
>> + }
>
> So the default value for gpa and eip is zero - how do you deal with
> guests having code/data at virtual/physical address zero? It would
> seem to me that you need a "valid" qualification for these fields, but
> since the purpose of this last block isn't really clear to me maybe I'm
> simply missing something and a comment might help.
Some instruction may trigger a page fault, which then sends out a
mem_event, and the reply might have the MEM_EVENT_FLAG_EMULATE flag set.
If it is set, we could simply emulate the next instruction that triggers
a page fault, but unless eip and gpa match, that might be some other
instruction, not the one that originally triggered the mem_event.
What the last block does is it verifies that we're not emulating an
instruction different from the one that triggered the mem_event in the
first place. If this is not the same instruction, then don't emulate it
(but send out a new mem_event for it), and just reset those values.
That the default values are zero has not been a problem for us, but I do
see how that might not be desirable for other clients. A "valid"
qualification might indeed be the solution for this.
Thanks,
Razvan Cojocaru
next prev parent reply other threads:[~2014-07-24 16:29 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-23 12:34 [PATCH RFC V3 1/5] xen: Emulate with no writes Razvan Cojocaru
2014-07-23 12:34 ` [PATCH RFC V3 2/5] xen: Optimize introspection access to guest state Razvan Cojocaru
2014-07-24 15:07 ` Jan Beulich
2014-07-23 12:34 ` [PATCH RFC V3 3/5] xen: Force-enable relevant MSR events; optimize the number of sent MSR events Razvan Cojocaru
2014-07-24 15:14 ` Jan Beulich
2014-07-24 15:56 ` Razvan Cojocaru
2014-07-23 12:34 ` [PATCH RFC V3 4/5] xen, libxc: Request page fault injection via libxc Razvan Cojocaru
2014-07-23 13:40 ` Tamas Lengyel
2014-07-23 14:08 ` Razvan Cojocaru
2014-07-23 14:27 ` Tamas Lengyel
2014-07-23 15:13 ` Razvan Cojocaru
2014-07-23 20:17 ` Andrei LUTAS
2014-07-24 12:38 ` Ian Jackson
2014-07-24 12:41 ` Andrew Cooper
2014-07-24 12:44 ` Razvan Cojocaru
2014-07-24 12:33 ` Ian Jackson
2014-07-24 15:27 ` Jan Beulich
2014-07-24 16:18 ` Razvan Cojocaru
2014-07-25 7:50 ` Jan Beulich
2014-07-23 12:34 ` [PATCH RFC V3 5/5] xen: Handle resumed instruction based on previous mem_event reply Razvan Cojocaru
2014-07-24 15:42 ` Jan Beulich
2014-07-24 16:29 ` Razvan Cojocaru [this message]
2014-07-25 7:52 ` Jan Beulich
2014-07-24 11:20 ` [PATCH RFC V3 1/5] xen: Emulate with no writes Tim Deegan
2014-07-24 11:40 ` Razvan Cojocaru
2014-07-25 13:52 ` Razvan Cojocaru
2014-07-25 14:07 ` Jan Beulich
2014-07-24 12:32 ` Ian Jackson
2014-07-24 12:36 ` Razvan Cojocaru
2014-07-24 12:37 ` Razvan Cojocaru
2014-07-24 17:25 ` Tian, Kevin
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=53D13484.2010108@bitdefender.com \
--to=rcojocaru@bitdefender.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=JBeulich@suse.com \
--cc=andres@lagarcavilla.org \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=jun.nakajima@intel.com \
--cc=kevin.tian@intel.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
/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.