Avi Kivity <a...@redhat.com> writes: > 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. > > Changes from v2: > - fix series numbering > - drop MEMORY_LISTENER_DEFAULT_OPS, use traditional if (x->op) { x->op(); } > instead > > Changes from v1: > - fix typo on commit log for patch 7 > - add address space destruction (resolved FIXME) > > Two FIXMEs are introduced for the PCI bus master address space, however > they're only > exposed by this patch set; the incorrect behaviour is preexisting. They will > be resolved > in a future patchset. > > Available as a git tree in: > > git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git memory/dma
This conflicts with a recent pull from Stefano in xen-all.c. The difference doesn't look that awful but since I don't have a xen test setup, I'm not confident in resolving it myself. Can you rebase and fixup? Regards, Anthony Liguori > > Avi Kivity (23): > 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: drop no-op MemoryListener callbacks > vfio: drop no-op MemoryListener callbacks > xen_pt: drop no-op MemoryListener callbacks > kvm: drop no-op MemoryListener callbacks > xen: drop no-op MemoryListener callbacks > 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 > memory: add address_space_destroy() > 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 | 318 > +++++++++++++++-------------------- > hw/Makefile.objs | 5 +- > hw/pci.c | 25 ++- > hw/pci.h | 2 + > hw/spapr_iommu.c | 3 +- > hw/vfio_pci.c | 32 +--- > hw/vhost.c | 5 +- > hw/xen_pt.c | 47 +++--- > hw/xen_pt.h | 1 + > kvm-all.c | 105 +++++------- > kvm-stub.c | 10 -- > kvm.h | 2 - > exec-obsolete.h => memory-internal.h | 31 +++- > memory.c | 173 +++++++++++-------- > memory.h | 107 +++++++++++- > target-s390x/misc_helper.c | 3 +- > xen-all.c | 44 +---- > 22 files changed, 488 insertions(+), 483 deletions(-) > rename exec-obsolete.h => memory-internal.h (86%) > > -- > 1.7.12