From: Vivek Gautam <vivek.gautam@codeaurora.org> To: agross@kernel.org, robh+dt@kernel.org, will.deacon@arm.com, robin.murphy@arm.com, joro@8bytes.org, bjorn.andersson@linaro.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org Cc: linux-kernel@vger.kernel.org, david.brown@linaro.org, Vivek Gautam <vivek.gautam@codeaurora.org> Subject: [PATCH v3 0/4] Qcom smmu-500 wait-for-safe handling for sdm845 Date: Wed, 12 Jun 2019 12:45:50 +0530 [thread overview] Message-ID: <20190612071554.13573-1-vivek.gautam@codeaurora.org> (raw) Subject changed, older subject was - Qcom smmu-500 TLB invalidation errata for sdm845. Previous version of the patches are at [1]: Qcom's implementation of smmu-500 on sdm845 adds a hardware logic called wait-for-safe. This logic helps in meeting the invalidation requirements from 'real-time clients', such as display and camera. This wait-for-safe logic ensures that the invalidations happen after getting an ack from these devices. In this patch-series we are disabling this wait-for-safe logic from the arm-smmu driver's probe as with this enabled the hardware tries to throttle invalidations from 'non-real-time clients', such as USB and UFS. For detailed information please refer to patch [3/4] in this series. I have included the device tree patch too in this series for someone who would like to test out this. Here's a branch [2] that gets display on MTP SDM845 device. This patch series is inspired from downstream work to handle under-performance issues on real-time clients on sdm845. In downstream we add separate page table ops to handle TLB maintenance and toggle wait-for-safe in tlb_sync call so that achieve required performance for display and camera [3, 4]. Changes since v2: * Dropped the patch to add atomic io_read/write scm API. * Removed support for any separate page table ops to handle wait-for-safe. Currently just disabling this wait-for-safe logic from arm_smmu_device_probe() to achieve performance on USB/UFS on sdm845. * Added a device tree patch to add smmu option for fw-implemented support for SCM call to take care of SAFE toggling. Changes since v1: * Addressed Will and Robin's comments: - Dropped the patch[4] that forked out __arm_smmu_tlb_inv_range_nosync(), and __arm_smmu_tlb_sync(). - Cleaned up the errata patch further to use downstream polling mechanism for tlb sync. * No change in SCM call patches - patches 1 to 3. [1] https://lore.kernel.org/patchwork/cover/983913/ [2] https://github.com/vivekgautam1/linux/tree/v5.2-rc4/sdm845-display-working [3] https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/drivers/iommu/arm-smmu.c?h=CogSystems-msm-49/msm-4.9&id=da765c6c75266b38191b38ef086274943f353ea7 [4] https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/drivers/iommu/arm-smmu.c?h=CogSystems-msm-49/msm-4.9&id=8696005aaaf745de68f57793c1a534a34345c30a Vivek Gautam (4): firmware: qcom_scm-64: Add atomic version of qcom_scm_call firmware/qcom_scm: Add scm call to handle smmu errata iommu/arm-smmu: Add support to handle Qcom's wait-for-safe logic arm64: dts/sdm845: Enable FW implemented safe sequence handler on MTP arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 + drivers/firmware/qcom_scm-32.c | 5 ++ drivers/firmware/qcom_scm-64.c | 149 ++++++++++++++++++++++++----------- drivers/firmware/qcom_scm.c | 6 ++ drivers/firmware/qcom_scm.h | 5 ++ drivers/iommu/arm-smmu.c | 16 ++++ include/linux/qcom_scm.h | 2 + 7 files changed, 140 insertions(+), 44 deletions(-) -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: Vivek Gautam <vivek.gautam@codeaurora.org> To: agross@kernel.org, robh+dt@kernel.org, will.deacon@arm.com, robin.murphy@arm.com, joro@8bytes.org, bjorn.andersson@linaro.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org Cc: david.brown@linaro.org, linux-kernel@vger.kernel.org Subject: [PATCH v3 0/4] Qcom smmu-500 wait-for-safe handling for sdm845 Date: Wed, 12 Jun 2019 12:45:50 +0530 [thread overview] Message-ID: <20190612071554.13573-1-vivek.gautam@codeaurora.org> (raw) Subject changed, older subject was - Qcom smmu-500 TLB invalidation errata for sdm845. Previous version of the patches are at [1]: Qcom's implementation of smmu-500 on sdm845 adds a hardware logic called wait-for-safe. This logic helps in meeting the invalidation requirements from 'real-time clients', such as display and camera. This wait-for-safe logic ensures that the invalidations happen after getting an ack from these devices. In this patch-series we are disabling this wait-for-safe logic from the arm-smmu driver's probe as with this enabled the hardware tries to throttle invalidations from 'non-real-time clients', such as USB and UFS. For detailed information please refer to patch [3/4] in this series. I have included the device tree patch too in this series for someone who would like to test out this. Here's a branch [2] that gets display on MTP SDM845 device. This patch series is inspired from downstream work to handle under-performance issues on real-time clients on sdm845. In downstream we add separate page table ops to handle TLB maintenance and toggle wait-for-safe in tlb_sync call so that achieve required performance for display and camera [3, 4]. Changes since v2: * Dropped the patch to add atomic io_read/write scm API. * Removed support for any separate page table ops to handle wait-for-safe. Currently just disabling this wait-for-safe logic from arm_smmu_device_probe() to achieve performance on USB/UFS on sdm845. * Added a device tree patch to add smmu option for fw-implemented support for SCM call to take care of SAFE toggling. Changes since v1: * Addressed Will and Robin's comments: - Dropped the patch[4] that forked out __arm_smmu_tlb_inv_range_nosync(), and __arm_smmu_tlb_sync(). - Cleaned up the errata patch further to use downstream polling mechanism for tlb sync. * No change in SCM call patches - patches 1 to 3. [1] https://lore.kernel.org/patchwork/cover/983913/ [2] https://github.com/vivekgautam1/linux/tree/v5.2-rc4/sdm845-display-working [3] https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/drivers/iommu/arm-smmu.c?h=CogSystems-msm-49/msm-4.9&id=da765c6c75266b38191b38ef086274943f353ea7 [4] https://source.codeaurora.org/quic/la/kernel/msm-4.9/commit/drivers/iommu/arm-smmu.c?h=CogSystems-msm-49/msm-4.9&id=8696005aaaf745de68f57793c1a534a34345c30a Vivek Gautam (4): firmware: qcom_scm-64: Add atomic version of qcom_scm_call firmware/qcom_scm: Add scm call to handle smmu errata iommu/arm-smmu: Add support to handle Qcom's wait-for-safe logic arm64: dts/sdm845: Enable FW implemented safe sequence handler on MTP arch/arm64/boot/dts/qcom/sdm845.dtsi | 1 + drivers/firmware/qcom_scm-32.c | 5 ++ drivers/firmware/qcom_scm-64.c | 149 ++++++++++++++++++++++++----------- drivers/firmware/qcom_scm.c | 6 ++ drivers/firmware/qcom_scm.h | 5 ++ drivers/iommu/arm-smmu.c | 16 ++++ include/linux/qcom_scm.h | 2 + 7 files changed, 140 insertions(+), 44 deletions(-) -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next reply other threads:[~2019-06-12 7:16 UTC|newest] Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-12 7:15 Vivek Gautam [this message] 2019-06-12 7:15 ` [PATCH v3 0/4] Qcom smmu-500 wait-for-safe handling for sdm845 Vivek Gautam 2019-06-12 7:15 ` [PATCH v3 1/4] firmware: qcom_scm-64: Add atomic version of qcom_scm_call Vivek Gautam 2019-06-12 7:15 ` Vivek Gautam 2019-06-18 17:55 ` Will Deacon 2019-06-18 17:55 ` Will Deacon 2019-06-19 11:34 ` Vivek Gautam 2019-06-19 11:34 ` Vivek Gautam 2019-06-19 11:34 ` Vivek Gautam 2019-08-05 22:27 ` Bjorn Andersson 2019-08-05 22:27 ` Bjorn Andersson 2019-08-05 22:27 ` Bjorn Andersson 2019-08-08 11:35 ` Vivek Gautam 2019-08-08 11:35 ` Vivek Gautam 2019-08-08 11:35 ` Vivek Gautam 2019-08-08 16:30 ` Will Deacon 2019-08-08 16:30 ` Will Deacon 2019-08-08 16:30 ` Will Deacon 2019-06-12 7:15 ` [PATCH v3 2/4] firmware/qcom_scm: Add scm call to handle smmu errata Vivek Gautam 2019-06-12 7:15 ` Vivek Gautam 2019-06-12 7:15 ` [PATCH v3 3/4] iommu/arm-smmu: Add support to handle Qcom's wait-for-safe logic Vivek Gautam 2019-06-12 7:15 ` Vivek Gautam 2019-06-14 4:05 ` Bjorn Andersson 2019-06-14 4:05 ` Bjorn Andersson 2019-06-14 4:05 ` Bjorn Andersson 2019-06-14 9:18 ` Vivek Gautam 2019-06-14 9:18 ` Vivek Gautam 2019-06-18 17:52 ` Will Deacon 2019-06-18 17:52 ` Will Deacon 2019-06-24 10:28 ` Vivek Gautam 2019-06-24 10:28 ` Vivek Gautam 2019-06-24 10:28 ` Vivek Gautam 2019-06-24 17:03 ` Will Deacon 2019-06-24 17:03 ` Will Deacon 2019-06-24 17:03 ` Will Deacon 2019-06-25 7:04 ` Vivek Gautam 2019-06-25 7:04 ` Vivek Gautam 2019-06-25 7:04 ` Vivek Gautam 2019-06-25 13:39 ` Will Deacon 2019-06-25 13:39 ` Will Deacon 2019-06-25 13:39 ` Will Deacon 2019-06-26 6:33 ` Vivek Gautam 2019-06-26 6:33 ` Vivek Gautam 2019-06-26 6:33 ` Vivek Gautam 2019-06-26 14:48 ` Will Deacon 2019-06-26 14:48 ` Will Deacon 2019-06-26 14:48 ` Will Deacon 2019-06-27 7:05 ` Vivek Gautam 2019-06-27 7:05 ` Vivek Gautam 2019-06-27 7:05 ` Vivek Gautam 2019-06-14 13:15 ` Marc Gonzalez 2019-06-14 13:15 ` Marc Gonzalez 2019-06-17 9:50 ` Vivek Gautam 2019-06-17 9:50 ` Vivek Gautam 2019-06-17 10:48 ` Marc Gonzalez 2019-06-17 10:48 ` Marc Gonzalez 2019-06-12 7:15 ` [PATCH v3 4/4] arm64: dts/sdm845: Enable FW implemented safe sequence handler on MTP Vivek Gautam 2019-06-12 7:15 ` Vivek Gautam 2019-06-14 4:06 ` Bjorn Andersson 2019-06-14 4:06 ` Bjorn Andersson 2019-06-14 4:06 ` Bjorn Andersson 2019-06-14 9:01 ` Vivek Gautam 2019-06-14 9:01 ` Vivek Gautam 2019-06-14 9:01 ` Vivek Gautam 2019-08-05 22:26 ` Bjorn Andersson 2019-08-05 22:26 ` Bjorn Andersson 2019-08-05 22:26 ` Bjorn Andersson 2019-08-11 16:08 ` Vivek Gautam 2019-08-11 16:08 ` Vivek Gautam 2019-08-11 16:08 ` Vivek Gautam 2019-08-11 19:01 ` Bjorn Andersson 2019-08-11 19:01 ` Bjorn Andersson 2019-08-11 19:01 ` Bjorn Andersson
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=20190612071554.13573-1-vivek.gautam@codeaurora.org \ --to=vivek.gautam@codeaurora.org \ --cc=agross@kernel.org \ --cc=bjorn.andersson@linaro.org \ --cc=david.brown@linaro.org \ --cc=devicetree@vger.kernel.org \ --cc=iommu@lists.linux-foundation.org \ --cc=joro@8bytes.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=robh+dt@kernel.org \ --cc=robin.murphy@arm.com \ --cc=will.deacon@arm.com \ /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.