[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Questions regarding ivshmem spec
From: |
Sasha Levin |
Subject: |
Re: [Qemu-devel] Questions regarding ivshmem spec |
Date: |
Thu, 25 Aug 2011 17:42:03 +0300 |
On Thu, 2011-08-25 at 17:40 +0300, Avi Kivity wrote:
> 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).
>
>
Ah, right.
Thanks!
--
Sasha.