perf trace: Remove union from syscalltbl, all the fields are needed

When we moved to a syscalltbl generated from the kernel syscall tables
(arch/..../syscall*.tbl) the idea was to either use it, when having the
generator (e.g. tools/perf/arch/x86/entry/syscalls/syscalltbl.sh), or
falling back to the previous audit-libs based way of mapping syscall ids
to strings and the other way around.

At first we just needed the audit_detect_machine() return to then use it
to the str->id/id->str, or the other fields for the now used by default
in the most well developed arches method of using the syscall table
generator.

The problem is that then the libaudit code fell into disrepair, and
architectures where it is the method used are not working.

Now, with NO_SYSCALL_TABLE=1 being possible to pass on the make command
line we can automate the testing of that method even on x86-64, arm64,
etc.

And doing it I noted that we actually use fields in both entries in the
union, oops, so ditch the union, as we need all those fields at the same
time.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
Arnaldo Carvalho de Melo 2020-05-28 17:12:16 -03:00
parent 43de3869b5
commit db6b8cc891
1 changed files with 6 additions and 8 deletions

View File

@ -3,14 +3,12 @@
#define __PERF_SYSCALLTBL_H
struct syscalltbl {
union {
int audit_machine;
struct {
int max_id;
int nr_entries;
void *entries;
} syscalls;
};
int audit_machine;
struct {
int max_id;
int nr_entries;
void *entries;
} syscalls;
};
struct syscalltbl *syscalltbl__new(void);