Re: [PATCH RESEND v3] iommu/tegra-smmu: Add missing locks around mapping operations

2020-09-04 Thread Thierry Reding
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

2020-09-04 Thread Dmitry Osipenko
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

2020-09-04 Thread 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.
___
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

2020-08-26 Thread Sasha Levin
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