From: "Jan Beulich" <JBeulich@suse.com>
To: Razvan Cojocaru <rcojocaru@bitdefender.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,
jun.nakajima@intel.com, ian.jackson@eu.citrix.com
Subject: Re: [PATCH RFC V7 1/5] xen: Emulate with no writes
Date: Tue, 26 Aug 2014 15:19:24 +0100 [thread overview]
Message-ID: <53FCB38C020000780002DA90@mail.emea.novell.com> (raw)
In-Reply-To: <53FC934D.1000901@bitdefender.com>
>>> On 26.08.14 at 16:01, <rcojocaru@bitdefender.com> wrote:
> On 08/26/2014 04:56 PM, Jan Beulich wrote:
>>>>> On 13.08.14 at 17:28, <rcojocaru@bitdefender.com> wrote:
>>> +void hvm_emulate_one_full(bool_t nowrite, unsigned int trapnr,
>>> + unsigned int errcode)
>>> +{
>>> + struct hvm_emulate_ctxt ctx = {{ 0 }};
>>> + int rc;
>>> +
>>> + hvm_emulate_prepare(&ctx, guest_cpu_user_regs());
>>> +
>>> + if ( nowrite )
>>> + rc = hvm_emulate_one_no_write(&ctx);
>>> + else
>>> + rc = hvm_emulate_one(&ctx);
>>> +
>>> + switch ( rc )
>>> + {
>>> + case X86EMUL_UNHANDLEABLE:
>>> + gdprintk(XENLOG_DEBUG, "Emulation failed @ %04x:%lx: "
>>> + "%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
>>> + hvmemul_get_seg_reg(x86_seg_cs, &ctx)->sel,
>>> + ctx.insn_buf_eip,
>>> + ctx.insn_buf[0], ctx.insn_buf[1],
>>> + ctx.insn_buf[2], ctx.insn_buf[3],
>>> + ctx.insn_buf[4], ctx.insn_buf[5],
>>> + ctx.insn_buf[6], ctx.insn_buf[7],
>>> + ctx.insn_buf[8], ctx.insn_buf[9]);
>>> + hvm_inject_hw_exception(trapnr, errcode);
>>> + break;
>>> + case X86EMUL_EXCEPTION:
>>> + if ( ctx.exn_pending )
>>> + hvm_inject_hw_exception(ctx.exn_vector, ctx.exn_error_code);
>>> + break;
>>
>> Shouldn't you act on X86EMUL_RETRY here? Or at least not fall through
>> to the writeback below?
>
> Thanks for the review, I did initially loop around hvm_emulate_one()
> until rc != X86EMUL_RETRY, but I've been told that that might block
> against time calibration rendezvous points.
In any event it strikes me as odd that you ignore that state
altogether rather than propagating it back up, so that someone
in suitable position to do the retry can invoke it.
Jan
next prev parent reply other threads:[~2014-08-26 14:19 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-13 15:28 [PATCH RFC V7 1/5] xen: Emulate with no writes Razvan Cojocaru
2014-08-13 15:28 ` [PATCH RFC V7 2/5] xen: Optimize introspection access to guest state Razvan Cojocaru
2014-08-13 15:28 ` [PATCH RFC V7 3/5] xen, libxc: Force-enable relevant MSR events Razvan Cojocaru
2014-08-26 14:05 ` Jan Beulich
2014-08-13 15:28 ` [PATCH RFC V7 4/5] xen, libxc: Request page fault injection via libxc Razvan Cojocaru
2014-08-26 14:13 ` Jan Beulich
2014-08-26 14:24 ` Razvan Cojocaru
2014-08-26 14:44 ` Jan Beulich
2014-08-26 14:56 ` Razvan Cojocaru
2014-08-26 15:49 ` Jan Beulich
2014-08-26 16:59 ` Razvan Cojocaru
2014-08-27 0:54 ` Tian, Kevin
2014-08-27 6:58 ` Jan Beulich
2014-08-28 13:15 ` Tim Deegan
2014-08-28 13:19 ` Razvan Cojocaru
2014-08-27 11:54 ` Razvan Cojocaru
2014-08-27 12:10 ` Jan Beulich
2014-08-27 12:15 ` Razvan Cojocaru
2014-08-13 15:28 ` [PATCH RFC V7 5/5] xen: Handle resumed instruction based on previous mem_event reply Razvan Cojocaru
2014-08-26 13:56 ` [PATCH RFC V7 1/5] xen: Emulate with no writes Jan Beulich
2014-08-26 14:01 ` Razvan Cojocaru
2014-08-26 14:19 ` Jan Beulich [this message]
2014-08-26 14:30 ` Razvan Cojocaru
2014-08-26 14:40 ` Jan Beulich
2014-08-26 14:45 ` Razvan Cojocaru
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=53FCB38C020000780002DA90@mail.emea.novell.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=eddie.dong@intel.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jun.nakajima@intel.com \
--cc=kevin.tian@intel.com \
--cc=rcojocaru@bitdefender.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 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).