On Thu, Mar 25, 2010 at 3:10 PM, Avi Kivity <a...@redhat.com> wrote:
> On 03/25/2010 08:17 PM, Cam Macdonell wrote:
>>
>>>> I had a hunch it was probably considered.  That explains why irqfd
>>>> doesn't have a datamatch field.  I guess supporting multiple MSI
>>>> vectors with one doorbell per guest isn't possible if one 1 bit of
>>>> information can be communicated.
>>>>
>>>>
>>>
>>> Actually you can have one doorbell supporting multiple vectors and
>>> guests,
>>> simply divide the data value into two bit fields, one for the vector and
>>> one
>>> for the guest.  A single write gets both values into the host, which can
>>> then use datamatch to trigger the correct eventfd (which is wired to an
>>> irqfd in another guest).
>>>
>>
>> At 4-bits per guest, a single write is then limited to 8 guests (with
>> 32-bit registers), we could got to 64-bit.
>>
>
> I meant a unicast doorbell: 16 bits for guest ID, 16 bits for vector number.

Ah, yes.  Who knew "two bit registers" is an ambiguous term.  Do you
strongly prefer the one doorbell design?


Reply via email to