From: John Garry <john.garry@huawei.com> To: <joro@8bytes.org>, <will@kernel.org>, <dwmw2@infradead.org>, <baolu.lu@linux.intel.com>, <robin.murphy@arm.com>, <corbet@lwn.net> Cc: <linux-kernel@vger.kernel.org>, <iommu@lists.linux-foundation.org>, <linuxarm@huawei.com>, <thunder.leizhen@huawei.com>, <chenxiang66@hisilicon.com>, <linux-doc@vger.kernel.org>, John Garry <john.garry@huawei.com> Subject: [PATCH v13 4/6] iommu/vt-d: Add support for IOMMU default DMA mode build options Date: Wed, 16 Jun 2021 19:03:55 +0800 [thread overview] Message-ID: <1623841437-211832-5-git-send-email-john.garry@huawei.com> (raw) In-Reply-To: <1623841437-211832-1-git-send-email-john.garry@huawei.com> From: Zhen Lei <thunder.leizhen@huawei.com> Make IOMMU_DEFAULT_LAZY default for when INTEL_IOMMU config is set, as is current behaviour. Also delete global flag intel_iommu_strict: - In intel_iommu_setup(), call iommu_set_dma_strict(true) directly. Also remove the print, as iommu_subsys_init() prints the mode and we have already marked this param as deprecated. - For cap_caching_mode() check in intel_iommu_setup(), call iommu_set_dma_strict(true) directly, and reword the accompanying print and add the missing '\n'. - For Ironlake GPU, again call iommu_set_dma_strict(true) directly and keep the accompanying print. [jpg: Remove intel_iommu_strict] Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> Signed-off-by: John Garry <john.garry@huawei.com> --- drivers/iommu/Kconfig | 1 + drivers/iommu/intel/iommu.c | 15 ++++++--------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index 0327a942fdb7..c214a36eb2dc 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -94,6 +94,7 @@ choice prompt "IOMMU default DMA IOTLB invalidation mode" depends on IOMMU_DMA + default IOMMU_DEFAULT_LAZY if INTEL_IOMMU default IOMMU_DEFAULT_STRICT help This option allows an IOMMU DMA IOTLB invalidation mode to be diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index 821d8227a4e6..d586990fa751 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -361,7 +361,6 @@ int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; -static int intel_iommu_strict; static int intel_iommu_superpage = 1; static int iommu_identity_mapping; static int iommu_skip_te_disable; @@ -455,8 +454,7 @@ static int __init intel_iommu_setup(char *str) iommu_dma_forcedac = true; } else if (!strncmp(str, "strict", 6)) { pr_warn("intel_iommu=strict deprecated; use iommu.strict instead\n"); - pr_info("Disable batched IOTLB flush\n"); - intel_iommu_strict = 1; + iommu_set_dma_strict(true); } else if (!strncmp(str, "sp_off", 6)) { pr_info("Disable supported super page\n"); intel_iommu_superpage = 0; @@ -4382,9 +4380,9 @@ int __init intel_iommu_init(void) * is likely to be much lower than the overhead of synchronizing * the virtual and physical IOMMU page-tables. */ - if (!intel_iommu_strict && cap_caching_mode(iommu->cap)) { - pr_warn("IOMMU batching is disabled due to virtualization"); - intel_iommu_strict = 1; + if (cap_caching_mode(iommu->cap)) { + pr_warn("IOMMU batching disallowed due to virtualization\n"); + iommu_set_dma_strict(true); } iommu_device_sysfs_add(&iommu->iommu, NULL, intel_iommu_groups, @@ -4393,7 +4391,6 @@ int __init intel_iommu_init(void) } up_read(&dmar_global_lock); - iommu_set_dma_strict(intel_iommu_strict); bus_set_iommu(&pci_bus_type, &intel_iommu_ops); if (si_domain && !hw_pass_through) register_memory_notifier(&intel_iommu_memory_nb); @@ -5702,8 +5699,8 @@ static void quirk_calpella_no_shadow_gtt(struct pci_dev *dev) } else if (dmar_map_gfx) { /* we have to ensure the gfx device is idle before we flush */ pci_info(dev, "Disabling batched IOTLB flush on Ironlake\n"); - intel_iommu_strict = 1; - } + iommu_set_dma_strict(true); + } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0040, quirk_calpella_no_shadow_gtt); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0044, quirk_calpella_no_shadow_gtt); -- 2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: John Garry <john.garry@huawei.com> To: <joro@8bytes.org>, <will@kernel.org>, <dwmw2@infradead.org>, <baolu.lu@linux.intel.com>, <robin.murphy@arm.com>, <corbet@lwn.net> Cc: linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linuxarm@huawei.com, iommu@lists.linux-foundation.org Subject: [PATCH v13 4/6] iommu/vt-d: Add support for IOMMU default DMA mode build options Date: Wed, 16 Jun 2021 19:03:55 +0800 [thread overview] Message-ID: <1623841437-211832-5-git-send-email-john.garry@huawei.com> (raw) In-Reply-To: <1623841437-211832-1-git-send-email-john.garry@huawei.com> From: Zhen Lei <thunder.leizhen@huawei.com> Make IOMMU_DEFAULT_LAZY default for when INTEL_IOMMU config is set, as is current behaviour. Also delete global flag intel_iommu_strict: - In intel_iommu_setup(), call iommu_set_dma_strict(true) directly. Also remove the print, as iommu_subsys_init() prints the mode and we have already marked this param as deprecated. - For cap_caching_mode() check in intel_iommu_setup(), call iommu_set_dma_strict(true) directly, and reword the accompanying print and add the missing '\n'. - For Ironlake GPU, again call iommu_set_dma_strict(true) directly and keep the accompanying print. [jpg: Remove intel_iommu_strict] Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com> Signed-off-by: John Garry <john.garry@huawei.com> --- drivers/iommu/Kconfig | 1 + drivers/iommu/intel/iommu.c | 15 ++++++--------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index 0327a942fdb7..c214a36eb2dc 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig @@ -94,6 +94,7 @@ choice prompt "IOMMU default DMA IOTLB invalidation mode" depends on IOMMU_DMA + default IOMMU_DEFAULT_LAZY if INTEL_IOMMU default IOMMU_DEFAULT_STRICT help This option allows an IOMMU DMA IOTLB invalidation mode to be diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c index 821d8227a4e6..d586990fa751 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -361,7 +361,6 @@ int intel_iommu_enabled = 0; EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; -static int intel_iommu_strict; static int intel_iommu_superpage = 1; static int iommu_identity_mapping; static int iommu_skip_te_disable; @@ -455,8 +454,7 @@ static int __init intel_iommu_setup(char *str) iommu_dma_forcedac = true; } else if (!strncmp(str, "strict", 6)) { pr_warn("intel_iommu=strict deprecated; use iommu.strict instead\n"); - pr_info("Disable batched IOTLB flush\n"); - intel_iommu_strict = 1; + iommu_set_dma_strict(true); } else if (!strncmp(str, "sp_off", 6)) { pr_info("Disable supported super page\n"); intel_iommu_superpage = 0; @@ -4382,9 +4380,9 @@ int __init intel_iommu_init(void) * is likely to be much lower than the overhead of synchronizing * the virtual and physical IOMMU page-tables. */ - if (!intel_iommu_strict && cap_caching_mode(iommu->cap)) { - pr_warn("IOMMU batching is disabled due to virtualization"); - intel_iommu_strict = 1; + if (cap_caching_mode(iommu->cap)) { + pr_warn("IOMMU batching disallowed due to virtualization\n"); + iommu_set_dma_strict(true); } iommu_device_sysfs_add(&iommu->iommu, NULL, intel_iommu_groups, @@ -4393,7 +4391,6 @@ int __init intel_iommu_init(void) } up_read(&dmar_global_lock); - iommu_set_dma_strict(intel_iommu_strict); bus_set_iommu(&pci_bus_type, &intel_iommu_ops); if (si_domain && !hw_pass_through) register_memory_notifier(&intel_iommu_memory_nb); @@ -5702,8 +5699,8 @@ static void quirk_calpella_no_shadow_gtt(struct pci_dev *dev) } else if (dmar_map_gfx) { /* we have to ensure the gfx device is idle before we flush */ pci_info(dev, "Disabling batched IOTLB flush on Ironlake\n"); - intel_iommu_strict = 1; - } + iommu_set_dma_strict(true); + } } DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0040, quirk_calpella_no_shadow_gtt); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0044, quirk_calpella_no_shadow_gtt); -- 2.26.2 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2021-06-16 11:09 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-06-16 11:03 [PATCH v13 0/6] iommu: Enhance IOMMU default DMA mode build options John Garry 2021-06-16 11:03 ` John Garry 2021-06-16 11:03 ` [PATCH v13 1/6] iommu: Deprecate Intel and AMD cmdline methods to enable strict mode John Garry 2021-06-16 11:03 ` John Garry 2021-06-17 19:01 ` Robin Murphy 2021-06-17 19:01 ` Robin Murphy 2021-06-18 7:43 ` John Garry 2021-06-18 7:43 ` John Garry 2021-06-16 11:03 ` [PATCH v13 2/6] iommu: Print strict or lazy mode at init time John Garry 2021-06-16 11:03 ` John Garry 2021-06-16 11:03 ` [PATCH v13 3/6] iommu: Enhance IOMMU default DMA mode build options John Garry 2021-06-16 11:03 ` John Garry 2021-06-16 11:03 ` John Garry [this message] 2021-06-16 11:03 ` [PATCH v13 4/6] iommu/vt-d: Add support for " John Garry 2021-06-17 7:32 ` Lu Baolu 2021-06-17 7:32 ` Lu Baolu 2021-06-17 8:00 ` John Garry 2021-06-17 8:00 ` John Garry 2021-06-17 19:03 ` Robin Murphy 2021-06-17 19:03 ` Robin Murphy 2021-06-18 1:46 ` Lu Baolu 2021-06-18 1:46 ` Lu Baolu 2021-06-18 7:31 ` John Garry 2021-06-18 7:31 ` John Garry 2021-06-16 11:03 ` [PATCH v13 5/6] iommu/amd: " John Garry 2021-06-16 11:03 ` John Garry 2021-06-16 11:03 ` [PATCH v13 6/6] iommu: Remove mode argument from iommu_set_dma_strict() John Garry 2021-06-16 11:03 ` John Garry 2021-06-17 7:36 ` Lu Baolu 2021-06-17 7:36 ` Lu Baolu 2021-06-17 7:41 ` John Garry 2021-06-17 7:41 ` John Garry 2021-06-18 1:52 ` Lu Baolu 2021-06-18 1:52 ` Lu Baolu 2021-06-17 18:56 ` Robin Murphy 2021-06-17 18:56 ` Robin Murphy 2021-06-18 1:51 ` Lu Baolu 2021-06-18 1:51 ` Lu Baolu
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=1623841437-211832-5-git-send-email-john.garry@huawei.com \ --to=john.garry@huawei.com \ --cc=baolu.lu@linux.intel.com \ --cc=chenxiang66@hisilicon.com \ --cc=corbet@lwn.net \ --cc=dwmw2@infradead.org \ --cc=iommu@lists.linux-foundation.org \ --cc=joro@8bytes.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=robin.murphy@arm.com \ --cc=thunder.leizhen@huawei.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.