* Hvm_emulate_one() and guest_cpu_user_regs()->eip
@ 2013-10-17 6:50 Razvan Cojocaru
2013-10-17 9:32 ` Jan Beulich
0 siblings, 1 reply; 3+ messages in thread
From: Razvan Cojocaru @ 2013-10-17 6:50 UTC (permalink / raw)
To: xen-devel
Hello,
I've noticed that an hvm_emulate_one() call (that uses
guest_cpu_user_regs() for it's context) will succeed _without_ modifying
guest_cpu_user_regs()->eip. Again, this is not only happening when
hvm_emulate_one() returns X86EMUL_RETRY (which I'd expect), but also, in
some cases, when it returns no error.
Why would that happen, and what might be an example of an instruction
that could cause that if that's normal behaviour?
Thanks,
Razvan Cojocaru
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Hvm_emulate_one() and guest_cpu_user_regs()->eip
2013-10-17 6:50 Hvm_emulate_one() and guest_cpu_user_regs()->eip Razvan Cojocaru
@ 2013-10-17 9:32 ` Jan Beulich
2013-10-17 10:02 ` Razvan Cojocaru
0 siblings, 1 reply; 3+ messages in thread
From: Jan Beulich @ 2013-10-17 9:32 UTC (permalink / raw)
To: Razvan Cojocaru; +Cc: xen-devel
>>> On 17.10.13 at 08:50, Razvan Cojocaru <rzvncj@gmail.com> wrote:
> I've noticed that an hvm_emulate_one() call (that uses
> guest_cpu_user_regs() for it's context) will succeed _without_ modifying
> guest_cpu_user_regs()->eip. Again, this is not only happening when
> hvm_emulate_one() returns X86EMUL_RETRY (which I'd expect), but also, in
> some cases, when it returns no error.
>
> Why would that happen, and what might be an example of an instruction
> that could cause that if that's normal behaviour?
If you've noticed it, you're in a much better position to tell us for
which instructions this _is_ happening than we are. As for when
this is validly happening - off the top of my head I can only think of
repeated string instructions as candidates (where the progress
being made is expressed in decreasing [RE]CX) or, in similar ways,
LOOPs having their own address as jump target.
Jan
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Hvm_emulate_one() and guest_cpu_user_regs()->eip
2013-10-17 9:32 ` Jan Beulich
@ 2013-10-17 10:02 ` Razvan Cojocaru
0 siblings, 0 replies; 3+ messages in thread
From: Razvan Cojocaru @ 2013-10-17 10:02 UTC (permalink / raw)
To: Jan Beulich; +Cc: xen-devel
>> guest_cpu_user_regs() for it's context) will succeed _without_ modifying
>> guest_cpu_user_regs()->eip. Again, this is not only happening when
>> hvm_emulate_one() returns X86EMUL_RETRY (which I'd expect), but also, in
>> some cases, when it returns no error.
>>
>> Why would that happen, and what might be an example of an instruction
>> that could cause that if that's normal behaviour?
>
> If you've noticed it, you're in a much better position to tell us for
> which instructions this _is_ happening than we are. As for when
> this is validly happening - off the top of my head I can only think of
> repeated string instructions as candidates (where the progress
> being made is expressed in decreasing [RE]CX) or, in similar ways,
> LOOPs having their own address as jump target.
Indeed, the question was actually "what class of instructions might
cause this", not "what instruction is causing my particular issue".
I should have formulated it in clearer terms.
Thank you for your answer.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-10-17 10:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-17 6:50 Hvm_emulate_one() and guest_cpu_user_regs()->eip Razvan Cojocaru
2013-10-17 9:32 ` Jan Beulich
2013-10-17 10:02 ` Razvan Cojocaru
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.