aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxc/xc_physdev.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-01-22 10:59:03 +0000
committerKeir Fraser <keir.fraser@citrix.com>2010-01-22 10:59:03 +0000
commitd6aaa9ee0f8ba5d2d8ff1187b05ed9becee0b40c (patch)
tree3b69d194167117b66f08f86321756f58703a44e7 /tools/libxc/xc_physdev.c
parent379e63ed3da8f6d874d9bc5d6fa05a85afb60238 (diff)
downloadxen-d6aaa9ee0f8ba5d2d8ff1187b05ed9becee0b40c.tar.gz
xen-d6aaa9ee0f8ba5d2d8ff1187b05ed9becee0b40c.tar.bz2
xen-d6aaa9ee0f8ba5d2d8ff1187b05ed9becee0b40c.zip
libxc: New hcall_buf_{prep,release} pre-mlock interface
Allow certain performance-critical hypercall wrappers to register data buffers via a new interface which allows them to be 'bounced' into a pre-mlock'ed page-sized per-thread data area. This saves the cost of mlock/munlock on every such hypercall, which can be very expensive on modern kernels. Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'tools/libxc/xc_physdev.c')
-rw-r--r--tools/libxc/xc_physdev.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/libxc/xc_physdev.c b/tools/libxc/xc_physdev.c
index ec0ebbeb76..00ac829afa 100644
--- a/tools/libxc/xc_physdev.c
+++ b/tools/libxc/xc_physdev.c
@@ -36,7 +36,7 @@ int xc_physdev_map_pirq(int xc_handle,
map.index = index;
map.pirq = *pirq;
- rc = do_physdev_op(xc_handle, PHYSDEVOP_map_pirq, &map);
+ rc = do_physdev_op(xc_handle, PHYSDEVOP_map_pirq, &map, sizeof(map));
if ( !rc )
*pirq = map.pirq;
@@ -68,7 +68,7 @@ int xc_physdev_map_pirq_msi(int xc_handle,
map.entry_nr = entry_nr;
map.table_base = table_base;
- rc = do_physdev_op(xc_handle, PHYSDEVOP_map_pirq, &map);
+ rc = do_physdev_op(xc_handle, PHYSDEVOP_map_pirq, &map, sizeof(map));
if ( !rc )
*pirq = map.pirq;
@@ -86,7 +86,7 @@ int xc_physdev_unmap_pirq(int xc_handle,
unmap.domid = domid;
unmap.pirq = pirq;
- rc = do_physdev_op(xc_handle, PHYSDEVOP_unmap_pirq, &unmap);
+ rc = do_physdev_op(xc_handle, PHYSDEVOP_unmap_pirq, &unmap, sizeof(unmap));
return rc;
}