Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp5364043pxv; Wed, 28 Jul 2021 09:03:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzWE20OwJqzNc2ninNqIkVItJ65Q4VyhpbgFMXgG27UwI5dRFOcZcJ8VDUaiHiiO0fY4z/s X-Received: by 2002:a17:907:3da5:: with SMTP id he37mr173914ejc.189.1627488206352; Wed, 28 Jul 2021 09:03:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1627488206; cv=none; d=google.com; s=arc-20160816; b=Sd4+TfgWRbbNDJvjVGQEYtGnrKRUnhMtybaIN0yPmaW3Mb0dVyW26e8fmME/KY+R2q TsAoN2RQb/XUncgsi9A/SX7/ASw2X6qEnsuT+BnPgjSetJRyX5EKVryTxk/msad7W/sG Mg9EaQB2CCelTygw9zyIvqGb8gmTLO3VLK3Y9FDepvvyBbGkModLAJ2/7CAtLmtlzcir T8eRUwJP6j7tzTKVL0/5URXGeKo0V3iag/E0Ve/6kNOXYfQn5LvIDNmKQne7BlnZGQ2T NwmiykMI8XzaYFfQ+OaL/a0yDMjbWRVvpDsKxJ+LOPih2sokImunc3qZnfXGVKLFGURH 4YTQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=7KF1TCarFPr7YTuWP/Gznfw0gG2hL1qQAgNbTmZFsCA=; b=qxYyY7Awe0GCxEoaGgMyI1I7hlsAHsvL6D8wllGiZF21AIsbrWYjyxPHzVf0uJpbOK d+t3JC3K3JT3lVFPyFAQhRAgPiNZfCcX7sYgu+5mf0BJin8Pb63yfQc/JDipQbBHjGg4 oIsRIVNWF5jGDvSAPNz1Kw0eu4/yX6h58PXKPWO6dBbG7DF0Jm/aFEfcehXyplGEnmb2 iaoq4f0Fh0NR8j1A+OHsYHRfjeuzqMHhFYRcqw2bxBUi0m+PaMHNZ4fIPc6i4yI2DhiG AX2WpVlMovk+uUtqnkO6HNjAT8DYH5nlNLSjbdGZdNJSsUCRLVQkNsvwTXVZOvyteATY BwyQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b22si181751eje.622.2021.07.28.09.03.01; Wed, 28 Jul 2021 09:03:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229806AbhG1QAM (ORCPT + 99 others); Wed, 28 Jul 2021 12:00:12 -0400 Received: from foss.arm.com ([217.140.110.172]:59542 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237505AbhG1P7l (ORCPT ); Wed, 28 Jul 2021 11:59:41 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id EC2A7D6E; Wed, 28 Jul 2021 08:59:39 -0700 (PDT) Received: from 010265703453.arm.com (unknown [10.57.36.146]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 799E73F70D; Wed, 28 Jul 2021 08:59:38 -0700 (PDT) From: Robin Murphy To: joro@8bytes.org, will@kernel.org Cc: iommu@lists.linux-foundation.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, suravee.suthikulpanit@amd.com, baolu.lu@linux.intel.com, john.garry@huawei.com, dianders@chromium.org Subject: [PATCH v2 19/24] iommu: Expose DMA domain strictness via sysfs Date: Wed, 28 Jul 2021 16:58:40 +0100 Message-Id: X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The sysfs interface for default domain types exists primarily so users can choose the performance/security tradeoff relevant to their own workload. As such, the choice between the policies for DMA domains fits perfectly as an additional point on that scale - downgrading a particular device from a strict default to non-strict may be enough to let it reach the desired level of performance, while still retaining more peace of mind than with a wide-open identity domain. Now that we've abstracted non-strict mode as a distinct type of DMA domain, allow it to be chosen through the user interface as well. Signed-off-by: Robin Murphy --- Documentation/ABI/testing/sysfs-kernel-iommu_groups | 2 ++ drivers/iommu/iommu.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-kernel-iommu_groups b/Documentation/ABI/testing/sysfs-kernel-iommu_groups index eae2f1c1e11e..43ba764ba5b7 100644 --- a/Documentation/ABI/testing/sysfs-kernel-iommu_groups +++ b/Documentation/ABI/testing/sysfs-kernel-iommu_groups @@ -42,6 +42,8 @@ Description: /sys/kernel/iommu_groups//type shows the type of default ======== ====================================================== DMA All the DMA transactions from the device in this group are translated by the iommu. + DMA-FQ As above, but using batched invalidation to lazily + remove translations after use. identity All the DMA transactions from the device in this group are not translated by the iommu. auto Change to the type the device was booted with. diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index eecb5657de69..5a08e0806cbb 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -3265,6 +3265,8 @@ static ssize_t iommu_group_store_type(struct iommu_group *group, req_type = IOMMU_DOMAIN_IDENTITY; else if (sysfs_streq(buf, "DMA")) req_type = IOMMU_DOMAIN_DMA; + else if (sysfs_streq(buf, "DMA-FQ")) + req_type = IOMMU_DOMAIN_DMA_FQ; else if (sysfs_streq(buf, "auto")) req_type = 0; else -- 2.25.1