From: John Garry <john.garry@huawei.com>
To: Robin Murphy <robin.murphy@arm.com>, <joro@8bytes.org>,
<will@kernel.org>, <dwmw2@infradead.org>,
<baolu.lu@linux.intel.com>
Cc: <rdunlap@infradead.org>, <linux-kernel@vger.kernel.org>,
<linuxarm@huawei.com>, <iommu@lists.linux-foundation.org>
Subject: Re: [PATCH v11 1/3] iommu: Enhance IOMMU default DMA mode build options
Date: Wed, 9 Jun 2021 16:24:09 +0100 [thread overview]
Message-ID: <bef59822-71ab-a82e-ed95-0e139cf1fbf0@huawei.com> (raw)
In-Reply-To: <b9575a44-24c7-a05b-6f02-0495e95a4cec@arm.com>
On 09/06/2021 16:03, Robin Murphy wrote:
> On 2021-06-08 14:18, John Garry wrote:
>> From: Zhen Lei <thunder.leizhen@huawei.com>
>>
>> First, add build options IOMMU_DEFAULT_{LAZY|STRICT}, so that we have the
>> opportunity to set {lazy|strict} mode as default at build time. Then put
>> the two config options in a choice, as they are mutually exclusive.
>>
>> [jpg: Make choice between strict and lazy only (and not passthrough)]
>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
>> Signed-off-by: John Garry <john.garry@huawei.com>
>> ---
>> drivers/iommu/Kconfig | 35 +++++++++++++++++++++++++++++++++++
>> drivers/iommu/iommu.c | 3 ++-
>> 2 files changed, 37 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
>> index 1f111b399bca..369a3af9e5bf 100644
>> --- a/drivers/iommu/Kconfig
>> +++ b/drivers/iommu/Kconfig
>> @@ -90,6 +90,41 @@ config IOMMU_DEFAULT_PASSTHROUGH
>> If unsure, say N here.
>> +choice
>> + prompt "IOMMU default DMA mode"
>> + depends on IOMMU_API
>> + depends on X86 || IA64 || X86_64 || ARM || ARM64
>
> Simply "depends on IOMMU_DMA" should suffice, since that's now the only
> place where flush queues matter.
I suppose so.
Configs ARM64, AMD_IOMMU, and INTEL_IOMMU all select this.
>
>> +
>> + default IOMMU_DEFAULT_STRICT
>> + help
>> + This option allows an IOMMU DMA mode to be chosen at build
>> time, to
>> + override the default DMA mode of each ARCH, removing the need to
>> + pass in kernel parameters through command line. It is still
>> possible
>> + to provide ARCH-specific or common boot options to override this
>> + option.
>> +
>> + If unsure, keep the default.
>> +
>> +config IOMMU_DEFAULT_LAZY
>> + bool "lazy"
>> + help
>> + Support lazy mode, where for every IOMMU DMA unmap operation, the
>> + flush operation of IOTLB and the free operation of IOVA are
>> deferred.
>> + They are only guaranteed to be done before the related IOVA
>> will be
>> + reused.
>> +
>> +config IOMMU_DEFAULT_STRICT
>> + bool "strict"
>> + help
>> + For every IOMMU DMA unmap operation, the flush operation of
>> IOTLB and
>> + the free operation of IOVA are guaranteed to be done in the unmap
>> + function.
>> +
>> + This mode is safer than lazy mode, but it may be slower in some
>> high
>> + performance scenarios.
>
> FWIW, as an end user who doesn't care much about the implementation
> details I'd probably appreciate the actual implications being clearer,
> i.e. what does "safer" mean in practice and what is it relative to?
>
Fine, I can mention that lazy mode means that we have reduced device
isolation and a dangerous window can be created between device driver
DMA unmap and zapping the mapping in the IOMMU; however still much safer
than passthrough/no IOMMU, which means no isolation at all.
Thanks,
John
next prev parent reply other threads:[~2021-06-09 15:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-08 13:18 [PATCH v11 0/3] " John Garry
2021-06-08 13:18 ` [PATCH v11 1/3] iommu: " John Garry
2021-06-09 15:03 ` Robin Murphy
2021-06-09 15:24 ` John Garry [this message]
2021-06-08 13:18 ` [PATCH v11 2/3] iommu/vt-d: Add support for " John Garry
2021-06-08 13:18 ` [PATCH v11 3/3] iommu/amd: " John Garry
2021-06-09 8:15 ` [PATCH v11 0/3] Enhance " Joerg Roedel
2021-06-10 16:25 ` John Garry
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bef59822-71ab-a82e-ed95-0e139cf1fbf0@huawei.com \
--to=john.garry@huawei.com \
--cc=baolu.lu@linux.intel.com \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=rdunlap@infradead.org \
--cc=robin.murphy@arm.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®