Re: [PATCH v2 10/27] dts: bindings: Restrict coresight tmc-etr scatter-gather mode
From: Rob Herring
Date: Fri May 04 2018 - 18:57:03 EST
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.
>>>
>>> Cc: Mathieu Poirier <matheiu.poirier@xxxxxxxxxx>
>>> Cc: Mike Leach <mike.leach@xxxxxxxxxx>
>>> Cc: Mark Rutland <mark.rutland@xxxxxxx>
>>> Cc: John Horley <john.horley@xxxxxxx>
>>> Cc: Robert Walker <robert.walker@xxxxxxx>
>>> Cc: devicetree@xxxxxxxxxxxxxxx
>>> Cc: frowand.list@xxxxxxxxx
>>> Cc: Rob Herring <robh@xxxxxxxxxx>
>>> Signed-off-by: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
>>> ---
>>> 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'.
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.
Rob