On 2011-07-20 16:40, Avi Kivity wrote:
> On 07/20/2011 05:05 PM, Jan Kiszka wrote:
>> On 2011-07-17 13:13, Avi Kivity wrote:
>>> Convert all vga memory to the memory API. Note we need to fall back to
>>> get_system_memory(), since the various buses don't pass the vga window
>>> as a memory region.
>>>
>>
>>>
>>> if (limit> 0) {
>>> - /* Thinking about changing bank base? First, drop the dirty
bitmap information
>>> - * on the current location, otherwise we lose this pointer
forever */
>>> - if (s->vga.lfb_vram_mapped) {
>>> - target_phys_addr_t base_addr = isa_mem_base + 0xa0000 +
bank_index * 0x8000;
>>> - cpu_physical_sync_dirty_bitmap(base_addr, base_addr +
0x8000);
>>> - }
>>
>> Why is it safe to drop this?
>>
>
> The memory API will sync the dirty bitmap once it becomes invisible.
OK, maybe add a short note to the commit log in the next release?
>
> (that's the whole point - it can be made invisible by something outside
> the cirrus card's knowledge).
>
> Note - with kvm, there is still a race between syncing the bitmap and
> removing the region. However that is a bug in the kvm API; it is not
> possible to work around it in qemu.
>
Dirty log off, reconfigure, dirty log on?