From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: Re: [PATCH] Inter-VM shared memory PCI device Date: Thu, 11 Mar 2010 15:32:52 +0100 Message-ID: <201003111532.53022.arnd@arndb.de> References: <1267833161-25267-1-git-send-email-cam@cs.ualberta.ca> <201003111357.53025.arnd@arndb.de> <4B98EB2D.4010606@redhat.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Cc: Cam Macdonell , qemu-devel@nongnu.org, kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from moutng.kundenserver.de ([212.227.126.186]:64886 "EHLO moutng.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755734Ab0CKOc6 (ORCPT ); Thu, 11 Mar 2010 09:32:58 -0500 In-Reply-To: <4B98EB2D.4010606@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Thursday 11 March 2010, Avi Kivity wrote: > >> That would be much slower. The current scheme allows for an > >> ioeventfd/irqfd short circuit which allows one guest to interrupt > >> another without involving their qemus at all. > >> > > Yes, the serial line approach would be much slower, but my point > > was that we can do signaling over "something else", which could > > well be something building on irqfd. > > Well, we could, but it seems to make things more complicated? A card > with shared memory, and another card with an interrupt interconnect? Yes, I agree that it's more complicated if you have a specific application in mind that needs one of each, and most use cases that want shared memory also need an interrupt mechanism, but it's not always the case: - You could use ext2 with -o xip on a private mapping of a shared host file in order to share the page cache. This does not need any interrupts. - If you have more than two parties sharing the segment, there are different ways to communicate, e.g. always send an interrupt to all others, or have dedicated point-to-point connections. There is also some complexity in trying to cover all possible cases in one driver. I have to say that I also really like the idea of futex over shared memory, which could potentially make this all a lot simpler. I don't know how this would best be implemented on the host though. Arnd