[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 4 of 5] Adds a separate domctl for performing sharing audits
xen/arch/x86/mm/mem_sharing.c | 17 ++++++++++++----- xen/include/public/domctl.h | 1 + 2 files changed, 13 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 536da18b7ab6 -r a79bb54cb4dc xen/arch/x86/mm/mem_sharing.c --- a/xen/arch/x86/mm/mem_sharing.c +++ b/xen/arch/x86/mm/mem_sharing.c @@ -820,7 +820,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? */ @@ -1117,15 +1116,23 @@ int mem_sharing_domctl(struct domain *d, } break; + case XEN_DOMCTL_MEM_EVENT_OP_SHARING_AUDIT: + { +#if MEM_SHARING_AUDIT + shr_lock(); + rc = mem_sharing_audit(); + shr_unlock(); +#else + rc = -ENOSYS; +#endif + break; + } + default: rc = -ENOSYS; break; } - shr_lock(); - mem_sharing_audit(); - shr_unlock(); - return rc; } diff -r 536da18b7ab6 -r a79bb54cb4dc 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 |