From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AFFB2C433E0 for ; Tue, 12 Jan 2021 04:41:35 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 43C8E222F9 for ; Tue, 12 Jan 2021 04:41:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 43C8E222F9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=pCiwhhBhJwhdfMa9U5EOEw4OwSjkRw6Ez6QnDeTRkHI=; b=c2IghAY/6cyhSump555Pz79NN sXITuG6uAfVXrwKtc6DUUOQOJtrhWgZOyme/nQPLRQSyrMxW3L+VRU1Kgc0VMC6/EOK5WxHz63s++ g+rTHlyOT08rNDqCn7qrIKdPDuceVndpFbPT2u8yrxRBlRO8eVK+xV+Fs0YsEj8DJ94NVtXv5zNia 624bxJoXl1o2XvTlP8K1CZ7PiKTLCMIhdSkBsxeATejeJBf51BddqOAPtj5CA7RihtssRC5u6pcJo WbwP99UbVNgh27PIEMm8JQDV14l1z53YtHhGTtAGx4ZOkCwaqh4XW/S7byiYqLNeCpjdfxjMit69w wr4AxNB1A==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kzBT2-0004sq-M9; Tue, 12 Jan 2021 04:39:40 +0000 Received: from mga06.intel.com ([134.134.136.31]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kzBSy-0004qo-LX for linux-arm-kernel@lists.infradead.org; Tue, 12 Jan 2021 04:39:38 +0000 IronPort-SDR: x4RNtmlV6AQJGqCh64cwe6IAZV0qTrR66pI3mJBAYoK7LvqD4qkni0h+N0yLzajrwRCEx/Qqa0 bcisozDf1Bpw== X-IronPort-AV: E=McAfee;i="6000,8403,9861"; a="239522078" X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="239522078" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jan 2021 20:39:32 -0800 IronPort-SDR: rbtMIpU1AlGux/ENy6x92Hb2JJ7I19FCOibsAEwW3txKgPQT94r1a/Nk8Rt2IbZtTfttbufyMg 6wmw9cE1hnAA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,340,1602572400"; d="scan'208";a="464389805" Received: from allen-box.sh.intel.com (HELO [10.239.159.28]) ([10.239.159.28]) by fmsmga001.fm.intel.com with ESMTP; 11 Jan 2021 20:39:27 -0800 Subject: Re: [PATCH v9 03/10] iommu: Separate IOMMU_DEV_FEAT_IOPF from IOMMU_DEV_FEAT_SVA To: Jean-Philippe Brucker , joro@8bytes.org, will@kernel.org References: <20210108145217.2254447-1-jean-philippe@linaro.org> <20210108145217.2254447-4-jean-philippe@linaro.org> From: Lu Baolu Message-ID: <4de8ef03-a2ed-316e-d3e3-6b8474e20113@linux.intel.com> Date: Tue, 12 Jan 2021 12:31:23 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20210108145217.2254447-4-jean-philippe@linaro.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210111_233936_908916_49232995 X-CRM114-Status: GOOD ( 24.76 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: vivek.gautam@arm.com, guohanjun@huawei.com, lorenzo.pieralisi@arm.com, Zhou Wang , linux-acpi@vger.kernel.org, zhangfei.gao@linaro.org, lenb@kernel.org, devicetree@vger.kernel.org, "Tian, Kevin" , Arnd Bergmann , robin.murphy@arm.com, eric.auger@redhat.com, robh+dt@kernel.org, Jonathan.Cameron@huawei.com, linux-arm-kernel@lists.infradead.org, Greg Kroah-Hartman , rjw@rjwysocki.net, shameerali.kolothum.thodi@huawei.com, iommu@lists.linux-foundation.org, sudeep.holla@arm.com, David Woodhouse , linux-accelerators@lists.ozlabs.org, baolu.lu@linux.intel.com Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi Jean, On 1/8/21 10:52 PM, Jean-Philippe Brucker wrote: > Some devices manage I/O Page Faults (IOPF) themselves instead of relying > on PCIe PRI or Arm SMMU stall. Allow their drivers to enable SVA without > mandating IOMMU-managed IOPF. The other device drivers now need to first > enable IOMMU_DEV_FEAT_IOPF before enabling IOMMU_DEV_FEAT_SVA. > > Signed-off-by: Jean-Philippe Brucker > --- > Cc: Arnd Bergmann > Cc: David Woodhouse > Cc: Greg Kroah-Hartman > Cc: Joerg Roedel > Cc: Lu Baolu > Cc: Will Deacon > Cc: Zhangfei Gao > Cc: Zhou Wang > --- > include/linux/iommu.h | 20 +++++++++++++++++--- > 1 file changed, 17 insertions(+), 3 deletions(-) > > diff --git a/include/linux/iommu.h b/include/linux/iommu.h > index 583c734b2e87..701b2eeb0dc5 100644 > --- a/include/linux/iommu.h > +++ b/include/linux/iommu.h > @@ -156,10 +156,24 @@ struct iommu_resv_region { > enum iommu_resv_type type; > }; > > -/* Per device IOMMU features */ > +/** > + * enum iommu_dev_features - Per device IOMMU features > + * @IOMMU_DEV_FEAT_AUX: Auxiliary domain feature > + * @IOMMU_DEV_FEAT_SVA: Shared Virtual Addresses > + * @IOMMU_DEV_FEAT_IOPF: I/O Page Faults such as PRI or Stall. Generally using > + * %IOMMU_DEV_FEAT_SVA requires %IOMMU_DEV_FEAT_IOPF, but > + * some devices manage I/O Page Faults themselves instead > + * of relying on the IOMMU. When supported, this feature > + * must be enabled before and disabled after > + * %IOMMU_DEV_FEAT_SVA. Is this only for SVA? We may see more scenarios of using IOPF. For example, when passing through devices to user level, the user's pages could be managed dynamically instead of being allocated and pinned statically. If @IOMMU_DEV_FEAT_IOPF is defined as generic iopf support, the current vendor IOMMU driver support may not enough. Best regards, baolu > + * > + * Device drivers query whether a feature is supported using > + * iommu_dev_has_feature(), and enable it using iommu_dev_enable_feature(). > + */ > enum iommu_dev_features { > - IOMMU_DEV_FEAT_AUX, /* Aux-domain feature */ > - IOMMU_DEV_FEAT_SVA, /* Shared Virtual Addresses */ > + IOMMU_DEV_FEAT_AUX, > + IOMMU_DEV_FEAT_SVA, > + IOMMU_DEV_FEAT_IOPF, > }; > > #define IOMMU_PASID_INVALID (-1U) > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel