From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42971) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aqBeb-00027G-RZ for qemu-devel@nongnu.org; Tue, 12 Apr 2016 23:39:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aqBeY-0000SC-Ld for qemu-devel@nongnu.org; Tue, 12 Apr 2016 23:39:45 -0400 Received: from mout.web.de ([212.227.15.4]:49230) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aqBeY-0000S0-C6 for qemu-devel@nongnu.org; Tue, 12 Apr 2016 23:39:42 -0400 References: <1460366363-4589-1-git-send-email-peterx@redhat.com> <1460366363-4589-13-git-send-email-peterx@redhat.com> <570C860A.4060203@web.de> <20160412090239.GA17558@pxdev.xzpeter.org> <570D1696.2080301@web.de> <20160413033304.GB17558@pxdev.xzpeter.org> From: Jan Kiszka Message-ID: <570DBF69.2030302@web.de> Date: Tue, 12 Apr 2016 20:39:21 -0700 MIME-Version: 1.0 In-Reply-To: <20160413033304.GB17558@pxdev.xzpeter.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 12/13] intel_iommu: ioapic: IR support for emulated IOAPIC List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Xu Cc: qemu-devel@nongnu.org, imammedo@redhat.com, rth@twiddle.net, ehabkost@redhat.com, jasowang@redhat.com, marcel@redhat.com, mst@redhat.com, pbonzini@redhat.com, rkrcmar@redhat.com On 2016-04-12 20:33, Peter Xu wrote: > On Tue, Apr 12, 2016 at 08:39:02AM -0700, Jan Kiszka wrote: >> On 2016-04-12 02:02, Peter Xu wrote: > > [...] > >>> Yes, I should consider other x86 platforms like AMD. Thanks to point >>> out. It seems that there are many places in the patchset that lacks >>> thorough consideration about this. Will try to fix them in next >>> version. >>> >>> Regarding to the above MSI solution: I'd say it is a good way to >>> hide everything else behind. However, since we introduced one extra >>> layer (MSI) which actually does not exist, not sure there would be >>> problem too. Also, I feel it a little bit hacky if we "create" one >>> MSI out of the air... For example, if someone tries to capture MSIs >>> from QEMU inside in the APIC memory writes, he will see something he >>> cannot explain if he never knows this hack's there. Considering the >>> above, I would prefer hooks, or better to provide a callback (a >>> function pointer that others like AMD can override) to do the >>> translation. How do you think? >> >> The HPET does send MSIs, and I'm not sure how much different the >> IOAPIC's message actually is. In any case, modelling it as MSI is >> neither adding incorrectness nor making the code more complex (in fact, >> the contrary is true!). Last but not least, it would be trivial to >> filter out non-PCI MSI sources if we wanted to trace only PCI - because >> we need to identify the origin anyway for remapping purposes. So, >> explicit hooking looks like the wrong way to me. > > I am just not sure about the difference between IOAPIC's messages > and MSI ones. For now, they seems very alike. However, I am not sure > whether it would be not alike in the future. E.g., if one day, we > extend APIC bus to support more than 255 CPUs (could it? I do not > know for sure), here if we are with this "MSI layer", we would not > be able to do that, since MSI only support 8 bits for destination ID > field. That's my only worry now. If you (or Radim? or anyone more > experienced on this than me) can confirm that this would never be a > problem, I'd be glad to take the MSI way. That's one of the reason why we need IR: >255 is only possible this way, because it requires x2APIC and that requires IR (see Intel spec). So, IOAPIC messages will then always travel via VT-d. No need to worry at all. Jan