From: Charlie Jenkins <charlie@rivosinc.com>
To: Ian Rogers <irogers@google.com>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Arnaldo Carvalho de Melo" <acme@kernel.org>,
"Namhyung Kim" <namhyung@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
"Jiri Olsa" <jolsa@kernel.org>,
"Adrian Hunter" <adrian.hunter@intel.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Mickaël Salaün" <mic@digikod.net>,
"Günther Noack" <gnoack@google.com>,
"Christian Brauner" <brauner@kernel.org>,
"Guo Ren" <guoren@kernel.org>,
"John Garry" <john.g.garry@oracle.com>,
"Will Deacon" <will@kernel.org>,
"James Clark" <james.clark@linaro.org>,
"Mike Leach" <mike.leach@linaro.org>,
"Leo Yan" <leo.yan@linux.dev>, "Jonathan Corbet" <corbet@lwn.net>,
"Björn Töpel" <bjorn@rivosinc.com>,
"Arnd Bergmann" <arnd@arndb.de>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
linux-riscv@lists.infradead.org,
linux-security-module@vger.kernel.org, bpf@vger.kernel.org,
linux-csky@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-doc@vger.kernel.org
Subject: Re: [PATCH v3 16/16] perf tools: Remove dependency on libaudit
Date: Tue, 17 Dec 2024 16:02:54 -0800 [thread overview]
Message-ID: <Z2IRLtRX6V18ktqq@ghost> (raw)
In-Reply-To: <CAP-5=fUNmqnYBLgOJOT9q6QbnhnDKxDXDEAtC-ZZ6orhXa5x3w@mail.gmail.com>
On Tue, Dec 17, 2024 at 03:36:27PM -0800, Ian Rogers wrote:
> On Mon, Dec 16, 2024 at 10:40 PM Charlie Jenkins <charlie@rivosinc.com> wrote:
> >
> > All architectures now support HAVE_SYSCALL_TABLE_SUPPORT, so the flag is
> > no longer needed. With the removal of the flag, the related
> > GENERIC_SYSCALL_TABLE can also be removed. libaudit was only used as a
> > fallback for when HAVE_SYSCALL_TABLE_SUPPORT was not defined, so
> > libaudit is also no longer needed for any architecture.
> >
> > Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
> > ---
> > 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 | 31 +--------------
> > tools/perf/Makefile.perf | 15 --------
> > tools/perf/builtin-check.c | 1 -
> > tools/perf/builtin-help.c | 2 -
> > tools/perf/builtin-trace.c | 30 ---------------
> > tools/perf/perf.c | 6 +--
> > tools/perf/tests/make | 7 +---
> > tools/perf/util/env.c | 4 +-
> > tools/perf/util/generate-cmdlist.sh | 4 +-
> > tools/perf/util/syscalltbl.c | 52 --------------------------
> > 14 files changed, 10 insertions(+), 160 deletions(-)
> >
> > diff --git a/Documentation/admin-guide/workload-tracing.rst b/Documentation/admin-guide/workload-tracing.rst
> > index b2e254ec8ee846afe78eede74a825b51c6ab119b..6be38c1b9c5bb4be899fd261c6d2911abcf959dc 100644
> > --- a/Documentation/admin-guide/workload-tracing.rst
> > +++ b/Documentation/admin-guide/workload-tracing.rst
> > @@ -83,7 +83,7 @@ scripts/ver_linux is a good way to check if your system already has
> > the necessary tools::
> >
> > sudo apt-get build-essentials flex bison yacc
> > - sudo apt install libelf-dev systemtap-sdt-dev libaudit-dev libslang2-dev libperl-dev libdw-dev
> > + sudo apt install libelf-dev systemtap-sdt-dev libslang2-dev libperl-dev libdw-dev
> >
> > cscope is a good tool to browse kernel sources. Let's install it now::
> >
> > diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
> > index 043dfd00fce72d8f651ccd9b3265a0183f500e5c..e0b63e9d0251abe6d5eafc6d2f26b940918b16ee 100644
> > --- a/tools/build/feature/Makefile
> > +++ b/tools/build/feature/Makefile
> > @@ -13,7 +13,6 @@ FILES= \
> > test-gtk2.bin \
> > test-gtk2-infobar.bin \
> > test-hello.bin \
> > - test-libaudit.bin \
> > test-libbfd.bin \
> > test-libbfd-buildid.bin \
> > test-disassembler-four-args.bin \
> > @@ -228,9 +227,6 @@ $(OUTPUT)test-libunwind-debug-frame-arm.bin:
> > $(OUTPUT)test-libunwind-debug-frame-aarch64.bin:
> > $(BUILD) -lelf -llzma -lunwind-aarch64
> >
> > -$(OUTPUT)test-libaudit.bin:
> > - $(BUILD) -laudit
> > -
> > $(OUTPUT)test-libslang.bin:
> > $(BUILD) -lslang
> >
> > diff --git a/tools/build/feature/test-libaudit.c b/tools/build/feature/test-libaudit.c
> > deleted file mode 100644
> > index f5b0863fa1ec240795339428d8deed98a946d405..0000000000000000000000000000000000000000
> > --- a/tools/build/feature/test-libaudit.c
> > +++ /dev/null
> > @@ -1,11 +0,0 @@
> > -// SPDX-License-Identifier: GPL-2.0
> > -#include <libaudit.h>
> > -
> > -extern int printf(const char *format, ...);
> > -
> > -int main(void)
> > -{
> > - printf("error message: %s\n", audit_errno_to_name(0));
> > -
> > - return audit_open();
> > -}
> > diff --git a/tools/perf/Documentation/perf-check.txt b/tools/perf/Documentation/perf-check.txt
> > index 31741499e7867c9b712227f31a2958fd641d474a..e6d2ceeb2ca7de850f41b1baa0375b6f984bb08f 100644
> > --- a/tools/perf/Documentation/perf-check.txt
> > +++ b/tools/perf/Documentation/perf-check.txt
> > @@ -51,7 +51,6 @@ feature::
> > dwarf_getlocations / HAVE_LIBDW_SUPPORT
> > dwarf-unwind / HAVE_DWARF_UNWIND_SUPPORT
> > auxtrace / HAVE_AUXTRACE_SUPPORT
> > - libaudit / HAVE_LIBAUDIT_SUPPORT
> > libbfd / HAVE_LIBBFD_SUPPORT
> > libcapstone / HAVE_LIBCAPSTONE_SUPPORT
> > libcrypto / HAVE_LIBCRYPTO_SUPPORT
> > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> > index 3f82ba907381049213c055ab10c3fe14d9572073..a57b2364578f57e31476f5041a06a0cd22d8b27e 100644
> > --- a/tools/perf/Makefile.config
> > +++ b/tools/perf/Makefile.config
> > @@ -28,20 +28,7 @@ include $(srctree)/tools/scripts/Makefile.arch
> >
> > $(call detected_var,SRCARCH)
> >
> > -ifneq ($(NO_SYSCALL_TABLE),1)
> > - NO_SYSCALL_TABLE := 1
> > -
> > - # architectures that use the generic syscall table scripts
> > - ifneq ($(filter $(SRCARCH), $(generic_syscall_table_archs)),)
> > - NO_SYSCALL_TABLE := 0
> > - CFLAGS += -DGENERIC_SYSCALL_TABLE
> > - CFLAGS += -I$(OUTPUT)tools/perf/arch/$(SRCARCH)/include/generated
> > - endif
> > -
> > - ifneq ($(NO_SYSCALL_TABLE),1)
> > - CFLAGS += -DHAVE_SYSCALL_TABLE_SUPPORT
> > - endif
> > -endif
> > +CFLAGS += -I$(OUTPUT)tools/perf/arch/$(SRCARCH)/include/generated
> >
> > # Additional ARCH settings for ppc
> > ifeq ($(SRCARCH),powerpc)
> > @@ -755,21 +742,7 @@ ifndef NO_LIBUNWIND
> > endif
> >
> > ifneq ($(NO_LIBTRACEEVENT),1)
> > - ifeq ($(NO_SYSCALL_TABLE),0)
> > - $(call detected,CONFIG_TRACE)
> > - else
> > - ifndef NO_LIBAUDIT
> > - $(call feature_check,libaudit)
> > - ifneq ($(feature-libaudit), 1)
> > - $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev)
> > - NO_LIBAUDIT := 1
> > - else
> > - CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
> > - EXTLIBS += -laudit
> > - $(call detected,CONFIG_TRACE)
> > - endif
> > - endif
> > - endif
> > + $(call detected,CONFIG_TRACE)
> > endif
> >
> > ifndef NO_LIBCRYPTO
> > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> > index 2c6a509c800d3037933c9b49e5a7dafbf78fda0c..ab2d075ff3a23350a5eea12508cf0376f1d9f4e8 100644
> > --- a/tools/perf/Makefile.perf
> > +++ b/tools/perf/Makefile.perf
> > @@ -59,8 +59,6 @@ include ../scripts/utilities.mak
> > #
> > # Define NO_LIBNUMA if you do not want numa perf benchmark
> > #
> > -# Define NO_LIBAUDIT if you do not want libaudit support
> > -#
> > # Define NO_LIBBIONIC if you do not want bionic support
> > #
> > # Define NO_LIBCRYPTO if you do not want libcrypto (openssl) support
> > @@ -119,10 +117,6 @@ include ../scripts/utilities.mak
> > #
> > # Define LIBBPF_DYNAMIC to enable libbpf dynamic linking.
> > #
> > -# Define NO_SYSCALL_TABLE=1 to disable the use of syscall id to/from name tables
> > -# generated from the kernel .tbl or unistd.h files and use, if available, libaudit
> > -# for doing the conversions to/from strings/id.
> > -#
> > # Define NO_LIBPFM4 to disable libpfm4 events extension.
> > #
> > # Define NO_LIBDEBUGINFOD if you do not want support debuginfod
> > @@ -310,11 +304,7 @@ ifeq ($(filter feature-dump,$(MAKECMDGOALS)),feature-dump)
> > FEATURE_TESTS := all
> > endif
> > endif
> > -# architectures that use the generic syscall table
> > -generic_syscall_table_archs := riscv arc csky arm sh sparc xtensa x86 alpha parisc arm64 loongarch mips powerpc s390
> > -ifneq ($(filter $(SRCARCH), $(generic_syscall_table_archs)),)
> > include $(srctree)/tools/perf/scripts/Makefile.syscalls
> > -endif
> > include Makefile.config
> > endif
> >
> > @@ -1099,11 +1089,6 @@ endif
> > $(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
> > $(call QUIET_INSTALL, perf-iostat) \
> > $(INSTALL) $(OUTPUT)perf-iostat -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
> > -ifndef NO_LIBAUDIT
> > - $(call QUIET_INSTALL, strace/groups) \
> > - $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(STRACE_GROUPS_INSTDIR_SQ)'; \
> > - $(INSTALL) trace/strace/groups/* -m 644 -t '$(DESTDIR_SQ)$(STRACE_GROUPS_INSTDIR_SQ)'
> > -endif
> > ifndef NO_LIBPERL
> > $(call QUIET_INSTALL, perl-scripts) \
> > $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
> > diff --git a/tools/perf/builtin-check.c b/tools/perf/builtin-check.c
> > index 2346536a5ee14f91ecd10bd130a64676e871e1b2..7aed7b9f4f5270527ee1d36327eb6a01f196a46a 100644
> > --- a/tools/perf/builtin-check.c
> > +++ b/tools/perf/builtin-check.c
> > @@ -31,7 +31,6 @@ struct feature_status supported_features[] = {
> > FEATURE_STATUS("dwarf_getlocations", HAVE_LIBDW_SUPPORT),
> > FEATURE_STATUS("dwarf-unwind", HAVE_DWARF_UNWIND_SUPPORT),
> > FEATURE_STATUS("auxtrace", HAVE_AUXTRACE_SUPPORT),
> > - FEATURE_STATUS("libaudit", HAVE_LIBAUDIT_SUPPORT),
> > FEATURE_STATUS("libbfd", HAVE_LIBBFD_SUPPORT),
> > FEATURE_STATUS("libcapstone", HAVE_LIBCAPSTONE_SUPPORT),
> > FEATURE_STATUS("libcrypto", HAVE_LIBCRYPTO_SUPPORT),
> > diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
> > index 0854d3cd9f6a304cd9cb50ad430d5706d91df0e9..7be6fb6df595923c15ae51747d5bf17d867ae785 100644
> > --- a/tools/perf/builtin-help.c
> > +++ b/tools/perf/builtin-help.c
> > @@ -447,9 +447,7 @@ int cmd_help(int argc, const char **argv)
> > #ifdef HAVE_LIBELF_SUPPORT
> > "probe",
> > #endif
> > -#if defined(HAVE_LIBAUDIT_SUPPORT) || defined(HAVE_SYSCALL_TABLE_SUPPORT)
> > "trace",
> > -#endif
> > NULL };
> > const char *builtin_help_usage[] = {
> > "perf help [--all] [--man|--web|--info] [command]",
> > diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
> > index 6a1a128fe645014d0347ad4ec3e0c9e77ec59aee..0fddf34458db4fe4896d25f427f2ae29cb3aa15f 100644
> > --- a/tools/perf/builtin-trace.c
> > +++ b/tools/perf/builtin-trace.c
> > @@ -2069,30 +2069,11 @@ static int trace__read_syscall_info(struct trace *trace, int id)
> > const char *name = syscalltbl__name(trace->sctbl, id);
> > int err;
> >
> > -#ifdef HAVE_SYSCALL_TABLE_SUPPORT
> > if (trace->syscalls.table == NULL) {
> > trace->syscalls.table = calloc(trace->sctbl->syscalls.max_id + 1, sizeof(*sc));
> > if (trace->syscalls.table == NULL)
> > return -ENOMEM;
> > }
> > -#else
> > - if (id > trace->sctbl->syscalls.max_id || (id == 0 && trace->syscalls.table == NULL)) {
> > - // When using libaudit we don't know beforehand what is the max syscall id
> > - struct syscall *table = realloc(trace->syscalls.table, (id + 1) * sizeof(*sc));
> > -
> > - if (table == NULL)
> > - return -ENOMEM;
> > -
> > - // Need to memset from offset 0 and +1 members if brand new
> > - if (trace->syscalls.table == NULL)
> > - memset(table, 0, (id + 1) * sizeof(*sc));
> > - else
> > - memset(table + trace->sctbl->syscalls.max_id + 1, 0, (id - trace->sctbl->syscalls.max_id) * sizeof(*sc));
> > -
> > - trace->syscalls.table = table;
> > - trace->sctbl->syscalls.max_id = id;
> > - }
> > -#endif
> > sc = trace->syscalls.table + id;
> > if (sc->nonexistent)
> > return -EEXIST;
> > @@ -2439,18 +2420,7 @@ static struct syscall *trace__syscall_info(struct trace *trace,
> >
> > err = -EINVAL;
> >
> > -#ifdef HAVE_SYSCALL_TABLE_SUPPORT
> > if (id > trace->sctbl->syscalls.max_id) {
> > -#else
> > - if (id >= trace->sctbl->syscalls.max_id) {
> > - /*
> > - * With libaudit we don't know beforehand what is the max_id,
> > - * so we let trace__read_syscall_info() figure that out as we
> > - * go on reading syscalls.
> > - */
> > - err = trace__read_syscall_info(trace, id);
> > - if (err)
> > -#endif
> > goto out_cant_read;
> > }
> >
> > diff --git a/tools/perf/perf.c b/tools/perf/perf.c
> > index a2987f2cfe1a3958f53239ed1a4eec3f87d7466a..f0617cc41f5fe638986e5d8316a6b3056c2c4bc5 100644
> > --- a/tools/perf/perf.c
> > +++ b/tools/perf/perf.c
> > @@ -84,7 +84,7 @@ static struct cmd_struct commands[] = {
> > #endif
> > { "kvm", cmd_kvm, 0 },
> > { "test", cmd_test, 0 },
> > -#if defined(HAVE_LIBTRACEEVENT) && (defined(HAVE_LIBAUDIT_SUPPORT) || defined(HAVE_SYSCALL_TABLE_SUPPORT))
> > +#if defined(HAVE_LIBTRACEEVENT)
> > { "trace", cmd_trace, 0 },
> > #endif
> > { "inject", cmd_inject, 0 },
> > @@ -514,10 +514,6 @@ int main(int argc, const char **argv)
> > fprintf(stderr,
> > "trace command not available: missing libtraceevent devel package at build time.\n");
> > goto out;
> > -#elif !defined(HAVE_LIBAUDIT_SUPPORT) && !defined(HAVE_SYSCALL_TABLE_SUPPORT)
> > - fprintf(stderr,
> > - "trace command not available: missing audit-libs devel package at build time.\n");
> > - goto out;
> > #else
> > setup_path();
> > argv[0] = "trace";
> > diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> > index a7fcbd589752a90459815bd21075528c6dfa4d94..0ee94caf9ec19820a94a87dd46a7ccf1cefb844a 100644
> > --- a/tools/perf/tests/make
> > +++ b/tools/perf/tests/make
> > @@ -86,7 +86,6 @@ make_no_libdw_dwarf_unwind := NO_LIBDW_DWARF_UNWIND=1
> > make_no_backtrace := NO_BACKTRACE=1
> > make_no_libcapstone := NO_CAPSTONE=1
> > make_no_libnuma := NO_LIBNUMA=1
> > -make_no_libaudit := NO_LIBAUDIT=1
> > make_no_libbionic := NO_LIBBIONIC=1
> > make_no_auxtrace := NO_AUXTRACE=1
> > make_no_libbpf := NO_LIBBPF=1
> > @@ -97,7 +96,6 @@ make_no_libllvm := NO_LIBLLVM=1
> > make_with_babeltrace:= LIBBABELTRACE=1
> > make_with_coresight := CORESIGHT=1
> > make_no_sdt := NO_SDT=1
> > -make_no_syscall_tbl := NO_SYSCALL_TABLE=1
> > make_no_libpfm4 := NO_LIBPFM4=1
> > make_with_gtk2 := GTK2=1
> > make_refcnt_check := EXTRA_CFLAGS="-DREFCNT_CHECKING=1"
> > @@ -122,10 +120,10 @@ make_static := LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX3
> > # all the NO_* variable combined
> > make_minimal := NO_LIBPERL=1 NO_LIBPYTHON=1 NO_GTK2=1
> > make_minimal += NO_DEMANGLE=1 NO_LIBELF=1 NO_BACKTRACE=1
> > -make_minimal += NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1
> > +make_minimal += NO_LIBNUMA=1 NO_LIBBIONIC=1
> > make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1
> > make_minimal += NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1
> > -make_minimal += NO_LIBCAP=1 NO_SYSCALL_TABLE=1 NO_CAPSTONE=1
> > +make_minimal += NO_LIBCAP=1 NO_CAPSTONE=1
> >
> > # $(run) contains all available tests
> > run := make_pure
> > @@ -158,7 +156,6 @@ run += make_no_libdw_dwarf_unwind
> > run += make_no_backtrace
> > run += make_no_libcapstone
> > run += make_no_libnuma
> > -run += make_no_libaudit
> > run += make_no_libbionic
> > run += make_no_auxtrace
> > run += make_no_libbpf
> > diff --git a/tools/perf/util/env.c b/tools/perf/util/env.c
> > index e2843ca2edd92ea5fa1c020ae92b183c496e975e..e9a694350671910d537de599071dbe7fcc18ced4 100644
> > --- a/tools/perf/util/env.c
> > +++ b/tools/perf/util/env.c
> > @@ -474,13 +474,13 @@ const char *perf_env__arch(struct perf_env *env)
> >
> > const char *perf_env__arch_strerrno(struct perf_env *env __maybe_unused, int err __maybe_unused)
> > {
> > -#if defined(HAVE_SYSCALL_TABLE_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> > +#if defined(HAVE_LIBTRACEEVENT)
> > if (env->arch_strerrno == NULL)
> > env->arch_strerrno = arch_syscalls__strerrno_function(perf_env__arch(env));
> >
> > return env->arch_strerrno ? env->arch_strerrno(err) : "no arch specific strerrno function";
> > #else
> > - return "!(HAVE_SYSCALL_TABLE_SUPPORT && HAVE_LIBTRACEEVENT)";
> > + return "!HAVE_LIBTRACEEVENT";
> > #endif
> > }
> >
> > diff --git a/tools/perf/util/generate-cmdlist.sh b/tools/perf/util/generate-cmdlist.sh
> > index 1b5140e5ce9975fac87b2674dc694f9d4e439a5f..6a73c903d69050df69267a8aeaeeac1ed170efe1 100755
> > --- a/tools/perf/util/generate-cmdlist.sh
> > +++ b/tools/perf/util/generate-cmdlist.sh
> > @@ -38,7 +38,7 @@ do
> > done
> > echo "#endif /* HAVE_LIBELF_SUPPORT */"
> >
> > -echo "#if defined(HAVE_LIBTRACEEVENT) && (defined(HAVE_LIBAUDIT_SUPPORT) || defined(HAVE_SYSCALL_TABLE_SUPPORT))"
> > +echo "#if defined(HAVE_LIBTRACEEVENT)"
> > sed -n -e 's/^perf-\([^ ]*\)[ ].* audit*/\1/p' command-list.txt |
> > sort |
> > while read cmd
> > @@ -51,7 +51,7 @@ do
> > p
> > }' "Documentation/perf-$cmd.txt"
> > done
> > -echo "#endif /* HAVE_LIBTRACEEVENT && (HAVE_LIBAUDIT_SUPPORT || HAVE_SYSCALL_TABLE_SUPPORT) */"
> > +echo "#endif /* HAVE_LIBTRACEEVENT */"
> >
> > echo "#ifdef HAVE_LIBTRACEEVENT"
> > sed -n -e 's/^perf-\([^ ]*\)[ ].* traceevent.*/\1/p' command-list.txt |
> > diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
> > index 210f61b0a7a264a427ebb602185d3a9da2f426f4..928aca4cd6e9f2f26c5c4fd825b4538c064a4cc3 100644
> > --- a/tools/perf/util/syscalltbl.c
> > +++ b/tools/perf/util/syscalltbl.c
> > @@ -10,20 +10,12 @@
> > #include <linux/compiler.h>
> > #include <linux/zalloc.h>
> >
> > -#ifdef HAVE_SYSCALL_TABLE_SUPPORT
> > #include <string.h>
> > #include "string2.h"
> >
> > -#if defined(GENERIC_SYSCALL_TABLE)
> > #include <syscall_table.h>
> > const int syscalltbl_native_max_id = SYSCALLTBL_MAX_ID;
> > static const char *const *syscalltbl_native = syscalltbl;
> > -#else
> > -const int syscalltbl_native_max_id = 0;
> > -static const char *const syscalltbl_native[] = {
> > - [0] = "unknown",
> > -};
> > -#endif
> >
> > struct syscall {
> > int id;
> > @@ -131,47 +123,3 @@ int syscalltbl__strglobmatch_first(struct syscalltbl *tbl, const char *syscall_g
> > *idx = -1;
> > return syscalltbl__strglobmatch_next(tbl, syscall_glob, idx);
> > }
> > -
> > -#else /* HAVE_SYSCALL_TABLE_SUPPORT */
> > -
> > -#include <libaudit.h>
> > -
> > -struct syscalltbl *syscalltbl__new(void)
> > -{
> > - struct syscalltbl *tbl = zalloc(sizeof(*tbl));
> > - if (tbl)
> > - tbl->audit_machine = audit_detect_machine();
>
> struct syscalltbl's audit_machine is now unused, remove?
Good point, thank you! Will remove in next version.
- Charlie
>
> Thanks,
> Ian
>
> > - return tbl;
> > -}
> > -
> > -void syscalltbl__delete(struct syscalltbl *tbl)
> > -{
> > - free(tbl);
> > -}
> > -
> > -const char *syscalltbl__name(const struct syscalltbl *tbl, int id)
> > -{
> > - return audit_syscall_to_name(id, tbl->audit_machine);
> > -}
> > -
> > -int syscalltbl__id(struct syscalltbl *tbl, const char *name)
> > -{
> > - return audit_name_to_syscall(name, tbl->audit_machine);
> > -}
> > -
> > -int syscalltbl__id_at_idx(struct syscalltbl *tbl __maybe_unused, int idx)
> > -{
> > - return idx;
> > -}
> > -
> > -int syscalltbl__strglobmatch_next(struct syscalltbl *tbl __maybe_unused,
> > - const char *syscall_glob __maybe_unused, int *idx __maybe_unused)
> > -{
> > - return -1;
> > -}
> > -
> > -int syscalltbl__strglobmatch_first(struct syscalltbl *tbl, const char *syscall_glob, int *idx)
> > -{
> > - return syscalltbl__strglobmatch_next(tbl, syscall_glob, idx);
> > -}
> > -#endif /* HAVE_SYSCALL_TABLE_SUPPORT */
> >
> > --
> > 2.34.1
> >
WARNING: multiple messages have this Message-ID (diff)
From: Charlie Jenkins <charlie@rivosinc.com>
To: Ian Rogers <irogers@google.com>
Cc: "Peter Zijlstra" <peterz@infradead.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Arnaldo Carvalho de Melo" <acme@kernel.org>,
"Namhyung Kim" <namhyung@kernel.org>,
"Mark Rutland" <mark.rutland@arm.com>,
"Alexander Shishkin" <alexander.shishkin@linux.intel.com>,
"Jiri Olsa" <jolsa@kernel.org>,
"Adrian Hunter" <adrian.hunter@intel.com>,
"Paul Walmsley" <paul.walmsley@sifive.com>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Mickaël Salaün" <mic@digikod.net>,
"Günther Noack" <gnoack@google.com>,
"Christian Brauner" <brauner@kernel.org>,
"Guo Ren" <guoren@kernel.org>,
"John Garry" <john.g.garry@oracle.com>,
"Will Deacon" <will@kernel.org>,
"James Clark" <james.clark@linaro.org>,
"Mike Leach" <mike.leach@linaro.org>,
"Leo Yan" <leo.yan@linux.dev>, "Jonathan Corbet" <corbet@lwn.net>,
"Björn Töpel" <bjorn@rivosinc.com>,
"Arnd Bergmann" <arnd@arndb.de>,
linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
linux-riscv@lists.infradead.org,
linux-security-module@vger.kernel.org, bpf@vger.kernel.org,
linux-csky@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-doc@vger.kernel.org
Subject: Re: [PATCH v3 16/16] perf tools: Remove dependency on libaudit
Date: Tue, 17 Dec 2024 16:02:54 -0800 [thread overview]
Message-ID: <Z2IRLtRX6V18ktqq@ghost> (raw)
In-Reply-To: <CAP-5=fUNmqnYBLgOJOT9q6QbnhnDKxDXDEAtC-ZZ6orhXa5x3w@mail.gmail.com>
On Tue, Dec 17, 2024 at 03:36:27PM -0800, Ian Rogers wrote:
> On Mon, Dec 16, 2024 at 10:40 PM Charlie Jenkins <charlie@rivosinc.com> wrote:
> >
> > All architectures now support HAVE_SYSCALL_TABLE_SUPPORT, so the flag is
> > no longer needed. With the removal of the flag, the related
> > GENERIC_SYSCALL_TABLE can also be removed. libaudit was only used as a
> > fallback for when HAVE_SYSCALL_TABLE_SUPPORT was not defined, so
> > libaudit is also no longer needed for any architecture.
> >
> > Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
> > ---
> > 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 | 31 +--------------
> > tools/perf/Makefile.perf | 15 --------
> > tools/perf/builtin-check.c | 1 -
> > tools/perf/builtin-help.c | 2 -
> > tools/perf/builtin-trace.c | 30 ---------------
> > tools/perf/perf.c | 6 +--
> > tools/perf/tests/make | 7 +---
> > tools/perf/util/env.c | 4 +-
> > tools/perf/util/generate-cmdlist.sh | 4 +-
> > tools/perf/util/syscalltbl.c | 52 --------------------------
> > 14 files changed, 10 insertions(+), 160 deletions(-)
> >
> > diff --git a/Documentation/admin-guide/workload-tracing.rst b/Documentation/admin-guide/workload-tracing.rst
> > index b2e254ec8ee846afe78eede74a825b51c6ab119b..6be38c1b9c5bb4be899fd261c6d2911abcf959dc 100644
> > --- a/Documentation/admin-guide/workload-tracing.rst
> > +++ b/Documentation/admin-guide/workload-tracing.rst
> > @@ -83,7 +83,7 @@ scripts/ver_linux is a good way to check if your system already has
> > the necessary tools::
> >
> > sudo apt-get build-essentials flex bison yacc
> > - sudo apt install libelf-dev systemtap-sdt-dev libaudit-dev libslang2-dev libperl-dev libdw-dev
> > + sudo apt install libelf-dev systemtap-sdt-dev libslang2-dev libperl-dev libdw-dev
> >
> > cscope is a good tool to browse kernel sources. Let's install it now::
> >
> > diff --git a/tools/build/feature/Makefile b/tools/build/feature/Makefile
> > index 043dfd00fce72d8f651ccd9b3265a0183f500e5c..e0b63e9d0251abe6d5eafc6d2f26b940918b16ee 100644
> > --- a/tools/build/feature/Makefile
> > +++ b/tools/build/feature/Makefile
> > @@ -13,7 +13,6 @@ FILES= \
> > test-gtk2.bin \
> > test-gtk2-infobar.bin \
> > test-hello.bin \
> > - test-libaudit.bin \
> > test-libbfd.bin \
> > test-libbfd-buildid.bin \
> > test-disassembler-four-args.bin \
> > @@ -228,9 +227,6 @@ $(OUTPUT)test-libunwind-debug-frame-arm.bin:
> > $(OUTPUT)test-libunwind-debug-frame-aarch64.bin:
> > $(BUILD) -lelf -llzma -lunwind-aarch64
> >
> > -$(OUTPUT)test-libaudit.bin:
> > - $(BUILD) -laudit
> > -
> > $(OUTPUT)test-libslang.bin:
> > $(BUILD) -lslang
> >
> > diff --git a/tools/build/feature/test-libaudit.c b/tools/build/feature/test-libaudit.c
> > deleted file mode 100644
> > index f5b0863fa1ec240795339428d8deed98a946d405..0000000000000000000000000000000000000000
> > --- a/tools/build/feature/test-libaudit.c
> > +++ /dev/null
> > @@ -1,11 +0,0 @@
> > -// SPDX-License-Identifier: GPL-2.0
> > -#include <libaudit.h>
> > -
> > -extern int printf(const char *format, ...);
> > -
> > -int main(void)
> > -{
> > - printf("error message: %s\n", audit_errno_to_name(0));
> > -
> > - return audit_open();
> > -}
> > diff --git a/tools/perf/Documentation/perf-check.txt b/tools/perf/Documentation/perf-check.txt
> > index 31741499e7867c9b712227f31a2958fd641d474a..e6d2ceeb2ca7de850f41b1baa0375b6f984bb08f 100644
> > --- a/tools/perf/Documentation/perf-check.txt
> > +++ b/tools/perf/Documentation/perf-check.txt
> > @@ -51,7 +51,6 @@ feature::
> > dwarf_getlocations / HAVE_LIBDW_SUPPORT
> > dwarf-unwind / HAVE_DWARF_UNWIND_SUPPORT
> > auxtrace / HAVE_AUXTRACE_SUPPORT
> > - libaudit / HAVE_LIBAUDIT_SUPPORT
> > libbfd / HAVE_LIBBFD_SUPPORT
> > libcapstone / HAVE_LIBCAPSTONE_SUPPORT
> > libcrypto / HAVE_LIBCRYPTO_SUPPORT
> > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config
> > index 3f82ba907381049213c055ab10c3fe14d9572073..a57b2364578f57e31476f5041a06a0cd22d8b27e 100644
> > --- a/tools/perf/Makefile.config
> > +++ b/tools/perf/Makefile.config
> > @@ -28,20 +28,7 @@ include $(srctree)/tools/scripts/Makefile.arch
> >
> > $(call detected_var,SRCARCH)
> >
> > -ifneq ($(NO_SYSCALL_TABLE),1)
> > - NO_SYSCALL_TABLE := 1
> > -
> > - # architectures that use the generic syscall table scripts
> > - ifneq ($(filter $(SRCARCH), $(generic_syscall_table_archs)),)
> > - NO_SYSCALL_TABLE := 0
> > - CFLAGS += -DGENERIC_SYSCALL_TABLE
> > - CFLAGS += -I$(OUTPUT)tools/perf/arch/$(SRCARCH)/include/generated
> > - endif
> > -
> > - ifneq ($(NO_SYSCALL_TABLE),1)
> > - CFLAGS += -DHAVE_SYSCALL_TABLE_SUPPORT
> > - endif
> > -endif
> > +CFLAGS += -I$(OUTPUT)tools/perf/arch/$(SRCARCH)/include/generated
> >
> > # Additional ARCH settings for ppc
> > ifeq ($(SRCARCH),powerpc)
> > @@ -755,21 +742,7 @@ ifndef NO_LIBUNWIND
> > endif
> >
> > ifneq ($(NO_LIBTRACEEVENT),1)
> > - ifeq ($(NO_SYSCALL_TABLE),0)
> > - $(call detected,CONFIG_TRACE)
> > - else
> > - ifndef NO_LIBAUDIT
> > - $(call feature_check,libaudit)
> > - ifneq ($(feature-libaudit), 1)
> > - $(warning No libaudit.h found, disables 'trace' tool, please install audit-libs-devel or libaudit-dev)
> > - NO_LIBAUDIT := 1
> > - else
> > - CFLAGS += -DHAVE_LIBAUDIT_SUPPORT
> > - EXTLIBS += -laudit
> > - $(call detected,CONFIG_TRACE)
> > - endif
> > - endif
> > - endif
> > + $(call detected,CONFIG_TRACE)
> > endif
> >
> > ifndef NO_LIBCRYPTO
> > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> > index 2c6a509c800d3037933c9b49e5a7dafbf78fda0c..ab2d075ff3a23350a5eea12508cf0376f1d9f4e8 100644
> > --- a/tools/perf/Makefile.perf
> > +++ b/tools/perf/Makefile.perf
> > @@ -59,8 +59,6 @@ include ../scripts/utilities.mak
> > #
> > # Define NO_LIBNUMA if you do not want numa perf benchmark
> > #
> > -# Define NO_LIBAUDIT if you do not want libaudit support
> > -#
> > # Define NO_LIBBIONIC if you do not want bionic support
> > #
> > # Define NO_LIBCRYPTO if you do not want libcrypto (openssl) support
> > @@ -119,10 +117,6 @@ include ../scripts/utilities.mak
> > #
> > # Define LIBBPF_DYNAMIC to enable libbpf dynamic linking.
> > #
> > -# Define NO_SYSCALL_TABLE=1 to disable the use of syscall id to/from name tables
> > -# generated from the kernel .tbl or unistd.h files and use, if available, libaudit
> > -# for doing the conversions to/from strings/id.
> > -#
> > # Define NO_LIBPFM4 to disable libpfm4 events extension.
> > #
> > # Define NO_LIBDEBUGINFOD if you do not want support debuginfod
> > @@ -310,11 +304,7 @@ ifeq ($(filter feature-dump,$(MAKECMDGOALS)),feature-dump)
> > FEATURE_TESTS := all
> > endif
> > endif
> > -# architectures that use the generic syscall table
> > -generic_syscall_table_archs := riscv arc csky arm sh sparc xtensa x86 alpha parisc arm64 loongarch mips powerpc s390
> > -ifneq ($(filter $(SRCARCH), $(generic_syscall_table_archs)),)
> > include $(srctree)/tools/perf/scripts/Makefile.syscalls
> > -endif
> > include Makefile.config
> > endif
> >
> > @@ -1099,11 +1089,6 @@ endif
> > $(INSTALL) $(OUTPUT)perf-archive -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
> > $(call QUIET_INSTALL, perf-iostat) \
> > $(INSTALL) $(OUTPUT)perf-iostat -t '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
> > -ifndef NO_LIBAUDIT
> > - $(call QUIET_INSTALL, strace/groups) \
> > - $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(STRACE_GROUPS_INSTDIR_SQ)'; \
> > - $(INSTALL) trace/strace/groups/* -m 644 -t '$(DESTDIR_SQ)$(STRACE_GROUPS_INSTDIR_SQ)'
> > -endif
> > ifndef NO_LIBPERL
> > $(call QUIET_INSTALL, perl-scripts) \
> > $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/scripts/perl/Perf-Trace-Util/lib/Perf/Trace'; \
> > diff --git a/tools/perf/builtin-check.c b/tools/perf/builtin-check.c
> > index 2346536a5ee14f91ecd10bd130a64676e871e1b2..7aed7b9f4f5270527ee1d36327eb6a01f196a46a 100644
> > --- a/tools/perf/builtin-check.c
> > +++ b/tools/perf/builtin-check.c
> > @@ -31,7 +31,6 @@ struct feature_status supported_features[] = {
> > FEATURE_STATUS("dwarf_getlocations", HAVE_LIBDW_SUPPORT),
> > FEATURE_STATUS("dwarf-unwind", HAVE_DWARF_UNWIND_SUPPORT),
> > FEATURE_STATUS("auxtrace", HAVE_AUXTRACE_SUPPORT),
> > - FEATURE_STATUS("libaudit", HAVE_LIBAUDIT_SUPPORT),
> > FEATURE_STATUS("libbfd", HAVE_LIBBFD_SUPPORT),
> > FEATURE_STATUS("libcapstone", HAVE_LIBCAPSTONE_SUPPORT),
> > FEATURE_STATUS("libcrypto", HAVE_LIBCRYPTO_SUPPORT),
> > diff --git a/tools/perf/builtin-help.c b/tools/perf/builtin-help.c
> > index 0854d3cd9f6a304cd9cb50ad430d5706d91df0e9..7be6fb6df595923c15ae51747d5bf17d867ae785 100644
> > --- a/tools/perf/builtin-help.c
> > +++ b/tools/perf/builtin-help.c
> > @@ -447,9 +447,7 @@ int cmd_help(int argc, const char **argv)
> > #ifdef HAVE_LIBELF_SUPPORT
> > "probe",
> > #endif
> > -#if defined(HAVE_LIBAUDIT_SUPPORT) || defined(HAVE_SYSCALL_TABLE_SUPPORT)
> > "trace",
> > -#endif
> > NULL };
> > const char *builtin_help_usage[] = {
> > "perf help [--all] [--man|--web|--info] [command]",
> > diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c
> > index 6a1a128fe645014d0347ad4ec3e0c9e77ec59aee..0fddf34458db4fe4896d25f427f2ae29cb3aa15f 100644
> > --- a/tools/perf/builtin-trace.c
> > +++ b/tools/perf/builtin-trace.c
> > @@ -2069,30 +2069,11 @@ static int trace__read_syscall_info(struct trace *trace, int id)
> > const char *name = syscalltbl__name(trace->sctbl, id);
> > int err;
> >
> > -#ifdef HAVE_SYSCALL_TABLE_SUPPORT
> > if (trace->syscalls.table == NULL) {
> > trace->syscalls.table = calloc(trace->sctbl->syscalls.max_id + 1, sizeof(*sc));
> > if (trace->syscalls.table == NULL)
> > return -ENOMEM;
> > }
> > -#else
> > - if (id > trace->sctbl->syscalls.max_id || (id == 0 && trace->syscalls.table == NULL)) {
> > - // When using libaudit we don't know beforehand what is the max syscall id
> > - struct syscall *table = realloc(trace->syscalls.table, (id + 1) * sizeof(*sc));
> > -
> > - if (table == NULL)
> > - return -ENOMEM;
> > -
> > - // Need to memset from offset 0 and +1 members if brand new
> > - if (trace->syscalls.table == NULL)
> > - memset(table, 0, (id + 1) * sizeof(*sc));
> > - else
> > - memset(table + trace->sctbl->syscalls.max_id + 1, 0, (id - trace->sctbl->syscalls.max_id) * sizeof(*sc));
> > -
> > - trace->syscalls.table = table;
> > - trace->sctbl->syscalls.max_id = id;
> > - }
> > -#endif
> > sc = trace->syscalls.table + id;
> > if (sc->nonexistent)
> > return -EEXIST;
> > @@ -2439,18 +2420,7 @@ static struct syscall *trace__syscall_info(struct trace *trace,
> >
> > err = -EINVAL;
> >
> > -#ifdef HAVE_SYSCALL_TABLE_SUPPORT
> > if (id > trace->sctbl->syscalls.max_id) {
> > -#else
> > - if (id >= trace->sctbl->syscalls.max_id) {
> > - /*
> > - * With libaudit we don't know beforehand what is the max_id,
> > - * so we let trace__read_syscall_info() figure that out as we
> > - * go on reading syscalls.
> > - */
> > - err = trace__read_syscall_info(trace, id);
> > - if (err)
> > -#endif
> > goto out_cant_read;
> > }
> >
> > diff --git a/tools/perf/perf.c b/tools/perf/perf.c
> > index a2987f2cfe1a3958f53239ed1a4eec3f87d7466a..f0617cc41f5fe638986e5d8316a6b3056c2c4bc5 100644
> > --- a/tools/perf/perf.c
> > +++ b/tools/perf/perf.c
> > @@ -84,7 +84,7 @@ static struct cmd_struct commands[] = {
> > #endif
> > { "kvm", cmd_kvm, 0 },
> > { "test", cmd_test, 0 },
> > -#if defined(HAVE_LIBTRACEEVENT) && (defined(HAVE_LIBAUDIT_SUPPORT) || defined(HAVE_SYSCALL_TABLE_SUPPORT))
> > +#if defined(HAVE_LIBTRACEEVENT)
> > { "trace", cmd_trace, 0 },
> > #endif
> > { "inject", cmd_inject, 0 },
> > @@ -514,10 +514,6 @@ int main(int argc, const char **argv)
> > fprintf(stderr,
> > "trace command not available: missing libtraceevent devel package at build time.\n");
> > goto out;
> > -#elif !defined(HAVE_LIBAUDIT_SUPPORT) && !defined(HAVE_SYSCALL_TABLE_SUPPORT)
> > - fprintf(stderr,
> > - "trace command not available: missing audit-libs devel package at build time.\n");
> > - goto out;
> > #else
> > setup_path();
> > argv[0] = "trace";
> > diff --git a/tools/perf/tests/make b/tools/perf/tests/make
> > index a7fcbd589752a90459815bd21075528c6dfa4d94..0ee94caf9ec19820a94a87dd46a7ccf1cefb844a 100644
> > --- a/tools/perf/tests/make
> > +++ b/tools/perf/tests/make
> > @@ -86,7 +86,6 @@ make_no_libdw_dwarf_unwind := NO_LIBDW_DWARF_UNWIND=1
> > make_no_backtrace := NO_BACKTRACE=1
> > make_no_libcapstone := NO_CAPSTONE=1
> > make_no_libnuma := NO_LIBNUMA=1
> > -make_no_libaudit := NO_LIBAUDIT=1
> > make_no_libbionic := NO_LIBBIONIC=1
> > make_no_auxtrace := NO_AUXTRACE=1
> > make_no_libbpf := NO_LIBBPF=1
> > @@ -97,7 +96,6 @@ make_no_libllvm := NO_LIBLLVM=1
> > make_with_babeltrace:= LIBBABELTRACE=1
> > make_with_coresight := CORESIGHT=1
> > make_no_sdt := NO_SDT=1
> > -make_no_syscall_tbl := NO_SYSCALL_TABLE=1
> > make_no_libpfm4 := NO_LIBPFM4=1
> > make_with_gtk2 := GTK2=1
> > make_refcnt_check := EXTRA_CFLAGS="-DREFCNT_CHECKING=1"
> > @@ -122,10 +120,10 @@ make_static := LDFLAGS=-static NO_PERF_READ_VDSO32=1 NO_PERF_READ_VDSOX3
> > # all the NO_* variable combined
> > make_minimal := NO_LIBPERL=1 NO_LIBPYTHON=1 NO_GTK2=1
> > make_minimal += NO_DEMANGLE=1 NO_LIBELF=1 NO_BACKTRACE=1
> > -make_minimal += NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1
> > +make_minimal += NO_LIBNUMA=1 NO_LIBBIONIC=1
> > make_minimal += NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1
> > make_minimal += NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 NO_LIBZSTD=1
> > -make_minimal += NO_LIBCAP=1 NO_SYSCALL_TABLE=1 NO_CAPSTONE=1
> > +make_minimal += NO_LIBCAP=1 NO_CAPSTONE=1
> >
> > # $(run) contains all available tests
> > run := make_pure
> > @@ -158,7 +156,6 @@ run += make_no_libdw_dwarf_unwind
> > run += make_no_backtrace
> > run += make_no_libcapstone
> > run += make_no_libnuma
> > -run += make_no_libaudit
> > run += make_no_libbionic
> > run += make_no_auxtrace
> > run += make_no_libbpf
> > diff --git a/tools/perf/util/env.c b/tools/perf/util/env.c
> > index e2843ca2edd92ea5fa1c020ae92b183c496e975e..e9a694350671910d537de599071dbe7fcc18ced4 100644
> > --- a/tools/perf/util/env.c
> > +++ b/tools/perf/util/env.c
> > @@ -474,13 +474,13 @@ const char *perf_env__arch(struct perf_env *env)
> >
> > const char *perf_env__arch_strerrno(struct perf_env *env __maybe_unused, int err __maybe_unused)
> > {
> > -#if defined(HAVE_SYSCALL_TABLE_SUPPORT) && defined(HAVE_LIBTRACEEVENT)
> > +#if defined(HAVE_LIBTRACEEVENT)
> > if (env->arch_strerrno == NULL)
> > env->arch_strerrno = arch_syscalls__strerrno_function(perf_env__arch(env));
> >
> > return env->arch_strerrno ? env->arch_strerrno(err) : "no arch specific strerrno function";
> > #else
> > - return "!(HAVE_SYSCALL_TABLE_SUPPORT && HAVE_LIBTRACEEVENT)";
> > + return "!HAVE_LIBTRACEEVENT";
> > #endif
> > }
> >
> > diff --git a/tools/perf/util/generate-cmdlist.sh b/tools/perf/util/generate-cmdlist.sh
> > index 1b5140e5ce9975fac87b2674dc694f9d4e439a5f..6a73c903d69050df69267a8aeaeeac1ed170efe1 100755
> > --- a/tools/perf/util/generate-cmdlist.sh
> > +++ b/tools/perf/util/generate-cmdlist.sh
> > @@ -38,7 +38,7 @@ do
> > done
> > echo "#endif /* HAVE_LIBELF_SUPPORT */"
> >
> > -echo "#if defined(HAVE_LIBTRACEEVENT) && (defined(HAVE_LIBAUDIT_SUPPORT) || defined(HAVE_SYSCALL_TABLE_SUPPORT))"
> > +echo "#if defined(HAVE_LIBTRACEEVENT)"
> > sed -n -e 's/^perf-\([^ ]*\)[ ].* audit*/\1/p' command-list.txt |
> > sort |
> > while read cmd
> > @@ -51,7 +51,7 @@ do
> > p
> > }' "Documentation/perf-$cmd.txt"
> > done
> > -echo "#endif /* HAVE_LIBTRACEEVENT && (HAVE_LIBAUDIT_SUPPORT || HAVE_SYSCALL_TABLE_SUPPORT) */"
> > +echo "#endif /* HAVE_LIBTRACEEVENT */"
> >
> > echo "#ifdef HAVE_LIBTRACEEVENT"
> > sed -n -e 's/^perf-\([^ ]*\)[ ].* traceevent.*/\1/p' command-list.txt |
> > diff --git a/tools/perf/util/syscalltbl.c b/tools/perf/util/syscalltbl.c
> > index 210f61b0a7a264a427ebb602185d3a9da2f426f4..928aca4cd6e9f2f26c5c4fd825b4538c064a4cc3 100644
> > --- a/tools/perf/util/syscalltbl.c
> > +++ b/tools/perf/util/syscalltbl.c
> > @@ -10,20 +10,12 @@
> > #include <linux/compiler.h>
> > #include <linux/zalloc.h>
> >
> > -#ifdef HAVE_SYSCALL_TABLE_SUPPORT
> > #include <string.h>
> > #include "string2.h"
> >
> > -#if defined(GENERIC_SYSCALL_TABLE)
> > #include <syscall_table.h>
> > const int syscalltbl_native_max_id = SYSCALLTBL_MAX_ID;
> > static const char *const *syscalltbl_native = syscalltbl;
> > -#else
> > -const int syscalltbl_native_max_id = 0;
> > -static const char *const syscalltbl_native[] = {
> > - [0] = "unknown",
> > -};
> > -#endif
> >
> > struct syscall {
> > int id;
> > @@ -131,47 +123,3 @@ int syscalltbl__strglobmatch_first(struct syscalltbl *tbl, const char *syscall_g
> > *idx = -1;
> > return syscalltbl__strglobmatch_next(tbl, syscall_glob, idx);
> > }
> > -
> > -#else /* HAVE_SYSCALL_TABLE_SUPPORT */
> > -
> > -#include <libaudit.h>
> > -
> > -struct syscalltbl *syscalltbl__new(void)
> > -{
> > - struct syscalltbl *tbl = zalloc(sizeof(*tbl));
> > - if (tbl)
> > - tbl->audit_machine = audit_detect_machine();
>
> struct syscalltbl's audit_machine is now unused, remove?
Good point, thank you! Will remove in next version.
- Charlie
>
> Thanks,
> Ian
>
> > - return tbl;
> > -}
> > -
> > -void syscalltbl__delete(struct syscalltbl *tbl)
> > -{
> > - free(tbl);
> > -}
> > -
> > -const char *syscalltbl__name(const struct syscalltbl *tbl, int id)
> > -{
> > - return audit_syscall_to_name(id, tbl->audit_machine);
> > -}
> > -
> > -int syscalltbl__id(struct syscalltbl *tbl, const char *name)
> > -{
> > - return audit_name_to_syscall(name, tbl->audit_machine);
> > -}
> > -
> > -int syscalltbl__id_at_idx(struct syscalltbl *tbl __maybe_unused, int idx)
> > -{
> > - return idx;
> > -}
> > -
> > -int syscalltbl__strglobmatch_next(struct syscalltbl *tbl __maybe_unused,
> > - const char *syscall_glob __maybe_unused, int *idx __maybe_unused)
> > -{
> > - return -1;
> > -}
> > -
> > -int syscalltbl__strglobmatch_first(struct syscalltbl *tbl, const char *syscall_glob, int *idx)
> > -{
> > - return syscalltbl__strglobmatch_next(tbl, syscall_glob, idx);
> > -}
> > -#endif /* HAVE_SYSCALL_TABLE_SUPPORT */
> >
> > --
> > 2.34.1
> >
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2024-12-18 0:02 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-17 6:32 [PATCH v3 00/16] perf tools: Use generic syscall scripts for all archs Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 01/16] perf tools: Create generic syscall table support Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 02/16] perf tools: arc: Support generic syscall headers Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 03/16] perf tools: csky: " Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 04/16] perf tools: arm: Support " Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 05/16] perf tools: sh: " Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 06/16] perf tools: sparc: " Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 07/16] perf tools: xtensa: Support syscall header Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 08/16] perf tools: x86: Use generic syscall scripts Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 09/16] perf tools: alpha: Support syscall header Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 10/16] perf tools: parisc: " Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 11/16] perf tools: arm64: Use syscall table Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 12/16] perf tools: loongarch: " Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 13/16] perf tools: mips: Use generic syscall scripts Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:32 ` [PATCH v3 14/16] perf tools: powerpc: Use generic syscall table scripts Charlie Jenkins
2024-12-17 6:32 ` Charlie Jenkins
2024-12-17 6:33 ` [PATCH v3 15/16] perf tools: s390: " Charlie Jenkins
2024-12-17 6:33 ` Charlie Jenkins
2024-12-17 6:33 ` [PATCH v3 16/16] perf tools: Remove dependency on libaudit Charlie Jenkins
2024-12-17 6:33 ` Charlie Jenkins
2024-12-17 23:36 ` Ian Rogers
2024-12-17 23:36 ` Ian Rogers
2024-12-18 0:02 ` Charlie Jenkins [this message]
2024-12-18 0:02 ` Charlie Jenkins
2024-12-18 0:03 ` [PATCH v3 00/16] perf tools: Use generic syscall scripts for all archs Ian Rogers
2024-12-18 0:03 ` Ian Rogers
2024-12-18 1:11 ` Charlie Jenkins
2024-12-18 1:11 ` Charlie Jenkins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z2IRLtRX6V18ktqq@ghost \
--to=charlie@rivosinc.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=arnd@arndb.de \
--cc=bjorn@rivosinc.com \
--cc=bpf@vger.kernel.org \
--cc=brauner@kernel.org \
--cc=corbet@lwn.net \
--cc=gnoack@google.com \
--cc=guoren@kernel.org \
--cc=irogers@google.com \
--cc=james.clark@linaro.org \
--cc=john.g.garry@oracle.com \
--cc=jolsa@kernel.org \
--cc=leo.yan@linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-csky@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-security-module@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mic@digikod.net \
--cc=mike.leach@linaro.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=peterz@infradead.org \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.