• Mike Leach's avatar
    coresight: trace-id: Add API to dynamically assign Trace ID values · 338a588e
    Mike Leach authored
    The existing mechanism to assign Trace ID values to sources is limited
    and does not scale for larger multicore / multi trace source systems.
    
    The API introduces functions that reserve IDs based on availabilty
    represented by a coresight_trace_id_map structure. This records the
    used and free IDs in a bitmap.
    
    CPU bound sources such as ETMs use the coresight_trace_id_get_cpu_id
    coresight_trace_id_put_cpu_id pair of functions. The API will record
    the ID associated with the CPU. This ensures that the same ID will be
    re-used while perf events are active on the CPU. The put_cpu_id function
    will pend release of the ID until all perf cs_etm sessions are complete.
    
    For backward compatibility the functions will attempt to use the same
    CPU IDs as the legacy system would have used if these are still available.
    
    Non-cpu sources, such as the STM can use coresight_trace_id_get_system_id /
    coresight_trace_id_put_system_id.
    Signed-off-by: default avatarMike Leach <mike.leach@linaro.org>
    [ Fix checkpatch warning in drivers/hwtracing/coresight/coresight-trace-id.c ]
    Signed-off-by: default avatarSuzuki K Poulose <suzuki.poulose@arm.com>
    Link: https://lore.kernel.org/r/20230116124928.5440-2-mike.leach@linaro.org
    338a588e
coresight-trace-id.h 4.73 KB