From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:57577) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QN6Ez-0007Rn-8Y for qemu-devel@nongnu.org; Thu, 19 May 2011 12:38:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QN6Ey-0007b9-29 for qemu-devel@nongnu.org; Thu, 19 May 2011 12:38:25 -0400 Received: from mail-yx0-f173.google.com ([209.85.213.173]:49901) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QN6Ex-0007b3-W4 for qemu-devel@nongnu.org; Thu, 19 May 2011 12:38:24 -0400 Received: by yxk8 with SMTP id 8so1143161yxk.4 for ; Thu, 19 May 2011 09:38:23 -0700 (PDT) Message-ID: <4DD5477D.7090706@codemonkey.ws> Date: Thu, 19 May 2011 11:38:21 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <4DD3D236.90708@siemens.com> <4DD3D95E.2060105@redhat.com> <4DD3E1B3.3020405@siemens.com> <4DD3E47F.9060104@redhat.com> <4DD3E782.8090208@siemens.com> <4DD3E8D6.6090807@redhat.com> <20110519090851.GD28399@redhat.com> <4DD4DE8E.8030402@redhat.com> <20110519091404.GE28399@redhat.com> <4DD5029D.6000700@redhat.com> <20110519115405.GG28399@redhat.com> <4DD505C4.6010604@redhat.com> <4DD50B17.7000205@siemens.com> <4DD511FB.3080901@redhat.com> <4DD51413.1050202@siemens.com> <4DD51468.7050509@redhat.com> <4DD51531.7000701@siemens.com> <4DD515F9.1020902@redhat.com> <4DD51A82.7060205@siemens.com> <4DD51B64.8000306@redhat.com> <4DD51FDA.3010107@codemonkey.ws> <4DD520ED.8010606@redhat.com> <4DD5260A.1080309@codemonkey.ws> <4DD5272F.5000003@siemens.com> <4DD52848.6030102@codemonkey.ws> <4DD52910.4080106@siemens.com> <4DD52B0E.2080604@codemonkey.ws> <4DD52BF2.2080506@redhat.com> <4DD54611.6090505@codemonkey.ws> <4DD546DC.1000703@siemens.com> In-Reply-To: <4DD546DC.1000703@siemens.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC] Memory API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Avi Kivity , Gleb Natapov , qemu-devel On 05/19/2011 11:35 AM, Jan Kiszka wrote: > On 2011-05-19 18:32, Anthony Liguori wrote: >> On 05/19/2011 09:40 AM, Avi Kivity wrote: >>> On 05/19/2011 05:37 PM, Anthony Liguori wrote: >>>> >>>> So.... do you do: >>>> >>>> isa_register_region(ISABus *bus, MemoryRegion *mr, int priority) >>>> { >>>> chipset_register_region(bus->chipset, mr, priority + 1); >>>> } >>>> >>>> I don't really understand how you can fold everything into one table >>>> and not allow devices to override their parents using priorities. >>> >>> Think of how a window manager folds windows with priorities onto a flat >>> framebuffer. >>> >>> You do a depth-first walk of the tree. For each child list, you iterate >>> it from the lowest to highest priority, allowing later subregions >>> override earlier subregions. >>> >> >> Okay, but this doesn't explain how you'll let RAM override the VGA >> mapping since RAM is not represented in the same child list as VGA (RAM >> is a child of the PMC whereas VGA is a child of ISA/PCI, both of which >> are at least one level removed from the PMC). > > You can always create a new memory region with higher priority, pointing > to the RAM window you want to have above VGA. That's what we do today as > well, just with different effects on the internal representation. But then we're no better than we are today. I thought the whole point of this thread of discussion was to allow overlapping I/O regions to be handled in a better way than we do today? Regards, Anthony Liguori > > Jan >