Re: [PATCH v2 10/27] dts: bindings: Restrict coresight tmc-etr scatter-gather mode

From: Suzuki K Poulose
Date: Tue May 08 2018 - 11:48:45 EST


On 04/05/18 23:56, Rob Herring wrote:
On Thu, May 3, 2018 at 3:32 PM, Mathieu Poirier
<mathieu.poirier@xxxxxxxxxx> wrote:
On 1 May 2018 at 07:13, Rob Herring <robh@xxxxxxxxxx> wrote:
On Tue, May 01, 2018 at 10:10:40AM +0100, Suzuki K Poulose wrote:
We are about to add the support for ETR builtin scatter-gather mode
for dealing with large amount of trace buffers. However, on some of
the platforms, using the ETR SG mode can lock up the system due to
the way the ETR is connected to the memory subsystem.

In SG mode, the ETR performs READ from the scatter-gather table to
fetch the next page and regular WRITE of trace data. If the READ
operation doesn't complete(due to the memory subsystem issues,
which we have seen on a couple of platforms) the trace WRITE
cannot proceed leading to issues. So, we by default do not
use the SG mode, unless it is known to be safe on the platform.
We define a DT property for the TMC node to specify whether we
have a proper SG mode.


---
Documentation/devicetree/bindings/arm/coresight.txt | 3 +++
drivers/hwtracing/coresight/coresight-tmc.c | 8 +++++++-
2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/arm/coresight.txt b/Documentation/devicetree/bindings/arm/coresight.txt
index cdd84d0..7c0c8f0 100644
--- a/Documentation/devicetree/bindings/arm/coresight.txt
+++ b/Documentation/devicetree/bindings/arm/coresight.txt
@@ -88,6 +88,9 @@ its hardware characteristcs.
* arm,buffer-size: size of contiguous buffer space for TMC ETR
(embedded trace router)

+ * scatter-gather: boolean. Indicates that the TMC-ETR can safely
+ use the SG mode on this system.
+

Needs a vendor prefix.


Thinking further on this, do we need to make it device specific as
well - something like "arm,etr-scatter-gather"? That way we don't
have to redefine "scatter-gather" for other ARM devices if they happen
to need the same property but for different reasons.

No. If we had a bunch of cases, then we'd probably want to have just
'scatter-gather'.

Does it mean "arm,scatter-gather" ? If we ever wanted to add the device
specific information, I would prefer to go with "arm,tmc-scatter-gather"
and not "etr-scatter-gather". They both could mean different things.


BTW, if SG had already been supported, then I'd say this is a quirk
and we should invert this property. Otherwise, you'd be disabling once
enabled SG and require working platforms to update their dtb. Of
course, I shouldn't really let the state of an OS driver influence the
DT binding.


The SG support is added with this series. So, the OS has never made use
of the feature.

Suzuki