|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] FIFO-based event channel ABI design (draft B)
On 15/02/13 15:05, Jan Beulich wrote:
>>>> On 15.02.13 at 15:32, David Vrabel <david.vrabel@xxxxxxxxxx> wrote:
>> ### Control Block
>>
>> 
>>
>> The READY field contains a bit for each priority's queue. A set bit
>> indicates that there are events pending on that queue. A queue's
>> ready bit is set by Xen when an event is placed on an empty queue and
>> cleared by the guest when it empties the queue.
>>
>> There are N HEAD and TAIL indexes, one for each priority.
>>
>> The HEAD index is the first event in the queue or zero if the queue is
>> empty. HEAD is set by the guest as it consumes events and only set by
>> Xen when adding an event to an empty queue.
>>
>> The TAIL index is the last event in the queue. It is undefined if the
>> queue is empty. TAIL is only set by Xen.
>
> One thing I continue to wonder is why tail it part of the control
> block at all - from all I can tell, it's not consumed by the guest (end
> of list being indicated by a zero LINK field), and hence is an
> implementation detail of the hypervisor. And given that the
> hypervisor reads that field, not exposing the field also avoids the
> need to validate is each time it gets read from the control block.
Some of my initial back-of-envelope designs used it and I left it in
"just in case".
But the validation point is good, so I'll remove the TAIL field.
> Additionally, I think the number of significant bits of the LINK field
> should actually be obtained from the hypervisor, rather than being
> baked at 17 (for the time being). This again is an implementation
> detail (and the value could easily be command line controllable).
I'd considered something like this but decided to defer this to a future
date when it needed to be extended.
How about adding an EVTCHNOP_get_limit which gets the maximum permitted
port? The guest can then round up the result of this to get the maximum
number of LINK bits.
David
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |