diff options
author | Andres Lagar-Cavilla <andres@lagarcavilla.org> | 2012-02-10 16:07:07 +0000 |
---|---|---|
committer | Andres Lagar-Cavilla <andres@lagarcavilla.org> | 2012-02-10 16:07:07 +0000 |
commit | c13b827e66a93b121b48bd1fa6db1a11e77031c9 (patch) | |
tree | cee5e3f3edfb171d07544b8ea5a7a16f6604d7d4 /tools/libxc | |
parent | 59a36d66a5d50a66f8a629b334a0cbd7af360f80 (diff) | |
download | xen-c13b827e66a93b121b48bd1fa6db1a11e77031c9.tar.gz xen-c13b827e66a93b121b48bd1fa6db1a11e77031c9.tar.bz2 xen-c13b827e66a93b121b48bd1fa6db1a11e77031c9.zip |
x86/mm: New sharing audit memop
Remove costly mem_sharing audits from the inline path, and instead make them
callable as a memop.
Have the audit function return the number of errors detected.
Update memshrtool to be able to trigger audits.
Set sharing audits as enabled by default.
Signed-off-by: Andres Lagar-Cavilla <andres@lagarcavilla.org>
Signed-off-by: Adin Scannell <adin@scannell.ca>
Acked-by: Tim Deegan <tim@xen.org>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Tim Deegan <tim@xen.org>
Diffstat (limited to 'tools/libxc')
-rw-r--r-- | tools/libxc/xc_memshr.c | 11 | ||||
-rw-r--r-- | tools/libxc/xenctrl.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/tools/libxc/xc_memshr.c b/tools/libxc/xc_memshr.c index 5866960f38..992b9144e5 100644 --- a/tools/libxc/xc_memshr.c +++ b/tools/libxc/xc_memshr.c @@ -211,6 +211,17 @@ int xc_memshr_debug_gref(xc_interface *xch, return xc_memshr_memop(xch, domid, &mso); } +int xc_memshr_audit(xc_interface *xch) +{ + xen_mem_sharing_op_t mso; + + memset(&mso, 0, sizeof(mso)); + + mso.op = XENMEM_sharing_op_audit; + + return do_memory_op(xch, XENMEM_sharing_op, &mso, sizeof(mso)); +} + long xc_sharing_freed_pages(xc_interface *xch) { return do_memory_op(xch, XENMEM_get_sharing_freed_pages, NULL, 0); diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h index 371a97f5e8..73d24e53d0 100644 --- a/tools/libxc/xenctrl.h +++ b/tools/libxc/xenctrl.h @@ -1951,6 +1951,7 @@ int xc_memshr_debug_mfn(xc_interface *xch, int xc_memshr_debug_gref(xc_interface *xch, domid_t domid, grant_ref_t gref); +int xc_memshr_audit(xc_interface *xch); int xc_flask_load(xc_interface *xc_handle, char *buf, uint32_t size); int xc_flask_context_to_sid(xc_interface *xc_handle, char *buf, uint32_t size, uint32_t *sid); |