diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-01-22 10:59:03 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-01-22 10:59:03 +0000 |
commit | d6aaa9ee0f8ba5d2d8ff1187b05ed9becee0b40c (patch) | |
tree | 3b69d194167117b66f08f86321756f58703a44e7 /tools/libxc/xc_physdev.c | |
parent | 379e63ed3da8f6d874d9bc5d6fa05a85afb60238 (diff) | |
download | xen-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.c | 6 |
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; } |