From: Razvan Cojocaru <rcojocaru@bitdefender.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>,
Fanhenglong <fanhenglong@huawei.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
Cc: "Liuqiming (John)" <john.liuqiming@huawei.com>,
Yanqiangjun <yanqiangjun@huawei.com>,
"Huangpeng (Peter)" <peter.huangpeng@huawei.com>,
"Hanweidong (Randy)" <hanweidong@huawei.com>
Subject: Re: (xen 4.6 unstable) triple fault when execute fxsave during the procedure of guest iso install
Date: Wed, 24 Jun 2015 13:28:41 +0300 [thread overview]
Message-ID: <558A8659.9060705@bitdefender.com> (raw)
In-Reply-To: <558A790D.30103@citrix.com>
On 06/24/2015 12:31 PM, Andrew Cooper wrote:
> On 24/06/15 10:25, Razvan Cojocaru wrote:
>> On 06/24/2015 12:14 PM, Fanhenglong wrote:
>>> I want to debug the procedure of windows os install with windbg,
>>>
>>> windbg executes instruction(fxsave) after the blank vm is started and
>>> before guest iso start to install,
>>>
>>> fxsave trigger the following code path:
>>> vmx_vmexit_handler(EXIT_REASON_EPT_VIOLATION)
>>> ->ept_handle_violation
>>> ->hvm_hap_nested_page_fault
>>> ->handle_mmio_with_translation
>>> ->handle_mmio
>>> ->hvm_emulate_one
>>> ->x86_emulate
>>>
>>> *X86_emulate return X86EMUL_UNHANDLEABLE*
>> How are you using Xen in this case? Are you by any chance using the
>> vm_event system in a way that sends back an "emulate" vm_event response
>> from userspace?
>>
>> You might want to look at x86_emulate() in
>> xen/arch/x86/x86_emulate/x86_emulate.c and see if (and how) fxsave is
>> being handled.
>
> The fxsave instruction has no emulation implementation.
>
> "0f ae 07" is "fxsave (%rdi)" which means that either introspection is
> active, or %rdi is a pointer into an MMIO region.
I see, these are the cases we wanted to treat with the old patch (I
thick it was called "xen: Handle resumed instruction based on previous
mem_event reply" - the early versions, with RFC) that sometimes bypassed
the emulator in the introspection case. Without that, there's always
going to be a potential current or future instruction not emulated, and
then something like this happens.
Cheers,
Razvan
next prev parent reply other threads:[~2015-06-24 10:28 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-24 9:14 (xen 4.6 unstable) triple fault when execute fxsave during the procedure of guest iso install Fanhenglong
2015-06-24 9:25 ` Razvan Cojocaru
2015-06-24 9:31 ` Andrew Cooper
2015-06-24 10:28 ` Razvan Cojocaru [this message]
2015-06-24 10:35 ` Wei Liu
2015-06-25 0:40 ` 答复: " Fanhenglong
2015-06-24 10:38 ` Jan Beulich
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=558A8659.9060705@bitdefender.com \
--to=rcojocaru@bitdefender.com \
--cc=andrew.cooper3@citrix.com \
--cc=fanhenglong@huawei.com \
--cc=hanweidong@huawei.com \
--cc=john.liuqiming@huawei.com \
--cc=peter.huangpeng@huawei.com \
--cc=xen-devel@lists.xen.org \
--cc=yanqiangjun@huawei.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.