On 2011-10-18 19:34, Avi Kivity wrote:
> On 10/18/2011 06:49 PM, Jan Kiszka wrote:
>> On 2011-10-18 18:40, Avi Kivity wrote:
>>> On 10/18/2011 04:30 PM, Avi Kivity wrote:
>>>> This takes a while to reproduce, let me talk to gdb for a bit.
>>>>
>>>
>>> a vcpu exit causes kvm_flush_coalesced_mmio_buffer() to run, which does
>>> a bitblt, which is cirrus_do_copy(), which goes to vga_hw_update, which
>>
>> Why does it have to do vga_hw_update? Why can't it set some flag for the
>> next requested screen update or so? Just thinking, haven't looked at the
>> code yet.
> 
> Maybe it's a remnant from the days where it asked the host hardware to
> do the blt.

If it's no longer needed - drop it? Already for other reasons like
efficiency.

> 
>> Do you think that only cirrus is affected by this pattern?
> 
> It's also possible for hotunplug:
> 
> - hotunplug
> - unregister coalesced regions
> - flush mmios
> - call back into same device

Which device triggers hotunplug via a coalesced mmio region?

Anyway, if we want to avoid other surprises like that, better make
kvm_flush_coalesced_mmio_buffer reentrance-safe. If we think that this
remains an odd scenario, issue a warning to the console that some device
may require fixing.

Jan

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to