[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Scalable Event Channel ABI design (draft A)



On Mon, 2013-02-04 at 17:52 +0000, David Vrabel wrote:
> 
> ### `EVTCHNOP_set_priority`
> 
> This call sets the priority for an event channel.  The event must be
> unbound.

I suppose this restriction is because it is hard to change the priority
of a pending interrupt from either Xen or the guest in a lock-free
manner?

The problem is that while on one end you call EVTCHNOP_alloc_unbound and
can then change the priority on the other you call
EVTCHNOP_bind_interdomain passing (remote-domid,remote-evtcht) and
receive a local-evtchn which is already bound, which means you never get
the opportunity to set the priority. Likewise when binding virqs and
such you never get to see the unbound evtchn.

I don't think we want to go around adding priority to all of those
existing binding hypercalls.

Perhaps it would be acceptable to say that after having called this
hypercall the domain may still observe at most one upcall of the evtchn
with the old priority, which corresponds with the interrupt being raised
right before the priority change takes effect, but being delivered
after.

> A guest may call this prior to binding an event channel. The meaning
> and the use of the priority are up to the guest.  Valid priorities are
> 0 - 15 and the default is 7.
> 
>     struct evtchnop_set_priority {
>         uint32_t port;
>         uint32_t priority;
>     };
> 
> Field       Purpose
> -----       -------
> `port`      [in] The event channel.
> `priority`  [in] The priority for the event channel.
> 
> Error code  Reason
> ----------  ------
> EINVAL      `port` is invalid.
> EINVAL      `port` is currently bound.
> EINVAL      `priority` is outside the range 0 - 15. 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.