From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=46382 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OK3qN-00040E-0E for qemu-devel@nongnu.org; Thu, 03 Jun 2010 02:23:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OK3qL-00042t-QU for qemu-devel@nongnu.org; Thu, 03 Jun 2010 02:23:54 -0400 Received: from fmmailgate02.web.de ([217.72.192.227]:39190) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OK3qL-00042h-G0 for qemu-devel@nongnu.org; Thu, 03 Jun 2010 02:23:53 -0400 Message-ID: <4C074A72.3070507@web.de> Date: Thu, 03 Jun 2010 08:23:46 +0200 From: Jan Kiszka MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [RFT][PATCH 07/15] qemu_irq: Add IRQ handlers with delivery feedback References: <20100530060255.GJ5474@redhat.com> <20100530123316.GB24302@redhat.com> <20100530134935.GC24302@redhat.com> <20100530200722.GA6243@redhat.com> <20100531051905.GD24302@redhat.com> <20100601183058.GB6191@redhat.com> In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig13E80D19185EA297366D234A" Sender: jan.kiszka@web.de List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: qemu-devel@nongnu.org, Gleb Natapov , Juan Quintela This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig13E80D19185EA297366D234A Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Blue Swirl wrote: > But how about if we introduced instead a message based IRQ? Then the > message could specify the originator device, maybe ACK/coalesce/NACK > callbacks and a bigger payload than just 1 bit of level. I think that > could achieve the same coalescing effect as what the bidirectional > IRQ. The payload could be useful for other purposes, for example > Sparc64 IRQ messages contain three 64 bit words. If there are more users than just IRQ de-coalescing, this indeed sounds superior. We could pass objects like this one around: struct qemu_irq_msg { void (*delivery_cb)(int result); void *payload; }; They would be valid within the scope of the IRQ handlers. Whoever terminates or actually delivers the IRQ would invoke the callback. And platforms like sparc64 could evaluate the additional payload pointer in their irqchips or wherever they need it. IRQ routers on platforms that make use of these messages would have to replicate them when forwarding an event. OK? Jan --------------enig13E80D19185EA297366D234A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkwHSncACgkQitSsb3rl5xTq+ACeNpIbV8EAQCFAQa/iezxVuXmX 7pQAnjLsFGdp1OOzgityfhnwIfPy0nKo =a+Dq -----END PGP SIGNATURE----- --------------enig13E80D19185EA297366D234A--