From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gordan Bobic Subject: Re: Multi-bridged PCIe devices (Was: Re: iommuu/vt-d issues with LSI MegaSAS (PERC5i)) Date: Wed, 11 Sep 2013 13:19:44 +0100 Message-ID: References: <8c1b11eec8ed133e55222fa57b4c08a8@mail.shatteredsilicon.net> <523076B602000078000F2627@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1VJjOd-0004nK-7D for xen-devel@lists.xenproject.org; Wed, 11 Sep 2013 12:19:47 +0000 Received: from mail.shatteredsilicon.net (localhost [127.0.0.1]) by external.sentinel2 (Postfix) with ESMTP id 9E74F220294 for ; Wed, 11 Sep 2013 13:19:44 +0100 (BST) In-Reply-To: <523076B602000078000F2627@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org On Wed, 11 Sep 2013 12:57:10 +0100, "Jan Beulich" wrote: >>>> On 11.09.13 at 13:44, Gordan Bobic wrote: >> This got me thinking - if the problem is broken IOMMU >> implementation, >> is the IOMMU _actually_ required for PCI passthrough to HVM >> guests if all the memory holes and BARs are made exactly the same >> in dom0 and domU? If vBAR=pBAR, then surely there is no memory >> range remapping to be done anyway - which means that there >> is no need for the strict IOMMU requirements (over and above >> the requirements and caveats of PV domUs). > > But with this you ignore the need to handle device bus mastering > activities. In order to work without IOMMU, the guest's memory > addresses would also require guest-physical = machine-physical. Hmm... that would be harder to achieve, mainly due to legacy stuff like base memory. But if (fingers crossed) DMA doesn't occur below 1MB, maybe the map can be bodged to emulate the addresses below 1MB, carve out as small a chunk of 32-bit memory as we can get away with for each guest, and map the rest with vmem=pmem in 64-bit memory range. But you are right - that gets way more complicated than I originally envisaged - all for the sake of supporting legacy and Steam boot-loader systems. :( Gordan