From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [PATCH v2 00/23] Memory API, batch 1 Date: Fri, 29 Jul 2011 09:18:13 -0500 Message-ID: <4E32C125.9070102@codemonkey.ws> References: <1311679582-11211-1-git-send-email-avi@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org To: Avi Kivity Return-path: In-Reply-To: <1311679582-11211-1-git-send-email-avi@redhat.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org List-Id: kvm.vger.kernel.org On 07/26/2011 06:25 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 Applied all. Thanks. Regards, Anthony Liguori > > Also available from > > git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git > refs/tags/memory-region-batch-1-v2 > > Changes from v1: > - switched to gtk-doc > - more copyright blurbs > - simplified flatview_simplify() > - use assert() instead of abort() for invariant checks > (but keep abort() for runtime errors) > - commit log fixups > > Avi Kivity (23): > Add memory API documentation > 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: 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 | 39 ++ > 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 | 1141 ++++++++++++++++++++++++++++++++++++++++++++++++++++ > memory.h | 469 +++++++++++++++++++++ > 33 files changed, 2072 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 >