On Wed, Sep 16, 2015 at 12:12 PM, Razvan Cojocaru <rcojoc...@bitdefender.com
> wrote:

> On 09/16/2015 06:57 PM, Tamas K Lengyel wrote:
> >
> >
> > On Tue, Sep 15, 2015 at 5:19 AM, Razvan Cojocaru
> > <rcojoc...@bitdefender.com <mailto:rcojoc...@bitdefender.com>> wrote:
> >
> >     A previous version of this patch dealing with support for skipping
> >     the current instruction when a vm_event response requested it
> >     computed the instruction length in the hypervisor, adding non-trivial
> >     code dependencies. This patch allows a userspace vm_event client to
> >     simply request that the guest's EIP is set to an arbitary value,
> >     computed by the introspection application.
> >
> >
> > So in my opinion this patch introduces a feature that is not strictly
> > tied to emulation related vm_event paths. I could use this feature to
> > update the instruction pointer any time we respond to a vm_event and
> > furthermore, it may be benefitial to expand the scope of which registers
> > can be updated this way. For example, I have tools that update not just
> > the instruction pointer but also the stack pointer and registers used to
> > pass function inputs. Since we already send a snapshot of select
> > registers to the user with each event, we could introduce a response
> > flag that indicates that all registers included in that snapshot should
> > be set to the values sent back by the user. The user then could choose
> > which registers need to be updated in bulk.
> >
> > What do you think?
>
> Hello Tamas, thanks for the reply!
>
> Yes, I thought it might come up that this doesn't have to be
> emulation-specific, but thought I'd hitch it there since I've assumed
> that at the moment this is the only case where it's actually used.
>
> I have nothing in principle against having a SET_REGISTERS flag instead
> of a SET_EIP one, but I am unsure of how (and where) that would be best
> implemented. What do you have in mind? A handler similar to void
> vm_event_register_write_resume() where we set these registers for the
> respective vcpu? Is this even possible at vm_event response handling time?
>

No, that function falls under a switch on rsp.reason, for which we have a
1:1 unofficial and not really enforced rule to match the type of event that
was sent. This should fall under a flag on rsp.flags and be handled similar
to how vm_event_toggle_singlestep is.

Tamas
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to