From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:48989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlRgE-00039x-Rf for qemu-devel@nongnu.org; Mon, 25 Jul 2011 16:23:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QlRgD-0005qe-TT for qemu-devel@nongnu.org; Mon, 25 Jul 2011 16:23:10 -0400 Received: from mail-pz0-f43.google.com ([209.85.210.43]:64393) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QlRgD-0005qZ-NS for qemu-devel@nongnu.org; Mon, 25 Jul 2011 16:23:09 -0400 Received: by pzk1 with SMTP id 1so9354430pzk.30 for ; Mon, 25 Jul 2011 13:23:09 -0700 (PDT) Message-ID: <4E2DD0A9.2000005@codemonkey.ws> Date: Mon, 25 Jul 2011 15:23:05 -0500 From: Anthony Liguori MIME-Version: 1.0 References: <1311602584-23409-1-git-send-email-avi@redhat.com> In-Reply-To: <1311602584-23409-1-git-send-email-avi@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 00/23] Memory API, batch 1 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org On 07/25/2011 09:02 AM, Avi Kivity wrote: > This patchset contains the core of the memory API, with one device > (usb-ohci) coverted for reference. The API is currently implemented on > top of the old ram_addr_t/cpu_register_physical_memory() API, but the plan > is to make it standalone later. > > The goals of the API are: > - correctness: by modelling the memory hierarchy, things like the 440FX PAM > registers and movable, overlapping PCI BARs can be modelled accurately. > - efficiency: by maintaining an object tree describing guest memory, we > can eventually get rid of the page descriptor array > - security: by having more information available declaratively, we reduce > coding errors that may be exploited by malicious guests > > Also available from > > git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git > refs/tags/memory-region-batch-1 Very nice series. Despite my lack of exciting over ioeventfd and coalescing, if you fix the few minor comments, this should be a no brainer to merge. Regards, Anthony Liguori > > Avi Kivity (23): > Hierarchical memory region API > memory: implement dirty tracking > memory: merge adjacent segments of a single memory region > Internal interfaces for memory API > memory: abstract address space operations > memory: rename MemoryRegion::has_ram_addr to ::terminates > memory: late initialization of ram_addr > memory: I/O address space support > memory: add backward compatibility for old portio registration > memory: add backward compatibility for old mmio registration > memory: add ioeventfd support > memory: separate building the final memory map into two steps > memory: document the memory API > memory: transaction API > exec.c: initialize memory map > ioport: register ranges by byte aligned addresses always > pc: grab system_memory > pc: convert pc_memory_init() to memory API > pc: move global memory map out of pc_init1() and into its callers > pci: pass address space to pci bus when created > pci: add MemoryRegion based BAR management API > sysbus: add MemoryRegion based memory management API > usb-ohci: convert to MemoryRegion > > Makefile.target | 1 + > docs/memory.txt | 172 ++++++++ > exec-memory.h | 26 ++ > exec.c | 19 + > hw/apb_pci.c | 2 + > hw/bonito.c | 4 +- > hw/grackle_pci.c | 5 +- > hw/gt64xxx.c | 4 +- > hw/pc.c | 62 ++- > hw/pc.h | 9 +- > hw/pc_piix.c | 20 +- > hw/pci.c | 63 +++- > hw/pci.h | 15 +- > hw/pci_host.h | 1 + > hw/pci_internals.h | 1 + > hw/piix_pci.c | 13 +- > hw/ppc4xx_pci.c | 5 +- > hw/ppc_mac.h | 9 +- > hw/ppc_newworld.c | 5 +- > hw/ppc_oldworld.c | 3 +- > hw/ppc_prep.c | 3 +- > hw/ppce500_pci.c | 6 +- > hw/prep_pci.c | 5 +- > hw/prep_pci.h | 3 +- > hw/sh_pci.c | 4 +- > hw/sysbus.c | 27 ++- > hw/sysbus.h | 3 + > hw/unin_pci.c | 10 +- > hw/usb-ohci.c | 42 +-- > hw/versatile_pci.c | 2 + > ioport.c | 4 +- > memory.c | 1144 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > memory.h | 259 ++++++++++++ > 33 files changed, 1852 insertions(+), 99 deletions(-) > create mode 100644 docs/memory.txt > create mode 100644 exec-memory.h > create mode 100644 memory.c > create mode 100644 memory.h >