mirror of
https://github.com/torvalds/linux.git
synced 2024-11-19 10:31:48 +00:00
e9d32c1bf0
For some architectures (like arm), there are architecture- defined events. Sometimes these events may be "recommended" according to the architecture standard, in that the implementer is free ignore the "recommendation" and create its custom event. This patch adds support for parsing standard events from arch-defined JSONs, and fixing up vendor events when they have implemented these events as standard. Support is also ensured that the vendor may implement their own custom events. A new step is added to the pmu events parsing to fix up the vendor events with the arch-standard events. The arch-defined JSONs must be placed in the arch root folder for preprocessing prior to tree JSON processing. In the vendor JSON, to specify that the arch event is supported, the keyword "ArchStdEvent" should be used, like this: [ { "ArchStdEvent": "L1D_CACHE_WR", }, ] Matching is based on the "EventName" field in the architecture JSON. No other JSON objects are strictly required. However, for other objects added, these take precedence over architecture defined standard events, thus supporting separate events which have the same event code. Signed-off-by: John Garry <john.garry@huawei.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Shaokun Zhang <zhangshaokun@hisilicon.com> Cc: Will Deacon <will.deacon@arm.com> Cc: William Cohen <wcohen@redhat.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linuxarm@huawei.com Link: http://lkml.kernel.org/r/1520506716-197429-8-git-send-email-john.garry@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
16 lines
523 B
Plaintext
16 lines
523 B
Plaintext
hostprogs := jevents
|
|
|
|
jevents-y += json.o jsmn.o jevents.o
|
|
CHOSTFLAGS_jevents.o = -I$(srctree)/tools/include
|
|
pmu-events-y += pmu-events.o
|
|
JDIR = pmu-events/arch/$(SRCARCH)
|
|
JSON = $(shell [ -d $(JDIR) ] && \
|
|
find $(JDIR) -name '*.json' -o -name 'mapfile.csv')
|
|
|
|
#
|
|
# Locate/process JSON files in pmu-events/arch/
|
|
# directory and create tables in pmu-events.c.
|
|
#
|
|
$(OUTPUT)pmu-events/pmu-events.c: $(JSON) $(JEVENTS)
|
|
$(Q)$(call echo-cmd,gen)$(JEVENTS) $(SRCARCH) pmu-events/arch $(OUTPUT)pmu-events/pmu-events.c $(V)
|