From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:36745) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TJf7z-0007xM-4T for qemu-devel@nongnu.org; Thu, 04 Oct 2012 02:41:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TJf7y-0002fg-2L for qemu-devel@nongnu.org; Thu, 04 Oct 2012 02:41:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39686) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TJf7x-0002fa-Q6 for qemu-devel@nongnu.org; Thu, 04 Oct 2012 02:41:45 -0400 Message-ID: <506D2F9B.1070602@redhat.com> Date: Thu, 04 Oct 2012 08:41:31 +0200 From: Avi Kivity MIME-Version: 1.0 References: <1349280245-16341-1-git-send-email-avi@redhat.com> In-Reply-To: <1349280245-16341-1-git-send-email-avi@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC v1 00/22] Integrate DMA into the memory API List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, Anthony Liguori , liu ping fan , "Michael S. Tsirkin" , Paolo Bonzini , Blue Swirl Cc: Alex Williamson , Stefano Stabellini Adding missing cc's: there are minor changes to vfio and xen here, please review and test. On 10/03/2012 06:03 PM, Avi Kivity wrote: > Most of the work on the memory API focused on memory access targets - the memory regions > and how they are composed into an address space. This patchset tackles the initator > side of the question - how to originate accesses. > > The AddressSpace object, is exported to users and becomes the representation of an > initiator. Each address space describes the paths from some point in the system > (a device or cpu) to the devices reachable from that initiator. > > As an example, the API is used to support PCI_COMMAND_MASTER bit. > > Avi Kivity (22): > memory: rename 'exec-obsolete.h' > vhost: use MemoryListener filtering to only monitor RAM address space > kvm: use separate MemoryListeners for memory and I/O > xen_pt: use separate MemoryListeners for memory and I/O > memory: prepare AddressSpace for exporting > memory: export AddressSpace > memory: maintain a list of address spaces > memory: provide defaults for MemoryListener operations > memory: use new MEMORY_LISTENER_DEFAULT_OPS > vfio: use new MEMORY_LISTENER_DEFAULT_OPS > xen_pt: use new MEMORY_LISTENER_DEFAULT_OPS > kvm: use new MEMORY_LISTENER_DEFAULT_OPS > xen: use new MEMORY_LISTENER_DEFAULT_OPS > memory: manage coalesced mmio via a MemoryListener > memory: move address_space_memory and address_space_io out of memory > core > memory: move tcg flush into a tcg memory listener > memory: use AddressSpace for MemoryListener filtering > s390: avoid reaching into memory core internals > memory: per-AddressSpace dispatch > dma: make dma access its own address space > pci: give each device its own address space > pci: honor PCI_COMMAND_MASTER > > cputlb.c | 6 +- > cputlb.h | 3 +- > dma-helpers.c | 25 ++- > dma.h | 17 +- > exec-memory.h | 7 +- > exec.c | 312 ++++++++++++++--------------------- > hw/Makefile.objs | 5 +- > hw/pci.c | 19 ++- > hw/pci.h | 2 + > hw/spapr_iommu.c | 3 +- > hw/vfio_pci.c | 33 +--- > hw/vhost.c | 5 +- > hw/xen_pt.c | 49 +++--- > hw/xen_pt.h | 1 + > kvm-all.c | 107 +++++------- > kvm-stub.c | 10 -- > kvm.h | 2 - > exec-obsolete.h => memory-internal.h | 30 +++- > memory.c | 158 +++++++++++------- > memory.h | 122 +++++++++++++- > target-s390x/misc_helper.c | 2 +- > xen-all.c | 45 +---- > 22 files changed, 487 insertions(+), 476 deletions(-) > rename exec-obsolete.h => memory-internal.h (87%) > -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain.