diff options
author | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-04-05 14:29:18 +0100 |
---|---|---|
committer | kfraser@localhost.localdomain <kfraser@localhost.localdomain> | 2007-04-05 14:29:18 +0100 |
commit | aeb2e1298b7f7e3bddc3f34a53928e3a445019a1 (patch) | |
tree | 92d5e995a6737ba5802cdde1647c9818e7682b8e /tools | |
parent | d222ec47c364c03cee474967d9977fea5571d2a8 (diff) | |
download | xen-aeb2e1298b7f7e3bddc3f34a53928e3a445019a1.tar.gz xen-aeb2e1298b7f7e3bddc3f34a53928e3a445019a1.tar.bz2 xen-aeb2e1298b7f7e3bddc3f34a53928e3a445019a1.zip |
PV-on-HVM: Add new ioreq 'invalidate' for zapping ioemu-dm mapccahe
after balloon operations in an HVM guest.
This removes the I/O port hack from the guest OS, and from ioemu.
Also we flush on reservation *increases* as well as decreases. This is
necessary until qemu-dm can demand-fault page mappings into existing
valid buckets.
Signed-off-by: Steven Hand <steven@xensource.com>
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/ioemu/hw/xen_platform.c | 8 | ||||
-rw-r--r-- | tools/ioemu/target-i386-dm/helper2.c | 7 |
2 files changed, 6 insertions, 9 deletions
diff --git a/tools/ioemu/hw/xen_platform.c b/tools/ioemu/hw/xen_platform.c index cdff19c9d8..47dd03b43d 100644 --- a/tools/ioemu/hw/xen_platform.c +++ b/tools/ioemu/hw/xen_platform.c @@ -29,16 +29,10 @@ extern FILE *logfile; -static void platform_ioport_write(void *opaque, uint32_t addr, uint32_t val) -{ - if (val == 0) - qemu_invalidate_map_cache(); -} - static void platform_ioport_map(PCIDevice *pci_dev, int region_num, uint32_t addr, uint32_t size, int type) { - register_ioport_write(addr, 1, 1, platform_ioport_write, NULL); + /* nothing yet */ } static uint32_t platform_mmio_read(void *opaque, target_phys_addr_t addr) diff --git a/tools/ioemu/target-i386-dm/helper2.c b/tools/ioemu/target-i386-dm/helper2.c index 7e6b56e961..7beda011c6 100644 --- a/tools/ioemu/target-i386-dm/helper2.c +++ b/tools/ioemu/target-i386-dm/helper2.c @@ -506,8 +506,11 @@ void __handle_ioreq(CPUState *env, ioreq_t *req) cpu_ioreq_xchg(env, req); break; case IOREQ_TYPE_TIMEOFFSET: - cpu_ioreq_timeoffset(env, req); - break; + cpu_ioreq_timeoffset(env, req); + break; + case IOREQ_TYPE_INVALIDATE: + qemu_invalidate_map_cache(); + break; default: hw_error("Invalid ioreq type 0x%x\n", req->type); } |