On 28/03/18 17:22, Paul Durrant wrote:
>> -----Original Message-----
>> From: Jan Beulich [mailto:jbeul...@suse.com]
>> Sent: 28 March 2018 16:59
>> To: Paul Durrant <paul.durr...@citrix.com>
>> Cc: Andrew Cooper <andrew.coop...@citrix.com>; xen-devel <xen-
>> de...@lists.xenproject.org>
>> Subject: RE: possible I/O emulation state machine issue
>>
>>>>> On 28.03.18 at 15:48, <paul.durr...@citrix.com> wrote:
>>>>  -----Original Message-----
>>>> From: Jan Beulich [mailto:jbeul...@suse.com]
>>>> Sent: 26 March 2018 09:43
>>>> To: Paul Durrant <paul.durr...@citrix.com>
>>>> Cc: Andrew Cooper <andrew.coop...@citrix.com>; xen-devel <xen-
>>>> de...@lists.xenproject.org>
>>>> Subject: Re: possible I/O emulation state machine issue
>>>>
>>>>>>> On 23.03.18 at 14:41, <paul.durr...@citrix.com> wrote:
>>>>> So somehow it appears the vcpu got back into guest and executed the
>> next
>>>>> instruction whilst there was pending I/O.
>>>> Two new pieces of information, in case either rings a bell:
>>>>
>>> Alas neither rings a bell.
>>>
>>>> The issue appears to never occur in hap=0 mode.
>>>>
>>> That's quite an odd correlation.
>> Simply timing, perhaps. In any event, newest logs suggest we have
>> an issue with Windows paging out the page the data for the
>> REP OUTSW is coming from while the port I/O part of the operation
>> is pending qemu's completion. Upon retry the linear->physical
>> translation fails, and we leave incorrect state in place.
>>
>> I thought we cache the translation result, thus avoiding the need
>> for a translation during the retry cycle, so either I'm misremembering
>> or this doesn't work as intended. And in fact doing the translation a
>> second time (with the potential of it failing) is wrong here - when the
>> port access has occurred, we must not fail the emulation anymore
>> (repeating the port write would probably be fine for the VGA, but
>> would hardly be fine for e.g. an IDE interface).
>>
> Yes, I thought we made sure all reps were completed using cached translations 
> before returning to guest.

Its one of the many items on the TODO list, along with maintaining a
proper virtual TLB to avoid rewalks during a single emulation.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to