[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241216-perf_syscalltbl-v3-0-239f032481d5@rivosinc.com>
Date: Mon, 16 Dec 2024 22:32:45 -0800
From: Charlie Jenkins <charlie@...osinc.com>
To: Peter Zijlstra <peterz@...radead.org>, Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Namhyung Kim <namhyung@...nel.org>, Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>, Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Mickaël Salaün <mic@...ikod.net>,
Günther Noack <gnoack@...gle.com>,
Christian Brauner <brauner@...nel.org>, Guo Ren <guoren@...nel.org>,
John Garry <john.g.garry@...cle.com>, Will Deacon <will@...nel.org>,
James Clark <james.clark@...aro.org>, Mike Leach <mike.leach@...aro.org>,
Leo Yan <leo.yan@...ux.dev>, Jonathan Corbet <corbet@....net>,
Björn Töpel <bjorn@...osinc.com>,
Arnd Bergmann <arnd@...db.de>
Cc: linux-kernel@...r.kernel.org, linux-perf-users@...r.kernel.org,
linux-riscv@...ts.infradead.org, linux-security-module@...r.kernel.org,
bpf@...r.kernel.org, linux-csky@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-doc@...r.kernel.org,
Charlie Jenkins <charlie@...osinc.com>
Subject: [PATCH v3 00/16] perf tools: Use generic syscall scripts for all
archs
Standardize the generation of syscall headers around syscall tables.
Previously each architecture independently selected how syscall headers
would be generated, or would not define a way and fallback onto
libaudit. Convert all architectures to use a standard syscall header
generation script and allow each architecture to override the syscall
table to use if they do not use the generic table.
As a result of these changes, no architecture will require libaudit, and
so the fallback case of using libaudit is removed by this series.
Testing:
I have tested that the syscall mappings of id to name generation works
as expected for every architecture, but I have only validated that perf
trace compiles and runs as expected on riscv, arm64, and x86_64.
Signed-off-by: Charlie Jenkins <charlie@...osinc.com>
---
Changes in v3:
- Fix compiliation when OUTPUT is empty
- Correct unused headers to be .h instead of .c (Namhyung)
- Make variable definition of supported archs (Namhyung)
- Convert += into := for syscalls headers (Namhyung)
- Link to v2: https://lore.kernel.org/r/20241212-perf_syscalltbl-v2-0-f8ca984ffe40@rivosinc.com
Changes in v2:
- Rebase onto 6.13-rc2
- Fix output path so it generates to /tools/perf/arch properly
- Link to v1: https://lore.kernel.org/r/20241104-perf_syscalltbl-v1-0-9adae5c761ef@rivosinc.com
---
Charlie Jenkins (16):
perf tools: Create generic syscall table support
perf tools: arc: Support generic syscall headers
perf tools: csky: Support generic syscall headers
perf tools: arm: Support syscall headers
perf tools: sh: Support syscall headers
perf tools: sparc: Support syscall headers
perf tools: xtensa: Support syscall header
perf tools: x86: Use generic syscall scripts
perf tools: alpha: Support syscall header
perf tools: parisc: Support syscall header
perf tools: arm64: Use syscall table
perf tools: loongarch: Use syscall table
perf tools: mips: Use generic syscall scripts
perf tools: powerpc: Use generic syscall table scripts
perf tools: s390: Use generic syscall table scripts
perf tools: Remove dependency on libaudit
Documentation/admin-guide/workload-tracing.rst | 2 +-
tools/build/feature/Makefile | 4 -
tools/build/feature/test-libaudit.c | 11 -
tools/perf/Documentation/perf-check.txt | 1 -
tools/perf/Makefile.config | 39 +-
tools/perf/Makefile.perf | 12 +-
tools/perf/arch/alpha/entry/syscalls/Kbuild | 2 +
.../arch/alpha/entry/syscalls/Makefile.syscalls | 5 +
tools/perf/arch/alpha/entry/syscalls/syscall.tbl | 504 ++++++++++++++++++++
tools/perf/arch/alpha/include/syscall_table.h | 2 +
tools/perf/arch/arc/entry/syscalls/Kbuild | 2 +
.../perf/arch/arc/entry/syscalls/Makefile.syscalls | 3 +
tools/perf/arch/arc/include/syscall_table.h | 2 +
tools/perf/arch/arm/entry/syscalls/Kbuild | 4 +
.../perf/arch/arm/entry/syscalls/Makefile.syscalls | 2 +
tools/perf/arch/arm/entry/syscalls/syscall.tbl | 483 +++++++++++++++++++
tools/perf/arch/arm/include/syscall_table.h | 2 +
tools/perf/arch/arm64/Makefile | 22 -
tools/perf/arch/arm64/entry/syscalls/Kbuild | 3 +
.../arch/arm64/entry/syscalls/Makefile.syscalls | 6 +
tools/perf/arch/arm64/entry/syscalls/mksyscalltbl | 46 --
.../perf/arch/arm64/entry/syscalls/syscall_32.tbl | 476 +++++++++++++++++++
.../perf/arch/arm64/entry/syscalls/syscall_64.tbl | 1 +
tools/perf/arch/arm64/include/syscall_table.h | 8 +
tools/perf/arch/csky/entry/syscalls/Kbuild | 2 +
.../arch/csky/entry/syscalls/Makefile.syscalls | 3 +
tools/perf/arch/csky/include/syscall_table.h | 2 +
tools/perf/arch/loongarch/Makefile | 22 -
tools/perf/arch/loongarch/entry/syscalls/Kbuild | 2 +
.../loongarch/entry/syscalls/Makefile.syscalls | 3 +
.../arch/loongarch/entry/syscalls/mksyscalltbl | 45 --
tools/perf/arch/loongarch/include/syscall_table.h | 2 +
tools/perf/arch/mips/entry/syscalls/Kbuild | 2 +
.../arch/mips/entry/syscalls/Makefile.syscalls | 5 +
tools/perf/arch/mips/entry/syscalls/mksyscalltbl | 32 --
tools/perf/arch/mips/include/syscall_table.h | 2 +
tools/perf/arch/parisc/entry/syscalls/Kbuild | 3 +
.../arch/parisc/entry/syscalls/Makefile.syscalls | 6 +
tools/perf/arch/parisc/entry/syscalls/syscall.tbl | 463 +++++++++++++++++++
tools/perf/arch/parisc/include/syscall_table.h | 8 +
tools/perf/arch/powerpc/Makefile | 25 -
tools/perf/arch/powerpc/entry/syscalls/Kbuild | 3 +
.../arch/powerpc/entry/syscalls/Makefile.syscalls | 6 +
.../perf/arch/powerpc/entry/syscalls/mksyscalltbl | 39 --
tools/perf/arch/powerpc/include/syscall_table.h | 8 +
tools/perf/arch/riscv/Makefile | 22 -
tools/perf/arch/riscv/entry/syscalls/Kbuild | 2 +
.../arch/riscv/entry/syscalls/Makefile.syscalls | 4 +
tools/perf/arch/riscv/entry/syscalls/mksyscalltbl | 47 --
tools/perf/arch/riscv/include/syscall_table.h | 8 +
tools/perf/arch/s390/Makefile | 21 -
tools/perf/arch/s390/entry/syscalls/Kbuild | 2 +
.../arch/s390/entry/syscalls/Makefile.syscalls | 5 +
tools/perf/arch/s390/entry/syscalls/mksyscalltbl | 32 --
tools/perf/arch/s390/include/syscall_table.h | 2 +
tools/perf/arch/sh/entry/syscalls/Kbuild | 2 +
.../perf/arch/sh/entry/syscalls/Makefile.syscalls | 4 +
tools/perf/arch/sh/entry/syscalls/syscall.tbl | 472 +++++++++++++++++++
tools/perf/arch/sh/include/syscall_table.h | 2 +
tools/perf/arch/sparc/entry/syscalls/Kbuild | 3 +
.../arch/sparc/entry/syscalls/Makefile.syscalls | 5 +
tools/perf/arch/sparc/entry/syscalls/syscall.tbl | 514 +++++++++++++++++++++
tools/perf/arch/sparc/include/syscall_table.h | 8 +
tools/perf/arch/x86/Build | 1 -
tools/perf/arch/x86/Makefile | 25 -
tools/perf/arch/x86/entry/syscalls/Kbuild | 3 +
.../perf/arch/x86/entry/syscalls/Makefile.syscalls | 6 +
tools/perf/arch/x86/entry/syscalls/syscalltbl.sh | 42 --
tools/perf/arch/x86/include/syscall_table.h | 8 +
tools/perf/arch/xtensa/entry/syscalls/Kbuild | 2 +
.../arch/xtensa/entry/syscalls/Makefile.syscalls | 4 +
tools/perf/arch/xtensa/entry/syscalls/syscall.tbl | 439 ++++++++++++++++++
tools/perf/arch/xtensa/include/syscall_table.h | 2 +
tools/perf/builtin-check.c | 1 -
tools/perf/builtin-help.c | 2 -
tools/perf/builtin-trace.c | 30 --
tools/perf/check-headers.sh | 9 +
tools/perf/perf.c | 6 +-
tools/perf/scripts/Makefile.syscalls | 61 +++
tools/perf/scripts/syscalltbl.sh | 86 ++++
tools/perf/tests/make | 7 +-
tools/perf/util/env.c | 4 +-
tools/perf/util/generate-cmdlist.sh | 4 +-
tools/perf/util/syscalltbl.c | 90 +---
tools/scripts/syscall.tbl | 409 ++++++++++++++++
85 files changed, 4102 insertions(+), 619 deletions(-)
---
base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4
change-id: 20240913-perf_syscalltbl-6f98defcc6f5
--
- Charlie
Powered by blists - more mailing lists