From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [RFC v4 23/58] vga: convert vga and its derivatives to the memory API Date: Wed, 20 Jul 2011 17:40:15 +0300 Message-ID: <4E26E8CF.2080205@redhat.com> References: <1310901265-32051-1-git-send-email-avi@redhat.com> <1310901265-32051-24-git-send-email-avi@redhat.com> <4E26E0AF.9040503@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:10036 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750969Ab1GTOkW (ORCPT ); Wed, 20 Jul 2011 10:40:22 -0400 In-Reply-To: <4E26E0AF.9040503@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: 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. (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. -- error compiling committee.c: too many arguments to function