aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-04-05 14:29:18 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-04-05 14:29:18 +0100
commitaeb2e1298b7f7e3bddc3f34a53928e3a445019a1 (patch)
tree92d5e995a6737ba5802cdde1647c9818e7682b8e /tools
parentd222ec47c364c03cee474967d9977fea5571d2a8 (diff)
downloadxen-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.c8
-rw-r--r--tools/ioemu/target-i386-dm/helper2.c7
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);
}