This is the fourth iteration of a set that adds the capability to communicate event specific configuration to PMU kernel drivers using an ioctl(). Though targeted at the identification of CoreSight sinks when operating in CPU-wide trace scenarios the functionality is made generic enough for anyone to use. The work fits in a wider scheme to support CPU-wide trace scenarios on CoreSight that is available here[1]. If someone is to test the functionality using this branch, note that only dumping of CPU-wide trace data is working. Full decoding capability is being verified. Patch 1 to 3 deal with kernel enhancement to the perf core while patch 4 is CoreSight specific. Patches 5 and 6 concentrate on the perf tools. # Before this set: root@juno:/home/linaro# perf record -e cs_etm/@20070000.etr/ -C 2,3 sleep 1 failed to mmap with 12 (Cannot allocate memory) # After this set: root@juno:/home/linaro# perf record -e cs_etm/@20070000.etr/ -C 2,3 sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 4.145 MB perf.data ] Thanks, Mathieu [1]. https://git.linaro.org/people/mathieu.poirier/coresight.git/log/?h=cpu-wide-coresight --- Changes for V4: . Made passing of information between ioctl() and PMU simpler. . Rebased to 4.20-rc4 Mathieu Poirier (6): perf: Introduce ioctl to communicate driver configuration to kernel perf/core: Use ioctl to communicate driver configuration to kernel perf/aux: Make perf_event accessible to setup_aux() coresight: Use PMU driver configuration for sink selection perf tools: Make perf_evsel accessible to PMU driver configuration code perf tools: Use ioctl function to send sink configuration to kernel arch/s390/kernel/perf_cpum_sf.c | 6 +-- arch/x86/events/intel/bts.c | 4 +- arch/x86/events/intel/pt.c | 5 +- drivers/hwtracing/coresight/coresight-etm-perf.c | 64 ++++++++++++++++------ drivers/perf/arm_spe_pmu.c | 6 +-- include/linux/perf_event.h | 40 +++++++++++++- include/uapi/linux/perf_event.h | 1 + kernel/events/core.c | 69 ++++++++++++++++++++++++ kernel/events/ring_buffer.c | 2 +- tools/include/uapi/linux/perf_event.h | 1 + tools/perf/arch/arm/util/cs-etm.c | 67 ++++++++++++++++++++++- tools/perf/arch/arm/util/cs-etm.h | 3 +- tools/perf/util/drv_configs.c | 30 +++-------- tools/perf/util/evsel.c | 7 +++ tools/perf/util/evsel.h | 1 + tools/perf/util/pmu.h | 3 +- 16 files changed, 257 insertions(+), 52 deletions(-) -- 2.7.4