Re: [PATCH RESEND v3] iommu/tegra-smmu: Add missing locks around mapping operations
On Fri, Sep 04, 2020 at 11:05:19AM +0200, Joerg Roedel wrote: > On Fri, Aug 14, 2020 at 07:22:52PM +0300, Dmitry Osipenko wrote: > > The mapping operations of the Tegra SMMU driver are subjected to a race > > condition issues because SMMU Address Space isn't allocated and freed > > atomically, while it should be. This patch makes the mapping operations > > atomic, it fixes an accidentally released Host1x Address Space problem > > which happens while running multiple graphics tests in parallel on > > Tegra30, i.e. by having multiple threads racing with each other in the > > Host1x's submission and completion code paths, performing IOVA mappings > > and unmappings in parallel. > > > > Cc: > > Signed-off-by: Dmitry Osipenko > > Thierry, does this change look good to you? As Dmitry said, there's a new patch for this which is better. I've replied with an Acked-by and Tested-by to v5. Thierry signature.asc Description: PGP signature ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH RESEND v3] iommu/tegra-smmu: Add missing locks around mapping operations
04.09.2020 12:19, Dmitry Osipenko пишет: > 04.09.2020 12:05, Joerg Roedel пишет: >> On Fri, Aug 14, 2020 at 07:22:52PM +0300, Dmitry Osipenko wrote: >>> The mapping operations of the Tegra SMMU driver are subjected to a race >>> condition issues because SMMU Address Space isn't allocated and freed >>> atomically, while it should be. This patch makes the mapping operations >>> atomic, it fixes an accidentally released Host1x Address Space problem >>> which happens while running multiple graphics tests in parallel on >>> Tegra30, i.e. by having multiple threads racing with each other in the >>> Host1x's submission and completion code paths, performing IOVA mappings >>> and unmappings in parallel. >>> >>> Cc: >>> Signed-off-by: Dmitry Osipenko >> >> Thierry, does this change look good to you? >> > > Hello Joerg and Thierry, > > Please take into account that there is a v5 now that I sent out a day > ago, it's more optimized version and supports both atomic and non-atomic > GFP flags for the mapping operation. > https://patchwork.ozlabs.org/project/linux-tegra/patch/20200901203730.27865-1-dig...@gmail.com/ ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH RESEND v3] iommu/tegra-smmu: Add missing locks around mapping operations
04.09.2020 12:05, Joerg Roedel пишет: > On Fri, Aug 14, 2020 at 07:22:52PM +0300, Dmitry Osipenko wrote: >> The mapping operations of the Tegra SMMU driver are subjected to a race >> condition issues because SMMU Address Space isn't allocated and freed >> atomically, while it should be. This patch makes the mapping operations >> atomic, it fixes an accidentally released Host1x Address Space problem >> which happens while running multiple graphics tests in parallel on >> Tegra30, i.e. by having multiple threads racing with each other in the >> Host1x's submission and completion code paths, performing IOVA mappings >> and unmappings in parallel. >> >> Cc: >> Signed-off-by: Dmitry Osipenko > > Thierry, does this change look good to you? > Hello Joerg and Thierry, Please take into account that there is a v5 now that I sent out a day ago, it's more optimized version and supports both atomic and non-atomic GFP flags for the mapping operation. ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH RESEND v3] iommu/tegra-smmu: Add missing locks around mapping operations
Hi [This is an automated email] This commit has been processed because it contains a -stable tag. The stable tag indicates that it's relevant for the following trees: all The bot has tested the following trees: v5.8.2, v5.7.16, v5.4.59, v4.19.140, v4.14.193, v4.9.232, v4.4.232. v5.8.2: Build OK! v5.7.16: Build OK! v5.4.59: Failed to apply! Possible dependencies: 781ca2de89ba ("iommu: Add gfp parameter to iommu_ops::map") v4.19.140: Failed to apply! Possible dependencies: 06d60728ff5c ("iommu/dma: move the arm64 wrappers to common code") 44f6876a00e8 ("iommu/arm-smmu: Support non-strict mode") 46053c736854 ("dma-mapping: clear dev->dma_ops in arch_teardown_dma_ops") 781ca2de89ba ("iommu: Add gfp parameter to iommu_ops::map") 886643b76632 ("arm64: use the generic swiotlb_dma_ops") 92aec09cc879 ("iommu/dma: Move __iommu_dma_map") 96a299d24cfb ("iommu/arm-smmu: Add pm_runtime/sleep ops") c4dae366925f ("swiotlb: refactor swiotlb_map_page") d4a44f0750bb ("iommu/arm-smmu: Invoke pm_runtime across the driver") dff8d6c1ed58 ("swiotlb: remove the overflow buffer") fafadcd16595 ("swiotlb: don't dip into swiotlb pool for coherent allocations") v4.14.193: Failed to apply! Possible dependencies: 06d60728ff5c ("iommu/dma: move the arm64 wrappers to common code") 10dac04c79b1 ("mips: fix an off-by-one in dma_capable") 32b124492bdf ("iommu/io-pgtable-arm: Convert to IOMMU API TLB sync") 32ce3862af3c ("powerpc/lib: Implement PMEM API") 44f6876a00e8 ("iommu/arm-smmu: Support non-strict mode") 781ca2de89ba ("iommu: Add gfp parameter to iommu_ops::map") 92aec09cc879 ("iommu/dma: Move __iommu_dma_map") 96a299d24cfb ("iommu/arm-smmu: Add pm_runtime/sleep ops") d4a44f0750bb ("iommu/arm-smmu: Invoke pm_runtime across the driver") ea8c64ace866 ("dma-mapping: move swiotlb arch helpers to a new header") v4.9.232: Failed to apply! Possible dependencies: 125458ab3aef ("iommu/arm-smmu: Fix 16-bit ASID configuration") 280b683ceace ("iommu/arm-smmu: Simplify ASID/VMID handling") 32b124492bdf ("iommu/io-pgtable-arm: Convert to IOMMU API TLB sync") 3677a649a751 ("iommu/arm-smmu: Fix for ThunderX erratum #27704") 44f6876a00e8 ("iommu/arm-smmu: Support non-strict mode") 452107c79035 ("iommu/arm-smmu: Tidy up context bank indexing") 523d7423e21b ("iommu/arm-smmu: Remove io-pgtable spinlock") 58188afeb727 ("iommu/arm-smmu-v3: Remove io-pgtable spinlock") 61bc671179f1 ("iommu/arm-smmu: Install bypass S2CRs for IOMMU_DOMAIN_IDENTITY domains") 781ca2de89ba ("iommu: Add gfp parameter to iommu_ops::map") bdf95923086f ("iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed") d4a44f0750bb ("iommu/arm-smmu: Invoke pm_runtime across the driver") v4.4.232: Failed to apply! Possible dependencies: 267b62a96951 ("clk: tegra: pll: Update PLLM handling") 287980e49ffc ("remove lots of IS_ERR_VALUE abuses") 407254da291c ("clk: tegra: pll: Add logic for out-of-table rates for T210") 56fd27b31f1a ("clk: tegra: pll: Change misc_reg count from 3 to 6") 58188afeb727 ("iommu/arm-smmu-v3: Remove io-pgtable spinlock") 6583a6309e83 ("clk: tegra: pll: Add tegra_pll_wait_for_lock to clk header") 6929715cf6b9 ("clk: tegra: pll: Add support for PLLMB for Tegra210") 6b301a059eb2 ("clk: tegra: Add support for Tegra210 clocks") 781ca2de89ba ("iommu: Add gfp parameter to iommu_ops::map") 7db864c9deb2 ("clk: tegra: pll: Simplify clk_enable_path") 8cfb0cdf07e2 ("ACPI / debugger: Add IO interface to access debugger functionalities") 8f78515425da ("iommu/arm-smmu: Implement of_xlate() for SMMUv3") 9adb95949a34 ("iommu/arm-smmu: Support DMA-API domains") bc7f2ce0a7b5 ("iommu/arm-smmu: Don't fail device attach if already attached to a domain") bdf95923086f ("iommu/arm-smmu: Return IOVA in iova_to_phys when SMMU is bypassed") d907f4b4a178 ("clk: tegra: pll: Add logic for handling SDM data") f8d31489629c ("ACPICA: Debugger: Convert some mechanisms to OSPM specific") NOTE: The patch will not be queued to stable trees until it is upstream. How should we proceed with this patch? -- Thanks Sasha ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu