From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kzukr-0005Pm-EA for qemu-devel@nongnu.org; Tue, 11 Nov 2008 10:02:09 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kzukp-0005PY-UE for qemu-devel@nongnu.org; Tue, 11 Nov 2008 10:02:09 -0500 Received: from [199.232.76.173] (port=52063 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kzukp-0005PV-Rs for qemu-devel@nongnu.org; Tue, 11 Nov 2008 10:02:07 -0500 Received: from mail-gx0-f15.google.com ([209.85.217.15]:63780) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Kzukp-0005SI-QT for qemu-devel@nongnu.org; Tue, 11 Nov 2008 10:02:07 -0500 Received: by gxk8 with SMTP id 8so2454421gxk.10 for ; Tue, 11 Nov 2008 07:02:06 -0800 (PST) Message-ID: <49199A50.40504@codemonkey.ws> Date: Tue, 11 Nov 2008 08:44:32 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 5/5] vga optimization. References: <1226369769-5109-1-git-send-email-glommer@redhat.com> <1226369769-5109-2-git-send-email-glommer@redhat.com> <1226369769-5109-3-git-send-email-glommer@redhat.com> <1226369769-5109-4-git-send-email-glommer@redhat.com> <1226369769-5109-5-git-send-email-glommer@redhat.com> <1226369769-5109-6-git-send-email-glommer@redhat.com> In-Reply-To: <1226369769-5109-6-git-send-email-glommer@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Glauber Costa wrote: > +static void map_linear_vram(CirrusVGAState *s) > +{ > + int phys_offset = s->vga_io_memory; > + > + if (!s->map_addr && s->lfb_addr && s->lfb_end) { > + s->map_addr = s->lfb_addr; > + s->map_end = s->lfb_end; > + cpu_register_physical_memory(s->map_addr, s->map_end - s->map_addr, s->vram_offset); > + vga_dirty_log_start((VGAState *)s); > So you register this region and enable dirty tracking. > + } > + > + if(!(s->cirrus_srcptr != s->cirrus_srcptr_end) > + && !((s->sr[0x07] & 0x01) == 0) > + && !((s->gr[0x0B] & 0x14) == 0x14) > + && !(s->gr[0x0B] & 0x02)) { > + phys_offset = s->vram_offset | IO_MEM_RAM; > + } > + cpu_register_physical_memory(isa_mem_base + 0xa0000, 0x20000, phys_offset); > But also potentially change 0xa0000..0xc0000 to RAM, but you don't enable dirty tracking on this region. I think you either have to leave this region as MMIO or enable dirty tracking on it too. Regards, Anthony Liguori