[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] (xen 4.6 unstable) triple fault when execute fxsave during the procedure of guest iso install


  • To: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Fanhenglong <fanhenglong@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxx>
  • From: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
  • Date: Wed, 24 Jun 2015 13:28:41 +0300
  • Cc: "Liuqiming \(John\)" <john.liuqiming@xxxxxxxxxx>, Yanqiangjun <yanqiangjun@xxxxxxxxxx>, "Huangpeng \(Peter\)" <peter.huangpeng@xxxxxxxxxx>, "Hanweidong \(Randy\)" <hanweidong@xxxxxxxxxx>
  • Comment: DomainKeys? See http://domainkeys.sourceforge.net/
  • Delivery-date: Wed, 24 Jun 2015 10:28:38 +0000
  • Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=bitdefender.com; b=OLUKQRjrKVyU8aSqIiog8DbSX9gISfgqsO1GoBcz09hz94hPmUuD7NSIhAVj7BymcUZWvxf4X4JDtrfWgcRJGPH7X3hYKrHJRGqZ4Nt9I1eBZP7d0kQHPPkX7dXnJoVsiY8HSLu41bVZ+nWIxPHTsOXOw+izDvrjShg5vaqsRvKz/7A3g48C2Ibvt1tYSSn1n4uJYR9dOfH9AfXdXpA0zXWUIR47FkWRrbgiMIHx4QkM8qpTVCekbJ1YbUikF5N7nzHAJeYI3H3omltGt7VmFydu9lkUD+kVOuFzrYyugyvEwDRF99HkELr7sM/9QS7a3PMQtmUE1J2qDSgqGMP3XA==; h=Received:Received:Received:Received:Received:From:Subject:To:References:Cc:X-Enigmail-Draft-Status:Message-ID:Date:User-Agent:MIME-Version:In-Reply-To:Content-Type:Content-Transfer-Encoding:X-BitDefender-Scanner:X-BitDefender-Spam:X-BitDefender-SpamStamp:X-BitDefender-CF-Stamp;
  • List-id: Xen developer discussion <xen-devel.lists.xen.org>

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

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.