[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/20] Reduce storage overhead of memory core
From: |
Avi Kivity |
Subject: |
[Qemu-devel] [PATCH 00/20] Reduce storage overhead of memory core |
Date: |
Tue, 14 Feb 2012 11:27:30 +0200 |
Currently the memory core requires 16 bytes per guest page (0.4% overhead).
This patchset, building on the patches posted last week, reduces the overhead
to practically nothing. Assuming a 4k page size, contiguous aligned 4k, 4M,
and 4G regions each occupy just 2 bytes. Since most guest memory is physically
contiguous, we can describe a guest with just a few dozen kilobytes.
Please review carefully, especially patch 13, and test carefully, especially
things like rom/device.
Also available in
git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git memory/core
Avi Kivity (20):
memory: allow MemoryListeners to observe a specific address space
xen: ignore I/O memory regions
memory: split memory listener for the two address spaces
memory: support stateless memory listeners
memory: change memory registration to rebuild the memory map on each
change
memory: remove first level of l1_phys_map
memory: unify phys_map last level with intermediate levels
memory: store MemoryRegionSection pointers in phys_map
memory: compress phys_map node pointers to 16 bits
memory: fix RAM subpages in newly initialized pages
memory: unify the two branches of cpu_register_physical_memory_log()
memory: move tlb flush to MemoryListener commit callback
memory: make phys_page_find() return a MemoryRegionSection
memory: give phys_page_find() its own tree search loop
memory: simplify multipage/subpage registration
memory: replace phys_page_find_alloc() with phys_page_set()
memory: switch phys_page_set() to a recursive implementation
memory: change phys_page_set() to set multiple pages
memory: unify PhysPageEntry::node and ::leaf
memory: allow phys_map tree paths to terminate early
exec.c | 828 +++++++++++++++++++++++++++++++++++++----------------------
hw/vhost.c | 18 ++-
kvm-all.c | 18 ++-
memory.c | 50 ++++-
memory.h | 7 +-
xen-all.c | 18 ++-
6 files changed, 620 insertions(+), 319 deletions(-)
--
1.7.9
- [Qemu-devel] [PATCH 00/20] Reduce storage overhead of memory core,
Avi Kivity <=
- [Qemu-devel] [PATCH 04/20] memory: support stateless memory listeners, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 06/20] memory: remove first level of l1_phys_map, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 01/20] memory: allow MemoryListeners to observe a specific address space, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 11/20] memory: unify the two branches of cpu_register_physical_memory_log(), Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 10/20] memory: fix RAM subpages in newly initialized pages, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 17/20] memory: switch phys_page_set() to a recursive implementation, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 12/20] memory: move tlb flush to MemoryListener commit callback, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 07/20] memory: unify phys_map last level with intermediate levels, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 14/20] memory: give phys_page_find() its own tree search loop, Avi Kivity, 2012/02/14
- [Qemu-devel] [PATCH 03/20] memory: split memory listener for the two address spaces, Avi Kivity, 2012/02/14