On 3 December 2015 at 14:04, Mathieu Poirier <mathieu.poirier@xxxxxxxxxx> wrote: > This patchset aims to integrate configuration and control of > the Coresight tracers with the perf sub-system. > > The goal is to use PMUs to represent tracers and the auxiliary > buffer enhancement to collect processor traces. As such a lot > of work is done to move the current Coresight sysFS oriented > configuration and control commands to perf's AUX API. > > For the time being the work concentrates on ETMv3 and ETB1.0 > sink buffer. Work on ETMv4 and other type of sink buffers > will follow once a foundation has been established. > > Best regards, > Mathieu > > Changes since V5: > * Addressed Arnaldo's comment about using a struct perf_evlist rather > than a struct perf_session. > * Addressed kbuild test robot's anomaly report [1]. > * Moved perf_aux_output_{begin|end} to etm_event_{start|stop} in > accordance with [2]. > > [1]. https://lkml.org/lkml/2015/11/30/46 > [2]. http://thread.gmane.org/gmane.linux.kernel/2099328/focus=2099343 > > Changes since V4: > * Reworked the way event configuration information is kept, fixing > a few corner cases when doing per CPU tracing. > * Rebased on 4.4-rc1. > * Added 'Cc' to specific perf related patches in the hope of suscitating > interest from reviewers, i.e perf maintainers. > > Changes since V3: > * Rebased to GKH's char-misc-next tree (e2d8680741ed). > > Changes since V2: > * Rebased to v4.3. > * Used the -M option to "git format-patch". > * Decoupled tracers and path - both are now completely independent. > * Moved path enablement/release to Perf's add/del functions. > * Moved PM runtime operations to the coresight core rather than > individual drivers. > * Enhanced mutual exclusion scheme between perf and sysFS. > * Removed architecture specific define in perf cmd line tool. > * Got rid of unused fields in structure 'cs_buffers'. > * Enhanced changelog for patch 16/26. > > Changes since V1: > * Fixed typos in typographical error in documentation. > * Moved to a multi session support scheme. > * Split static and dynamic tracer configuration. > * Fixed configuration for user and kernel space tracing. > * Using WARN_ON_ONCE() rather than WARN_ON(). > * Implemented strategy to prevent tracers from being used simultaneously. > * Changed sink_ops::unset_buffer() to sink_ops::reset_buffer(). > * Moves ETM's sysFS interface from driver core to dedicated file. > * Removed spinlock in "etm_cpu_id()". > * Aggregated PMU driver pieces in a single patch. > * Added user space changes and rebased everything to v4.3-rc5. > > Mathieu Poirier (26): > coresight: etm3x: moving etm_readl/writel to header file > coresight: etm3x: moving sysFS entries to dedicated file > coresight: etm3x: unlocking tracers in default arch init > coresight: etm3x: splitting struct etm_drvdata > coresight: etm3x: implementing 'cpu_id()' API > coresight: associating path with session rather than tracer > coresight: moving PM runtime operations to core framework > coresight: etm3x: adding operation mode for etm_enable() > coresight: add API to get sink from path > coresight: etm3x: set progbit to stop trace collection > coresight: etm3x: changing default trace configuration > coresight: etm3x: consolidating initial config > coresight: etm3x: implementing user/kernel mode tracing > coresight: etm3x: adding perf_get/set_config() API > coresight: etm3x: implementing perf_enable/disable() API > coresight: etb10: moving to local atomic operations > coresight: adding operation mode for sink->enable() > coresight: etb10: implementing AUX space API > coresight: updating documentation to reflect integration with perf > perf: changing pmu::setup_aux() parameter to include event > coresight: etm-perf: new PMU driver for ETM tracers > coresight: introducing a global trace ID function > perf tools: making function set_max_cpu_num() non static > perf tools: adding perf_evlist to *info_priv_size() > perf tools: making coresight PMU listable > perf tools: adding coresight etm PMU record capabilities > > Documentation/trace/coresight.txt | 138 +- > MAINTAINERS | 4 + > arch/x86/kernel/cpu/perf_event_intel_bts.c | 4 +- > arch/x86/kernel/cpu/perf_event_intel_pt.c | 5 +- > drivers/hwtracing/coresight/Kconfig | 1 + > drivers/hwtracing/coresight/Makefile | 4 +- > drivers/hwtracing/coresight/coresight-etb10.c | 277 +++- > drivers/hwtracing/coresight/coresight-etm-perf.c | 447 +++++ > drivers/hwtracing/coresight/coresight-etm-perf.h | 32 + > drivers/hwtracing/coresight/coresight-etm.h | 143 +- > .../hwtracing/coresight/coresight-etm3x-sysfs.c | 1442 ++++++++++++++++ > drivers/hwtracing/coresight/coresight-etm3x.c | 1754 +++++--------------- > drivers/hwtracing/coresight/coresight-etm4x.c | 8 +- > drivers/hwtracing/coresight/coresight-funnel.c | 2 - > drivers/hwtracing/coresight/coresight-priv.h | 15 + > .../coresight/coresight-replicator-qcom.c | 4 - > drivers/hwtracing/coresight/coresight-replicator.c | 2 - > drivers/hwtracing/coresight/coresight-tmc.c | 7 +- > drivers/hwtracing/coresight/coresight-tpiu.c | 4 +- > drivers/hwtracing/coresight/coresight.c | 330 ++-- > include/linux/coresight-pmu.h | 39 + > include/linux/coresight.h | 40 +- > include/linux/perf_event.h | 2 +- > kernel/events/ring_buffer.c | 2 +- > tools/perf/arch/arm/util/Build | 2 + > tools/perf/arch/arm/util/auxtrace.c | 48 + > tools/perf/arch/arm/util/cs_etm.c | 466 ++++++ > tools/perf/arch/arm/util/cs_etm.h | 44 + > tools/perf/arch/arm/util/pmu.c | 34 + > tools/perf/arch/x86/util/intel-bts.c | 4 +- > tools/perf/arch/x86/util/intel-pt.c | 4 +- > tools/perf/config/Makefile | 17 +- > tools/perf/util/auxtrace.c | 8 +- > tools/perf/util/auxtrace.h | 7 +- > tools/perf/util/cpumap.c | 2 +- > tools/perf/util/cpumap.h | 1 + > 36 files changed, 3753 insertions(+), 1590 deletions(-) > create mode 100644 drivers/hwtracing/coresight/coresight-etm-perf.c > create mode 100644 drivers/hwtracing/coresight/coresight-etm-perf.h > create mode 100644 drivers/hwtracing/coresight/coresight-etm3x-sysfs.c > create mode 100644 include/linux/coresight-pmu.h > create mode 100644 tools/perf/arch/arm/util/auxtrace.c > create mode 100644 tools/perf/arch/arm/util/cs_etm.c > create mode 100644 tools/perf/arch/arm/util/cs_etm.h > create mode 100644 tools/perf/arch/arm/util/pmu.c > > -- > 2.1.4 > Arnaldo, Peter and Ingo, I would like to queue this work for 4.5 but need your help with reviewing patches 20 [1], 23 [2], 24 [3], 25 [4] and 26 [5]. A "reviewed-by" would be greatly appreciated. Many thanks, Mathieu [1]. https://lkml.org/lkml/2015/12/3/682 [2]. https://lkml.org/lkml/2015/12/3/688 [3]. https://lkml.org/lkml/2015/12/3/683 [4]. https://lkml.org/lkml/2015/12/3/686 [5]. https://lkml.org/lkml/2015/12/3/684 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html