On 08/25/2011 05:39 PM, Sasha Levin wrote:
On Thu, 2011-08-25 at 17:00 +0300, Avi Kivity wrote:
> On 08/25/2011 04:29 PM, Sasha Levin wrote:
> > 2. The spec describes DOORBELL as an array of DWORDs, when one guest
> > wants to poke a different guest it would write something into the offset
> > of the other guest in the DOORBELL array.
> > Looking at the implementation in QEMU, DOORBELL is one DWORD, when
> > writing to it the upper WORD is the guest id and the lower WORD is the
> > value.
> > What am I missing here?
> >
>
> The spec in qemu.git is accurate. The intent is to use an ioeventfd
> bound into an irqfd so a write into the doorbell injects an interrupt
> directly into the other guest, without going through qemu^Wkvm tool.
>
But the doorbell is a single DWORD, so if a guest writes to it we'd
still need to figure out which guest/vector he wants to poke from
userspace, no?
If it was an array of doorbells then yes, we could assign an ioeventfd
to each offset - but now I don't quite see how we can avoid passing
through the userspace.
Use the datamatch facility.
We didn't want an array of registers to avoid scaling issues (PIO space
is quite small).
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html