Received: by 2002:a05:7412:37c9:b0:e2:908c:2ebd with SMTP id jz9csp3133163rdb; Fri, 22 Sep 2023 21:34:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEUFbkkckZIwNH6BtLGqqNBsRvNIMpVvfkJHYO6tRfO+JvFKSJixYBwpau+G8YMtV0YNyyE X-Received: by 2002:a05:622a:1308:b0:417:d075:d677 with SMTP id v8-20020a05622a130800b00417d075d677mr1504134qtk.22.1695443641922; Fri, 22 Sep 2023 21:34:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695443641; cv=none; d=google.com; s=arc-20160816; b=SINHz9NyN9K+Gzq9JOIbyupDMdms+uZegDRQEkXIsjjmLJ9kARaVCd+bXCDUqvl0yd DanE2ZZkE9oZQ9x1lCMAbfqQbBg2JcpiFXvamV+6uPSI8k+f5rXvUq4EUQbLgE165OXP DC6Jj48B9nLDjWgOyJBuEwkVirCnA4Q8MAiECjAlpHTYP/hS1ohZ9X9b4x++lZS+phU4 oNET5phR0u1DCY6fXbVgFNcDEkk7RjRdfmnZDW6FcTkCvqGNn4dihGK+AB5OLzxrVzt6 Klz5ZgdZhGKNbbOmBVFoR2zdbSPbXKpp4QXEvblC7yG91amMHcjpQVfOrl1cm0Sx02JV MXEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=JlcUHfBjvDv/+8kmxymQCbCEugELBDLa0lrBy4oxtDc=; fh=DPm/wcs8vy/AQQj6K+Pu37xggi1srx/G01ORutoKuFc=; b=UULqlrCAWAmREPcfW8AWgE33bQtOYLFzUV2TuENIeUxdQ1W1C2RnOCERW6vyp53Q/U o6L7+CsOwKxpSkDAHdn32cBP8BgS3m+WW5fusnaUGX4J+4kAbbNzbIUbig50yntBc6O/ baKQSfVnmCOowGeR9LIXWfyJdaPVyk+6Na0VccWuvMP9zn53Ue53dxgZAZ7Dl4T0luZZ uCRiBtc01IAiuJKXgN495mf6XU6trf1PK6LUp0guREPSO6+cbNbQk1ZxUuAmwTvYuoFg 6qHGX9atRlWlAgUdYtaQuFUtsdoKB0qHtQ0EdlfIF1Xb0WUpVqBSUYEQxjZ4h8pKswSW +JNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=Pid8+zud; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id n2-20020a632702000000b00578bb2502ccsi5170828pgn.407.2023.09.22.21.34.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 21:34:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@ziepe.ca header.s=google header.b=Pid8+zud; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 8980B802F70A; Fri, 22 Sep 2023 07:42:32 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231519AbjIVOmd (ORCPT + 99 others); Fri, 22 Sep 2023 10:42:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41408 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230085AbjIVOma (ORCPT ); Fri, 22 Sep 2023 10:42:30 -0400 Received: from mail-yb1-xb2e.google.com (mail-yb1-xb2e.google.com [IPv6:2607:f8b0:4864:20::b2e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 19A3DC6 for ; Fri, 22 Sep 2023 07:42:24 -0700 (PDT) Received: by mail-yb1-xb2e.google.com with SMTP id 3f1490d57ef6-d776e1f181bso2615294276.3 for ; Fri, 22 Sep 2023 07:42:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1695393743; x=1695998543; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=JlcUHfBjvDv/+8kmxymQCbCEugELBDLa0lrBy4oxtDc=; b=Pid8+zudDNngq0U2uLvUJm9netGsnWSnl0ai0iUgUe5IMQY3lDwDrKOMKO+cu5nJT4 v4jQYTvnmb86+WRJGykA0eS2l2X7pIFjDkuHPHt2gE/2nWCTNMdV5ETcJjIW/IKwnk5A VMy+kmIXkDQcEZ1N3DXrQdTeLXIU8au6NxbsyGV9upPIei3DXmZ8hmZ1m31mZUZqXcZ2 iPydaHiZPVcR78W+vfmWD8ocdj4IopkRile62wJvKzQaKxYM20mt9fPLfmKNwD3DLs2y VOZ5Ik0o0HWg2yfuBMMFXd6tpYl50y1YtKp/YIHWbGsnIbeoqyRfNzgYBxZr+hqq94n0 TKFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695393743; x=1695998543; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=JlcUHfBjvDv/+8kmxymQCbCEugELBDLa0lrBy4oxtDc=; b=HyGWts8joNOWsqLFTZg0zIac85vZejg4gnZUs2gTUI8gzQ89WPiRLVNEeD++WYR2nc JttkN9/Ck3a1kMrlqn5Ildi0iWxq+Ki9eiMuK68pVkqDHgyA6jJf6lCNfVuOj88YdMnf AIIAR0DRePGYwfeATa2sfeP03rQTcHSfXryEdNpX/Tv6UXouE1WApICbmjsHywVpkMGB NLJHFm297MW8ZlB+JAmY+3kU5fY8v6WEvRpJt/fbETDcYF3SvgvOASrpa1flWzcWjLty MxDWecyhlyypw3pP7rAdLsRTbEyWi5M+q2ubmO4//1RxtiEL5N0Rp6t6Vv6PL/+jjLFn 3NvQ== X-Gm-Message-State: AOJu0YxfUurb9QfB/kdvTqi6AlVJs2oQFFoDdstZ5E4tXMGFAzUueqHN qsJGSVpZ2xdqf6Wq9Wtf5vIZfw== X-Received: by 2002:a25:5c9:0:b0:d7b:8d9a:4ec5 with SMTP id 192-20020a2505c9000000b00d7b8d9a4ec5mr8517791ybf.41.1695393743267; Fri, 22 Sep 2023 07:42:23 -0700 (PDT) Received: from ziepe.ca (hlfxns017vw-142-68-26-201.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.68.26.201]) by smtp.gmail.com with ESMTPSA id a11-20020a0cca8b000000b0063f88855ef2sm1462282qvk.101.2023.09.22.07.42.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 22 Sep 2023 07:42:22 -0700 (PDT) Received: from jgg by wakko with local (Exim 4.95) (envelope-from ) id 1qjhMM-000Ybv-7d; Fri, 22 Sep 2023 11:42:22 -0300 Date: Fri, 22 Sep 2023 11:42:22 -0300 From: Jason Gunthorpe To: Robin Murphy Cc: Hector Martin , Joerg Roedel , Will Deacon , Jerry Snitselaar , Joerg Roedel , Neal Gompa , "Justin M. Forbes" , iommu@lists.linux.dev, linux-kernel@vger.kernel.org, asahi@lists.linux.dev, stable@vger.kernel.org, regressions@lists.linux.dev Subject: Re: [PATCH REGRESSION] iommu: Only allocate FQ domains for IOMMUs that support them Message-ID: <20230922144222.GF13795@ziepe.ca> References: <20230922-iommu-type-regression-v1-1-1ed3825b2c38@marcan.st> <2ea199a1-d20d-2fde-d1bd-76ecad14a68d@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2ea199a1-d20d-2fde-d1bd-76ecad14a68d@arm.com> X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Fri, 22 Sep 2023 07:42:32 -0700 (PDT) On Fri, Sep 22, 2023 at 03:21:17PM +0100, Robin Murphy wrote: > On 22/09/2023 2:40 pm, Hector Martin wrote: > > Commit a4fdd9762272 ("iommu: Use flush queue capability") hid the > > IOMMU_DOMAIN_DMA_FQ domain type from domain allocation. A check was > > introduced in iommu_dma_init_domain() to fall back if not supported, but > > this check runs too late: by that point, devices have been attached to > > the IOMMU, and the IOMMU driver might not expect FQ domains at > > ops->attach_dev() time. > > > > Ensure that we immediately clamp FQ domains to plain DMA if not > > supported by the driver at device attach time, not later. > > > > This regressed apple-dart in v6.5. > > Apologies, I missed that apple-dart was doing something unusual here. > However, could we just fix that directly instead? > > diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c > index 2082081402d3..0b8927508427 100644 > --- a/drivers/iommu/apple-dart.c > +++ b/drivers/iommu/apple-dart.c > @@ -671,8 +671,7 @@ static int apple_dart_attach_dev(struct iommu_domain > *domain, > return ret; > > switch (domain->type) { > - case IOMMU_DOMAIN_DMA: > - case IOMMU_DOMAIN_UNMANAGED: > + default: > ret = apple_dart_domain_add_streams(dart_domain, cfg); > if (ret) > return ret; Yes, I much prefer this to the original patch please. Drivers should not be testing DMA_FQ at all. I already wrote a series to convert DART to domain_alloc_paging() that fixes this inadvertantly. Robin's suggestion is good for a temporary -rc fix. Removing the switch is slightly more robust: if (domain->type & domain->type & __IOMMU_DOMAIN_PAGING) { [..] return 0 } if (domain->type == IOMMU_DOMAIN_BLOCKED) { .. } return -EOPNOTSUPP; But not so worthwhile since I deleted all this anyhow... I'll send out the dart series, it can't go to -rc, so a patch is still needed. Thanks, Jason