perf jevents: Handle deleted JSONS in out of source builds
Make the source folders a dependency for the generated folder root so
that whenever a file is deleted from the source it will force a new
fresh copy of all the JSON files and avoid stale deleted files.
JSON_DIRS_OUTPUT_ROOT needs to be a dependency of LEGACY_CACHE_JSON so
that the root folder doesn't get cleaned after the legacy JSON is
generated. But this is a no-op with in-source builds as
JSON_DIRS_OUTPUT_ROOT is unset.
JSON_DIRS is added as a dependency of PMU_EVENTS_C which also forces a
re-build for in source builds when JSON files are deleted. This could
have also resulted in stale builds, but never a broken one.
Closes: https://lore.kernel.org/linux-next/aW5XSAo88_LBPSYI@sirena.org.uk/
Fixes: 4bb55de4ff ("perf jevents: Support copying the source json files to OUTPUT")
Reported-by: Mark Brown <broonie@kernel.org>
Signed-off-by: James Clark <james.clark@linaro.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
master
parent
612e4022c6
commit
297c9d96e3
|
|
@ -1,5 +1,6 @@
|
|||
pmu-events-y += pmu-events.o
|
||||
JSON = $(shell find pmu-events/arch -name '*.json' -o -name '*.csv')
|
||||
JSON_DIRS = $(shell find pmu-events/arch -type d)
|
||||
JDIR_TEST = pmu-events/arch/test
|
||||
JSON_TEST = $(shell [ -d $(JDIR_TEST) ] && \
|
||||
find $(JDIR_TEST) -name '*.json')
|
||||
|
|
@ -31,16 +32,23 @@ $(PMU_EVENTS_C): $(EMPTY_PMU_EVENTS_C)
|
|||
else
|
||||
# Copy checked-in json to OUTPUT for generation if it's an out of source build
|
||||
ifneq ($(OUTPUT),)
|
||||
$(OUTPUT)pmu-events/arch/%: pmu-events/arch/%
|
||||
# Remove all output directories when any source directory timestamp changes
|
||||
# so there are no stale deleted files
|
||||
JSON_DIRS_ROOT = $(OUTPUT)pmu-events/arch/
|
||||
$(JSON_DIRS_ROOT): $(JSON_DIRS)
|
||||
$(Q)$(call echo-cmd,gen)rm -rf $@
|
||||
$(Q)mkdir -p $@
|
||||
|
||||
$(OUTPUT)pmu-events/arch/%: pmu-events/arch/% $(JSON_DIRS_ROOT)
|
||||
$(call rule_mkdir)
|
||||
$(Q)$(call echo-cmd,gen)cp $< $@
|
||||
endif
|
||||
|
||||
$(LEGACY_CACHE_JSON): $(LEGACY_CACHE_PY)
|
||||
$(LEGACY_CACHE_JSON): $(LEGACY_CACHE_PY) $(JSON_DIRS_ROOT)
|
||||
$(call rule_mkdir)
|
||||
$(Q)$(call echo-cmd,gen)$(PYTHON) $(LEGACY_CACHE_PY) > $@
|
||||
|
||||
GEN_JSON = $(patsubst %,$(OUTPUT)%,$(JSON)) $(LEGACY_CACHE_JSON)
|
||||
GEN_JSON = $(patsubst %,$(OUTPUT)%,$(JSON)) $(LEGACY_CACHE_JSON) $(JSON_DIRS)
|
||||
|
||||
$(METRIC_TEST_LOG): $(METRIC_TEST_PY) $(METRIC_PY)
|
||||
$(call rule_mkdir)
|
||||
|
|
|
|||
Loading…
Reference in New Issue