On 07/20/2011 05:45 PM, Jan Kiszka wrote:
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?
Sure.
> > (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?
What happens if there's a write after the first comma (assuming "reconfigure" == "remove slot")?
Granted, the guest shouldn't be doing that. Hmm, I guess you could just mark the entire range dirty after removing it. -- error compiling committee.c: too many arguments to function -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html