aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xc
diff options
context:
space:
mode:
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-03-31 21:42:18 +0000
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>2004-03-31 21:42:18 +0000
commitbc87aae0ec6da1a51e4c1a0c8e238a3f631cff3a (patch)
tree339d5ce5d02b38fdfc6dd122d17984faa40893fc /tools/xc
parent3072fef54df8b25abb624a52d0a13bdef9b74b97 (diff)
downloadxen-bc87aae0ec6da1a51e4c1a0c8e238a3f631cff3a.tar.gz
xen-bc87aae0ec6da1a51e4c1a0c8e238a3f631cff3a.tar.bz2
xen-bc87aae0ec6da1a51e4c1a0c8e238a3f631cff3a.zip
bitkeeper revision 1.825.8.1 (406b3b3aiVrvWmI8XjJ_64Sk92hivw)
Many files: Faster upcall masking from Xen to guest OS.
Diffstat (limited to 'tools/xc')
-rw-r--r--tools/xc/lib/xc_linux_build.c4
-rw-r--r--tools/xc/lib/xc_netbsd_build.c6
2 files changed, 7 insertions, 3 deletions
diff --git a/tools/xc/lib/xc_linux_build.c b/tools/xc/lib/xc_linux_build.c
index 92fff33a6a..3acfc2173d 100644
--- a/tools/xc/lib/xc_linux_build.c
+++ b/tools/xc/lib/xc_linux_build.c
@@ -284,7 +284,9 @@ static int setup_guestos(int xc_handle,
/* shared_info page starts its life empty. */
shared_info = map_pfn_writeable(pm_handle, shared_info_frame);
memset(shared_info, 0, PAGE_SIZE);
- shared_info->evtchn_upcall_mask = ~0UL; /* mask all upcalls */
+ /* Mask all upcalls... */
+ for ( i = 0; i < MAX_VIRT_CPUS; i++ )
+ shared_info->vcpu_data[i].evtchn_upcall_mask = 1;
unmap_pfn(pm_handle, shared_info);
/* Send the page update requests down to the hypervisor. */
diff --git a/tools/xc/lib/xc_netbsd_build.c b/tools/xc/lib/xc_netbsd_build.c
index ae7ebecc6e..a53018297c 100644
--- a/tools/xc/lib/xc_netbsd_build.c
+++ b/tools/xc/lib/xc_netbsd_build.c
@@ -75,7 +75,7 @@ static int setup_guestos(int xc_handle,
shared_info_t *shared_info;
unsigned long ksize;
mmu_t *mmu = NULL;
- int pm_handle;
+ int pm_handle, i;
memset(builddomain, 0, sizeof(*builddomain));
@@ -183,7 +183,9 @@ static int setup_guestos(int xc_handle,
/* shared_info page starts its life empty. */
shared_info = map_pfn_writeable(pm_handle, shared_info_frame);
memset(shared_info, 0, PAGE_SIZE);
- shared_info->evtchn_upcall_mask = ~0UL; /* mask all upcalls */
+ /* Mask all upcalls... */
+ for ( i = 0; i < MAX_VIRT_CPUS; i++ )
+ shared_info->vcpu_data[i].evtchn_upcall_mask = 1;
unmap_pfn(pm_handle, shared_info);
/* Send the page update requests down to the hypervisor. */