[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 2/7] xen: xsm: flask: introduce XENMAPSPACE_gmfn_share for memory sharing
>>> On 30.01.18 at 18:50, <blackskygg@xxxxxxxxx> wrote: > --- a/xen/arch/x86/mm.c > +++ b/xen/arch/x86/mm.c > @@ -4126,6 +4126,10 @@ int xenmem_add_to_physmap_one( > } > case XENMAPSPACE_gmfn_foreign: > return p2m_add_foreign(d, idx, gfn_x(gpfn), extra.foreign_domid); > + case XENMAPSPACE_gmfn_share: > + gdprintk(XENLOG_WARNING, > + "XENMAPSPACE_gmfn_share is currently not supported on > x86\n"); > + break; Please don't - a hypervisor log message isn't really useful here. It should be the tool stack to disallow respective options on x86 until that's implemented. > --- a/xen/include/public/memory.h > +++ b/xen/include/public/memory.h > @@ -227,6 +227,10 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t); > Stage-2 using the Normal Memory > Inner/Outer Write-Back Cacheable > memory attribute. */ > +#define XENMAPSPACE_gmfn_share 6 /* Same as *_gmfn_foreign, but this is > + for a privileged dom to share pages > + between two doms. */ > + The comment doesn't make clear why XENMAPSPACE_gmfn_foreign then can't be used. In particular it is left open how _both_ domains would be specified. Also XENMAPSPACE_gmfn_foreign is restricted to XENMEM_add_to_physmap_batch (a comment says so) - how about this new one? According to the actual code changes you do, there's no meaningful difference, in which case the restriction should be named here as well. > --- a/xen/include/xsm/dummy.h > +++ b/xen/include/xsm/dummy.h > @@ -521,6 +521,12 @@ static XSM_INLINE int > xsm_map_gmfn_foreign(XSM_DEFAULT_ARG struct domain *d, str > return xsm_default_action(action, d, t); > } > > +static XSM_INLINE int xsm_map_gmfn_share(XSM_DEFAULT_ARG struct domain *d, > struct domain *t) Line length. > +{ > + XSM_ASSERT_ACTION(XSM_TARGET); > + return xsm_default_action(action, current->domain, t); How does this represent a proper default equivalent of ... --- a/xen/xsm/flask/hooks.c +++ b/xen/xsm/flask/hooks.c @@ -1196,6 +1196,12 @@ static int flask_map_gmfn_foreign(struct domain *d, struct domain *t) return domain_has_perm(d, t, SECCLASS_MMU, MMU__MAP_READ | MMU__MAP_WRITE); } +static int flask_map_gmfn_share(struct domain *d, struct domain *t) +{ + return current_has_perm(t, SECCLASS_MMU, MMU__MAP_READ | MMU__MAP_WRITE) ?: + domain_has_perm(d, t, SECCLASS_MMU, MMU__SHARE_MEM); ... this? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |