xen: Introduce the Xen mapcache
commit432d268c0552fd30c8be564f7ea2504a2b546101
authorJun Nakajima <jun.nakajima@intel.com>
Tue, 31 Aug 2010 15:41:25 +0000 (31 16:41 +0100)
committerAlexander Graf <agraf@suse.de>
Sun, 8 May 2011 08:10:01 +0000 (8 10:10 +0200)
treed74d75e9b70fd2ced0daf705062260dab19b40c4
parent9c11a8ac886ccbb5f8e1b08e8ae12f045d783031
xen: Introduce the Xen mapcache

On IA32 host or IA32 PAE host, at present, generally, we can't create
an HVM guest with more than 2G memory, because generally it's almost
impossible for Qemu to find a large enough and consecutive virtual
address space to map an HVM guest's whole physical address space.
The attached patch fixes this issue using dynamic mapping based on
little blocks of memory.

Each call to qemu_get_ram_ptr makes a call to qemu_map_cache with the
lock option, so mapcache will not unmap these ram_ptr.

Blocks that do not belong to the RAM, but usually to a device ROM or to
a framebuffer, are handled in a separate function. So the whole RAMBlock
can be map.

Signed-off-by: Jun Nakajima <jun.nakajima@intel.com>
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
Makefile.target
configure
exec.c
hw/xen.h
hw/xen_common.h
trace-events
xen-all.c
xen-mapcache-stub.c [new file with mode: 0644]
xen-mapcache.c [new file with mode: 0644]
xen-mapcache.h [new file with mode: 0644]
xen-stub.c