|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [XEN PATCH v2 2/5] xen: export get_free_port
On Wed, 26 Jan 2022, Julien Grall wrote:
> On 26/01/2022 07:30, Jan Beulich wrote:
> > On 26.01.2022 02:03, Stefano Stabellini wrote:
> > > Are you guys OK with something like this?
> >
> > With proper proof that this isn't going to regress anything else, maybe.
>
> That's why I sugested to also gate with system_state < SYS_STATE_boot so we
> reduce the potential regression (the use of hypercall should be limited at
> boot).
>
> FWIW, there was a thread [1] to discuss the same issue as Stefano is facing
> (but in the context of Live-Update).
>
> > But ...
> >
> > > --- a/xen/include/xsm/dummy.h
> > > +++ b/xen/include/xsm/dummy.h
> > > @@ -92,7 +92,9 @@ static always_inline int xsm_default_action(
> > > return 0;
> > > /* fall through */
> > > case XSM_PRIV:
> > > - if ( is_control_domain(src) )
> > > + if ( is_control_domain(src) ||
> > > + src->domain_id == DOMID_IDLE ||
> > > + src->domain_id == DOMID_XEN )
> > > return 0;
> >
> > ... my first question would be under what circumstances you might observe
> > DOMID_XEN here and hence why this check is there.
For simplicity I'll answer all the points here.
I added both DOMID_IDLE and DOMID_XEN because I thought it "made sense",
but there is no need for DOMID_XEN. We only need DOMID_IDLE. Also adding
a system_state <= SYS_STATE_boot is fine (but it needs to be <= instead
of <). The patch appended below works without issues.
Alternatively, I am also quite happy with Jan's suggestion of passing an
extra parameter to evtchn_alloc_unbound, it could be:
int evtchn_alloc_unbound(evtchn_alloc_unbound_t *alloc, bool disable_xsm);
So that XSM is enabled by default.
Adding the bool parameter to evtchn_alloc_unbound has the advantage of
having only a very minor impact. But either option is totally fine by
me, just let me know your preference.
diff --git a/xen/include/xsm/dummy.h b/xen/include/xsm/dummy.h
index b024119896..01996bd9d8 100644
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -94,6 +94,8 @@ static always_inline int xsm_default_action(
case XSM_PRIV:
if ( is_control_domain(src) )
return 0;
+ if ( system_state <= SYS_STATE_boot && src->domain_id == DOMID_IDLE )
+ return 0;
return -EPERM;
default:
LINKER_BUG_ON(1);
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |