diff options
author | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-03-31 21:42:18 +0000 |
---|---|---|
committer | kaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk> | 2004-03-31 21:42:18 +0000 |
commit | bc87aae0ec6da1a51e4c1a0c8e238a3f631cff3a (patch) | |
tree | 339d5ce5d02b38fdfc6dd122d17984faa40893fc /tools/xc | |
parent | 3072fef54df8b25abb624a52d0a13bdef9b74b97 (diff) | |
download | xen-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.c | 4 | ||||
-rw-r--r-- | tools/xc/lib/xc_netbsd_build.c | 6 |
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. */ |