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:48:19 +0300 Message-ID: <4E26EAB3.7010708@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> <4E26E8CF.2080205@redhat.com> <4E26EA0F.40302@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]:63231 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752042Ab1GTOsZ (ORCPT ); Wed, 20 Jul 2011 10:48:25 -0400 In-Reply-To: <4E26EA0F.40302@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: 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