Received: by 10.192.165.148 with SMTP id m20csp4813397imm; Tue, 8 May 2018 15:04:17 -0700 (PDT) X-Google-Smtp-Source: AB8JxZrGOGNZK+wIWxXw5tLNmaW8dllCRCdprHI3ZrCBIA+bFmQ0TMC3H8nMa8V0O3VqrcSmPNH3 X-Received: by 2002:a17:902:8f95:: with SMTP id z21-v6mr38851712plo.259.1525817057312; Tue, 08 May 2018 15:04:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525817057; cv=none; d=google.com; s=arc-20160816; b=AezRXLbZ2ATZJmlo2V2M07ZpIdFrmiMybEzwl347kRAOb1yqMJ2MfDKeefmjVLR3iR BUVTGWo9QNnDcgIZRcIEbmxtI8exeAGRWpXrz2NwbWxHh+LsihwIEs4B94LZH4N/lbxw z7zH8JNGqAsu10OiaCqMxtogaxAMvoYKlkWnZrTC6c+K3u0H86SBzqxKOi1MYeUqVXLq 5XEXdovFvj4IJ5DpfE0Qt+mc8rVYLmZbFwUpX5CoISh5WgcvPIKJeDwH05+CRmF6p+Zg xmoUoxpEuU9ZBHc3jCUN6EtEV+RXWDDCHGNkP5M8vUiCz3aduC3ohbAXbdeR0wd9wZyf fXFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :arc-authentication-results; bh=/uFRaxv8DeSMoGr2S0zH8ZtL15E7p6TV2gR73lOdRgc=; b=c72j/kmfI82w4MTw0GZyv8lphqkaaE2IkYQy4zu7jsmj0tYzdkQ5C6fOAQ5aHfUbgx 3UjncHqMGI3SOlj4u9zr6U8uz1/6CHt8T6Ir/0GU2zodbEkd00xjMmF6p3GpmoZGxXJB THYMCRnMzZwgFXBoMjs4mpcwkFyOleiZ0btVo+0eLsb+vhIZGMGVnIai1MXU3Ek0E6do LcrKP5WhgAVR0lTZq0CvDCTZi5k1/oRFWAc9AXMJMRAd1phijiCZ1KMDlGVSnoAF9YDU 46XMzjGCusuGrLm+341PCQt9LxwogifpSIVotn+sy6IvOZl1zez4X8Bj7p7CF+2DHRV6 qxMA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m19si18069406pff.303.2018.05.08.15.04.02; Tue, 08 May 2018 15:04:17 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755739AbeEHWDt (ORCPT + 99 others); Tue, 8 May 2018 18:03:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58282 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751533AbeEHWDr (ORCPT ); Tue, 8 May 2018 18:03:47 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9CBD35F73B; Tue, 8 May 2018 22:03:41 +0000 (UTC) Received: from w520.home (ovpn-116-103.phx2.redhat.com [10.3.116.103]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45875600D2; Tue, 8 May 2018 22:03:37 +0000 (UTC) Date: Tue, 8 May 2018 16:03:36 -0600 From: Alex Williamson To: "Stephen Bates" Cc: Logan Gunthorpe , Christian =?UTF-8?B?S8O2bmln?= , "Bjorn Helgaas" , "linux-kernel@vger.kernel.org" , "linux-pci@vger.kernel.org" , "linux-nvme@lists.infradead.org" , "linux-rdma@vger.kernel.org" , "linux-nvdimm@lists.01.org" , "linux-block@vger.kernel.org" , Christoph Hellwig , Jens Axboe , Keith Busch , Sagi Grimberg , Bjorn Helgaas , Jason Gunthorpe , Max Gurtovoy , Dan Williams , =?UTF-8?B?SsOpcsO0bWU=?= Glisse , Benjamin Herrenschmidt Subject: Re: [PATCH v4 04/14] PCI/P2PDMA: Clear ACS P2P flags for all devices behind switches Message-ID: <20180508160336.0935ddde@w520.home> In-Reply-To: <354F7407-0DC7-470C-B9AA-74FDF9C46B08@raithlin.com> References: <20180423233046.21476-1-logang@deltatee.com> <20180423233046.21476-5-logang@deltatee.com> <20180507231306.GG161390@bhelgaas-glaptop.roam.corp.google.com> <0b4183ef-e720-204b-9e85-b9eaf7a4136a@deltatee.com> <3584a6ac-95c7-5d23-1859-aee30605776e@deltatee.com> <20180508133407.57a46902@w520.home> <5fc9b1c1-9208-06cc-0ec5-1f54c2520494@deltatee.com> <20180508141331.7cd737cb@w520.home> <20180508144341.0441b676@w520.home> <20180508152631.50fd583c@w520.home> <354F7407-0DC7-470C-B9AA-74FDF9C46B08@raithlin.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Tue, 08 May 2018 22:03:47 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 8 May 2018 21:42:27 +0000 "Stephen Bates" wrote: > Hi Alex > > > But it would be a much easier proposal to disable ACS when the > > IOMMU is not enabled, ACS has no real purpose in that case. > > I guess one issue I have with this is that it disables IOMMU groups > for all Root Ports and not just the one(s) we wish to do p2pdma on. But as I understand this series, we're not really targeting specific sets of devices either. It's more of a shotgun approach that we disable ACS on downstream switch ports and hope that we get the right set of devices, but with the indecisiveness that we might later white-list select root ports to further increase the blast radius. > > The IOMMU and P2P are already not exclusive, we can bounce off > > the IOMMU or make use of ATS as we've previously discussed. We were > > previously talking about a build time config option that you > > didn't expect distros to use, so I don't think intervention for the > > user to disable the IOMMU if it's enabled by default is a serious > > concern either. > > ATS definitely makes things more interesting for the cases where the > EPs support it. However I don't really have a handle on how common > ATS support is going to be in the kinds of devices we have been > focused on (NVMe SSDs and RDMA NICs mostly). > > > What you're trying to do is enabled direct peer-to-peer for > > endpoints which do not support ATS when the IOMMU is enabled, which > > is not something that necessarily makes sense to me. > > As above the advantage of leaving the IOMMU on is that it allows for > both p2pdma PCI domains and IOMMU groupings PCI domains in the same > system. It is just that these domains will be separate to each other. That argument makes sense if we had the ability to select specific sets of devices, but that's not the case here, right? With the shotgun approach, we're clearly favoring one at the expense of the other and it's not clear why we don't simple force the needle all the way in that direction such that the results are at least predictable. > > So that leaves avoiding bounce buffers as the remaining IOMMU > > feature > > I agree with you here that the devices we will want to use for p2p > will probably not require a bounce buffer and will support 64 bit DMA > addressing. > > > I'm still not seeing why it's terribly undesirable to require > > devices to support ATS if they want to do direct P2P with an IOMMU > > enabled. > > I think the one reason is for the use-case above. Allowing IOMMU > groupings on one domain and p2pdma on another domain.... If IOMMU grouping implies device assignment (because nobody else uses it to the same extent as device assignment) then the build-time option falls to pieces, we need a single kernel that can do both. I think we need to get more clever about allowing the user to specify exactly at which points in the topology they want to disable isolation. Thanks, Alex