[PATCH V2] coresight: tmc: Make etr buffer mode user configurable from sysfs

Steve Clevenger OS scclevenger at os.amperecomputing.com
Mon Aug 21 12:40:22 PDT 2023


Hi Suzuki,

I may be able to test it this week. You've already pointed me at the
patch thread(s). The main holdup is I need to merge the 6.6 pending
platform work in order to use the Ampere ACPI. I couldn't get these
patches to apply directly to 6.4 last I tried.

Steve C.

On 8/18/2023 2:39 AM, Suzuki K Poulose wrote:
> Cc: Steve
> 
> Steve,
> 
> Are you able to test this with CATU ?
> 
> 
> On 18/08/2023 09:21, Anshuman Khandual wrote:
>> Currently TMC-ETR automatically selects the buffer mode from all
>> available
>> methods in the following sequentially fallback manner - also in that
>> order.
>>
>> 1. FLAT mode with or without IOMMU
>> 2. TMC-ETR-SG (scatter gather) mode when available
>> 3. CATU mode when available
>>
>> But this order might not be ideal for all situations. For example if
>> there
>> is a CATU connected to ETR, it may be better to use TMC-ETR scatter
>> gather
>> method, rather than CATU. But hard coding such order changes will prevent
>> us from testing or using a particular mode. This change provides
>> following
>> new sysfs tunables for the user to control TMC-ETR buffer mode
>> explicitly,
>> if required. This adds following new sysfs files for buffer mode
>> selection
>> purpose explicitly in the user space.
>>
>> /sys/bus/coresight/devices/tmc_etr<N>/buf_modes_available
>> /sys/bus/coresight/devices/tmc_etr<N>/buf_mode_preferred
>>
>> $ cat buf_modes_available
>> auto flat tmc-sg catu    ------------------> Supported TMC-ETR buffer
>> modes
>>
>> $ echo catu > buf_mode_preferred   -------> Explicit buffer mode request
>>
>> But explicit user request has to be within supported ETR buffer modes
>> only.
>> These sysfs interface files are exclussive to ETR, and hence these are
>> not
>> available for other TMC devices such as ETB or ETF etc.
>>
>> A new auto' mode (i.e ETR_MODE_AUTO) has been added to help fallback
>> to the
>> existing default behaviour, when user provided preferred buffer mode
>> fails.
>> ETR_MODE_FLAT and ETR_MODE_AUTO are always available as preferred modes.
>>
>> Cc: Suzuki K Poulose <suzuki.poulose at arm.com>
>> Cc: Mike Leach <mike.leach at linaro.org>
>> Cc: James Clark <james.clark at arm.com>
>> Cc: Leo Yan <leo.yan at linaro.org>
>> Cc: Alexander Shishkin <alexander.shishkin at linux.intel.com>
>> Cc: coresight at lists.linaro.org
>> Cc: linux-arm-kernel at lists.infradead.org
>> Cc: linux-kernel at vger.kernel.org
>> Signed-off-by: Anshuman Khandual <anshuman.khandual at arm.com>
>> ---
>> This applies on v6.5-rc6
>>
>> Changes in V2:
>>
>> - Renamed sysfs file etr_buf_modes_available as buf_modes_available
>> - Renamed sysfs file buf_mode_current as buf_mode_preferred
>> - Renamed etr_supports_flat_mode() as etr_can_use_flat_mode()
>> - Renamed coresight_tmc_groups[] as coresight_etf_groups[]
>> - Reused coresight_tmc_group[] for trigger_cntr and buffer_size
>> - Fallback trying ETR_MODE_AUTO when user preferred mode fails
>> - Moved ETR sysfs details into coresight-tmc-etr.c
>> - Dropped etr_can_use_flat_mode() check while offering ETR_MODE_FLAT
>> in sysfs
>> - Moved struct etr_buf_hw inside coresight-tmc-etr.c
>> - Moved get_etr_buf_hw() and etr_can_use_flat_mode() inside
>> coresight-tmc-etr.c
>> - Updated month in
>> Documentation/ABI/testing/sysfs-bus-coresight-devices-tmc
>>
>> Changes in V1:
>>
>> https://lore.kernel.org/all/20230728084837.276551-1-anshuman.khandual@arm.com/
>>
>>   .../testing/sysfs-bus-coresight-devices-tmc   |  16 +++
>>   .../hwtracing/coresight/coresight-tmc-core.c  |  15 ++-
>>   .../hwtracing/coresight/coresight-tmc-etr.c   | 111 ++++++++++++++++--
>>   drivers/hwtracing/coresight/coresight-tmc.h   |   3 +
>>   4 files changed, 131 insertions(+), 14 deletions(-)
> 
> 
> Looks good to me.
> 
> Suzuki
> 
> 


More information about the linux-arm-kernel mailing list