From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Nuw7V-0003uf-0T for qemu-devel@nongnu.org; Thu, 25 Mar 2010 19:05:45 -0400 Received: from [140.186.70.92] (port=53841 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Nuw7S-0003uD-Bg for qemu-devel@nongnu.org; Thu, 25 Mar 2010 19:05:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Nuw7Q-0006mS-TI for qemu-devel@nongnu.org; Thu, 25 Mar 2010 19:05:42 -0400 Received: from mail-px0-f203.google.com ([209.85.216.203]:37442) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Nuw7Q-0006m8-NY for qemu-devel@nongnu.org; Thu, 25 Mar 2010 19:05:40 -0400 Received: by pxi41 with SMTP id 41so1046675pxi.23 for ; Thu, 25 Mar 2010 16:05:39 -0700 (PDT) MIME-Version: 1.0 Sender: camm@ualberta.ca In-Reply-To: <4BABD12B.3070909@redhat.com> References: <1269497310-21858-1-git-send-email-cam@cs.ualberta.ca> <4BAB2736.7020202@redhat.com> <8286e4ee1003250950l45cc2883yd4788d20f99ef86c@mail.gmail.com> <4BAB9718.3030808@redhat.com> <8286e4ee1003251035o75fed405j45b60d496afa66b5@mail.gmail.com> <4BABA1F4.3000801@redhat.com> <8286e4ee1003251117o74486dck813a47cee54b2d6d@mail.gmail.com> <4BABD12B.3070909@redhat.com> Date: Thu, 25 Mar 2010 17:05:38 -0600 Message-ID: <8286e4ee1003251605rd3b0694tb2e98bd34e9b0fea@mail.gmail.com> From: Cam Macdonell Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] Re: [PATCH v3 0/2] Inter-VM shared memory PCI device List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org On Thu, Mar 25, 2010 at 3:10 PM, Avi Kivity wrote: > On 03/25/2010 08:17 PM, Cam Macdonell wrote: >> >>>> I had a hunch it was probably considered. =A0That explains why irqfd >>>> doesn't have a datamatch field. =A0I 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 an= d >>> one >>> for the guest. =A0A 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 numb= er. Ah, yes. Who knew "two bit registers" is an ambiguous term. Do you strongly prefer the one doorbell design?