summaryrefslogtreecommitdiffstats
path: root/tools/perf/pmu-events/jevents.py
diff options
context:
space:
mode:
authorBernhard M. Wiedemann <bwiedemann@suse.de>2023-03-21 07:30:32 +0100
committerArnaldo Carvalho de Melo <acme@redhat.com>2023-03-21 14:06:08 +0100
commit636203670716c2a8d76791d6b8f4c4cd76e8c701 (patch)
treea7aba2bc8e61cb85b9379ce1d603abacbaf5c809 /tools/perf/pmu-events/jevents.py
parentperf kvm: Delete histograms entries before exiting (diff)
downloadlinux-636203670716c2a8d76791d6b8f4c4cd76e8c701.tar.xz
linux-636203670716c2a8d76791d6b8f4c4cd76e8c701.zip
perf jevents: Sort list of input files
Without this, pmu-events.c would be generated with variations in ordering depending on non-deterministic filesystem readdir order. I tested that pmu-events.c still has the same number of lines and that perf list output works. This patch was done while working on reproducible builds for openSUSE, but also solves issues in Debian [1] and other distributions. [1] https://tests.reproducible-builds.org/debian/rb-pkg/unstable/i386/linux.html Signed-off-by: Bernhard M. Wiedemann <bwiedemann@suse.de> Cc: Ian Rogers <irogers@google.com> Link: https://lore.kernel.org/r/20230321063032.19804-1-bwiedemann@suse.de Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/pmu-events/jevents.py')
-rwxr-xr-xtools/perf/pmu-events/jevents.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py
index 533071a014d7..ca99b9cfe4ad 100755
--- a/tools/perf/pmu-events/jevents.py
+++ b/tools/perf/pmu-events/jevents.py
@@ -922,7 +922,7 @@ def main() -> None:
def ftw(path: str, parents: Sequence[str],
action: Callable[[Sequence[str], os.DirEntry], None]) -> None:
"""Replicate the directory/file walking behavior of C's file tree walk."""
- for item in os.scandir(path):
+ for item in sorted(os.scandir(path), key=lambda e: e.name):
if _args.model != 'all' and item.is_dir():
# Check if the model matches one in _args.model.
if len(parents) == _args.model.split(',')[0].count('/'):