All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/20] Reduce storage overhead of memory core
@ 2012-02-14  9:27 Avi Kivity
  2012-02-14  9:27 ` [Qemu-devel] [PATCH 01/20] memory: allow MemoryListeners to observe a specific address space Avi Kivity
                   ` (19 more replies)
  0 siblings, 20 replies; 27+ messages in thread
From: Avi Kivity @ 2012-02-14  9:27 UTC (permalink / raw)
  To: qemu-devel

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

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2012-03-08 11:25 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-14  9:27 [Qemu-devel] [PATCH 00/20] Reduce storage overhead of memory core Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 01/20] memory: allow MemoryListeners to observe a specific address space Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 02/20] xen: ignore I/O memory regions Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 03/20] memory: split memory listener for the two address spaces Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 04/20] memory: support stateless memory listeners Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 05/20] memory: change memory registration to rebuild the memory map on each change Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 06/20] memory: remove first level of l1_phys_map Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 07/20] memory: unify phys_map last level with intermediate levels Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 08/20] memory: store MemoryRegionSection pointers in phys_map Avi Kivity
2012-03-07 17:49   ` Peter Maydell
2012-03-07 19:32     ` Peter Maydell
2012-03-08  9:50       ` Avi Kivity
2012-03-08 10:09         ` Peter Maydell
2012-03-08 11:11           ` Avi Kivity
2012-03-08 11:25             ` Peter Maydell
2012-02-14  9:27 ` [Qemu-devel] [PATCH 09/20] memory: compress phys_map node pointers to 16 bits Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 10/20] memory: fix RAM subpages in newly initialized pages Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 11/20] memory: unify the two branches of cpu_register_physical_memory_log() Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 12/20] memory: move tlb flush to MemoryListener commit callback Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 13/20] memory: make phys_page_find() return a MemoryRegionSection Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 14/20] memory: give phys_page_find() its own tree search loop Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 15/20] memory: simplify multipage/subpage registration Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 16/20] memory: replace phys_page_find_alloc() with phys_page_set() Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 17/20] memory: switch phys_page_set() to a recursive implementation Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 18/20] memory: change phys_page_set() to set multiple pages Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 19/20] memory: unify PhysPageEntry::node and ::leaf Avi Kivity
2012-02-14  9:27 ` [Qemu-devel] [PATCH 20/20] memory: allow phys_map tree paths to terminate early Avi Kivity

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.