[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250107-perf_syscalltbl-v5-0-935de46d3175@rivosinc.com>
Date: Tue, 07 Jan 2025 18:07:48 -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>,
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 v5 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>
Reviewed-by: Ian Rogers <irogers@...gle.com>
Tested-by: Ian Rogers <irogers@...gle.com>
---
Changes in v5:
- Remove references to HAVE_SYSCALL_TABLE_SUPPORT that were
missed/recently introduced
- Rebase on perf-tools-next
- Install headers to $(OUTPUT)arch instead of $(OUTPUT)tools/perf/arch
- Link to v4: https://lore.kernel.org/r/20241218-perf_syscalltbl-v4-0-bc8caef2ca8e@rivosinc.com
Changes in v4:
- Remove audit_machine member of syscalltbl struct (Ian)
- Rebase on perf-tools-next
- Link to v3: https://lore.kernel.org/r/20241216-perf_syscalltbl-v3-0-239f032481d5@rivosinc.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 | 2 -
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 | 2 -
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 | 6 +-
tools/perf/util/generate-cmdlist.sh | 4 +-
tools/perf/util/syscalltbl.c | 90 +---
tools/perf/util/syscalltbl.h | 1 -
tools/scripts/syscall.tbl | 409 ++++++++++++++++
86 files changed, 4103 insertions(+), 623 deletions(-)
---
base-commit: 034b5b147bf7f44a45e39334725f8633b7ca8c3b
change-id: 20240913-perf_syscalltbl-6f98defcc6f5
--
- Charlie
Powered by blists - more mailing lists