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
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html