All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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: link
Be 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.