From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35633) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X05wT-0007l8-NE for qemu-devel@nongnu.org; Thu, 26 Jun 2014 05:26:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X05wM-0001y4-7W for qemu-devel@nongnu.org; Thu, 26 Jun 2014 05:26:05 -0400 Received: from cantor2.suse.de ([195.135.220.15]:37378 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X05wM-0001xx-0d for qemu-devel@nongnu.org; Thu, 26 Jun 2014 05:25:58 -0400 Message-ID: <53ABE723.8030107@suse.de> Date: Thu, 26 Jun 2014 11:25:55 +0200 From: Alexander Graf MIME-Version: 1.0 References: <1401695374-4287-1-git-send-email-eric.auger@linaro.org> <1401695374-4287-7-git-send-email-eric.auger@linaro.org> <53AB3F70.2060603@suse.de> <53ABDF6E.5020002@linaro.org> In-Reply-To: <53ABDF6E.5020002@linaro.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [RFC v3 06/10] virt: Assign a VFIO platform device with -device option List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eric Auger , eric.auger@st.com, christoffer.dall@linaro.org, qemu-devel@nongnu.org, kim.phillips@freescale.com, a.rigo@virtualopensystems.com Cc: peter.maydell@linaro.org, patches@linaro.org, stuart.yoder@freescale.com, alex.williamson@redhat.com, christophe.barnichon@st.com, a.motakis@virtualopensystems.com, kvmarm@lists.cs.columbia.edu On 26.06.14 10:53, Eric Auger wrote: > On 06/25/2014 11:30 PM, Alexander Graf wrote: >> On 02.06.14 09:49, Eric Auger wrote: >>> This patch aims at allowing the end-user to specify the device he >>> wants to directly assign to his mach-virt guest in the QEMU command >>> line. >>> >>> The QEMU platform device becomes generic. >>> >>> Current choice is to reuse the "-device" option. >>> >>> For example when assigning Calxeda Midway xgmac device this option >>> is used: >>> -device vfio-platform,vfio_device="fff51000.ethernet",\ >>> compat="calxeda/hb-xgmac",mmap-timeout-ms=1000 >> I think we're walking into the right direction, but there is one major >> nit I have. I don't think we should have a -device vfio-platform. I >> think we should have a -device vfio-xgmac that maybe inherits from an >> abstrace vfio-platform class. >> >> That way machine code can assemble the device tree according to the >> device and you can also implement hardware specific hacks or >> dependencies if you need them - for example the MMIO masking to find an >> EOI you did earlier. > I must admit I am lacking experience of other devices than my dear > xgmac. I can just say that for the time beeing the approach seems to fit > some ARM Amba devices like PL330 DMA. We need to go further to identity > the limits of this generic approach. No, I think we're better off not faking anything generic at all, because I'm 99.9% sure it will never be generic in real-world device cases. And if we start doing things generically, people will soon want to have other mad additions to do device specific things in generic code, such as "take the device tree from the host, but modify property x, y and z". Better be clear about our limits from the beginning :). Imagine vfio-platform as a transport, similar to TCP. We have ports and moving data from left to right is always the same, but whether you need to open 2 ports to get a working FTP data transfer is up to the implementation of the protocol above. Same thing here. Alex