xen: mapcache performance improvements
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>
Thu, 19 May 2011 17:35:46 +0000 (18:35 +0100)
committerAlexander Graf <agraf@suse.de>
Sun, 19 Jun 2011 02:40:05 +0000 (04:40 +0200)
commitbf3d1ff7df9a7ca622042e5de041506c2b1300fc
treec044f52580916414afc691eff27de6e14f1a0b5e
parent607dcda6255f20b530234bdd9da6397b95d2014f
xen: mapcache performance improvements

Use qemu_invalidate_entry in cpu_physical_memory_unmap.

Do not lock mapcache entries in qemu_get_ram_ptr if the address falls in
the ramblock with offset == 0. We don't need to do that because the
callers of qemu_get_ram_ptr either try to map an entire block, other
from the main ramblock, or until the end of a page to implement a single
read or write in the main ramblock.
If we don't lock mapcache entries in qemu_get_ram_ptr we don't need to
call qemu_invalidate_entry in qemu_put_ram_ptr anymore because we can
leave with few long lived block mappings requested by devices.

Also move the call to qemu_ram_addr_from_mapcache at the beginning of
qemu_ram_addr_from_host.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
exec.c