From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56074) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwYLn-0005Ur-Pf for qemu-devel@nongnu.org; Tue, 09 Jul 2013 09:53:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UwYLk-0000dw-0s for qemu-devel@nongnu.org; Tue, 09 Jul 2013 09:53:03 -0400 Received: from e06smtp13.uk.ibm.com ([195.75.94.109]:50855) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UwYLj-0000d6-Jh for qemu-devel@nongnu.org; Tue, 09 Jul 2013 09:52:59 -0400 Received: from /spool/local by e06smtp13.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 9 Jul 2013 14:48:32 +0100 Received: from b06cxnps3075.portsmouth.uk.ibm.com (d06relay10.portsmouth.uk.ibm.com [9.149.109.195]) by d06dlp03.portsmouth.uk.ibm.com (Postfix) with ESMTP id 9FAC51B0805F for ; Tue, 9 Jul 2013 14:52:52 +0100 (BST) Received: from d06av09.portsmouth.uk.ibm.com (d06av09.portsmouth.uk.ibm.com [9.149.37.250]) by b06cxnps3075.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r69DqfZk52297754 for ; Tue, 9 Jul 2013 13:52:41 GMT Received: from d06av09.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av09.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id r69DqpiY020389 for ; Tue, 9 Jul 2013 07:52:51 -0600 Date: Tue, 9 Jul 2013 15:52:49 +0200 From: Cornelia Huck Message-ID: <20130709155249.0b5422ec@gondolin> In-Reply-To: <51DC0FB2.50308@de.ibm.com> References: <1373369645-3184-1-git-send-email-cornelia.huck@de.ibm.com> <1373369645-3184-2-git-send-email-cornelia.huck@de.ibm.com> <51DC0FB2.50308@de.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC PATCH v2] s390/virtio-ccw: Adapter interrupt support. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christian Borntraeger Cc: linux-s390 , Alexander Graf , qemu-devel , KVM , virtualization@lists.linux-foundation.org On Tue, 09 Jul 2013 15:27:14 +0200 Christian Borntraeger wrote: > On 09/07/13 13:34, Cornelia Huck wrote: > > Handle the new CCW_CMD_SET_IND_ADAPTER command enabling adapter interrupts > > on guest request. When active, host->guest notifications will be handled > > via global_indicator -> queue indicators instead of queue indicators + > > subchannel I/O interrupt. Indicators for virtqueues may be present at an > > offset. > > > > You might want to add why we want adapter interrupts: > - no test subchannel -> less qemu mutex contention > - no test subchannel -> we can implement something like irqfd without moving > most of ccw device mgmt into the kernel > - interrupt coalescing > - the guest common I/O layer already supports adapter interrupts > for all newer hardware How about the following: With traditional I/O interrupts, status needs to be collected from the subchannel via TEST SUBCHANNEL as well. With adapter interrupts, we - avoid the extra exit due to TEST SUBCHANNEL - can deliver multiple queue interrupts via the same I/O interrupt - make it possible to implement irqfds without having to track subchannel status inside kvm > > > the interesting part of this patch is the guest<->host interface. As far as I > can see, we are able to register > - an isc per device > - an arbitrary summary indicator byte per device > - an arbitrary bit position in guest memory where the queue indicator bits of this > device start > > This allows for packing the indicators for all virtqueues of all devices or > spreading them in memory. The layout and amount of coalescing of bits is then > an optimization that can be changed all the time without the need to change > the interface. > > > Signed-off-by: Cornelia Huck > Acked-by: Christian Borntraeger Thx!