|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 8 of 9] x86/mm: New domctl: Perform sharing audit
xen/arch/x86/mm/mem_sharing.c | 15 ++++++++++-----
xen/include/public/domctl.h | 1 +
2 files changed, 11 insertions(+), 5 deletions(-)
Sharing audits are heavyweight, so instead of performing them inline,
we make them callable via a domctl.
Signed-off-by: Adin Scannell <adin@xxxxxxxxxxx>
diff -r 82d9d136bad6 -r 5b9b36648e43 xen/arch/x86/mm/mem_sharing.c
--- a/xen/arch/x86/mm/mem_sharing.c
+++ b/xen/arch/x86/mm/mem_sharing.c
@@ -936,7 +936,6 @@ int mem_sharing_unshare_page(struct doma
* between shr_lock and p2m fine-grained locks in mm-lock.
* Callers may walk in here already holding the lock for this gfn */
shr_lock();
- mem_sharing_audit();
mfn = get_gfn(d, gfn, &p2mt);
/* Has someone already unshared it? */
@@ -1218,15 +1217,21 @@ int mem_sharing_domctl(struct domain *d,
}
break;
+ case XEN_DOMCTL_MEM_EVENT_OP_SHARING_AUDIT:
+ {
+#if MEM_SHARING_AUDIT
+ rc = mem_sharing_audit();
+#else
+ rc = -ENOSYS;
+#endif
+ break;
+ }
+
default:
rc = -ENOSYS;
break;
}
- shr_lock();
- mem_sharing_audit();
- shr_unlock();
-
return rc;
}
diff -r 82d9d136bad6 -r 5b9b36648e43 xen/include/public/domctl.h
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -772,6 +772,7 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_mem_e
#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_DEBUG_MFN 6
#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_DEBUG_GREF 7
#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_ADD_PHYSMAP 8
+#define XEN_DOMCTL_MEM_EVENT_OP_SHARING_AUDIT 9
#define XEN_DOMCTL_MEM_SHARING_S_HANDLE_INVALID (-10)
#define XEN_DOMCTL_MEM_SHARING_C_HANDLE_INVALID (-9)
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |