[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |