Re: [PATCHSET 0/9] Sync tools headers with the kernel source

From: Arnaldo Carvalho de Melo
Date: Mon Apr 08 2024 - 15:13:48 EST


On Mon, Apr 08, 2024 at 11:55:11AM -0700, Namhyung Kim wrote:
> Hello,
>
> I'm gonna carry these changes on the perf tools tree. I'll update the
> vhost.h once it lands on the mainline.

Humm, maybe its not a good idea to do that this cycle? I mean some of
these were moved from tools/{include,arch} to tools/perf/trace/beauty/{include,arch},
like tools/perf/trace/beauty/arch/x86/include/asm/irq_vectors.h.

But having said that, probably isn't a problem, when you get this pulled
upstream I'll do a merge with perf-tools-next and this should be
trivially resolved, I think.

Using the above example:

⬢[acme@toolbox perf-tools-next]$ git log tools/perf/trace/beauty/arch/x86/include/asm/irq_vectors.h
commit c8bfe3fad4f86a029da7157bae9699c816f0c309
Author: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
Date: Mon Mar 11 17:07:33 2024 -0300

perf beauty: Move arch/x86/include/asm/irq_vectors.h copy out of the directory used to build perf

It is used only to generate string tables, not to build perf, so move it
to the tools/perf/trace/beauty/include/ hierarchy, that is used just for
scraping.

This is a something that should've have happened, as happened with the
linux/socket.h scrapper, do it now as Ian suggested while doing an
audit/refactor session in the headers used by perf.

No other tools/ living code uses it.

Suggested-by: Ian Rogers <irogers@xxxxxxxxxx>
Reviewed-by: Ian Rogers <irogers@xxxxxxxxxx>
Cc: Adrian Hunter <adrian.hunter@xxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Namhyung Kim <namhyung@xxxxxxxxxx>
Link: https://lore.kernel.org/lkml/CAP-5=fWZVrpRufO4w-S4EcSi9STXcTAN2ERLwTSN7yrSSA-otQ@xxxxxxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>

- Arnaldo

> This is the full explanation from Arnaldo:
>
> There used to be no copies, with tools/ code using kernel headers
> directly. From time to time tools/perf/ broke due to legitimate kernel
> hacking. At some point Linus complained about such direct usage. Then we
> adopted the current model.
>
> The way these headers are used in perf are not restricted to just
> including them to compile something.
>
> There are sometimes used in scripts that convert defines into string
> tables, etc, so some change may break one of these scripts, or new MSRs
> may use some different #define pattern, etc.
>
> E.g.:
>
> $ ls -1 tools/perf/trace/beauty/*.sh | head -5
> tools/perf/trace/beauty/arch_errno_names.sh
> tools/perf/trace/beauty/drm_ioctl.sh
> tools/perf/trace/beauty/fadvise.sh
> tools/perf/trace/beauty/fsconfig.sh
> tools/perf/trace/beauty/fsmount.sh
> $
> $ tools/perf/trace/beauty/fadvise.sh
> static const char *fadvise_advices[] = {
> [0] = "NORMAL",
> [1] = "RANDOM",
> [2] = "SEQUENTIAL",
> [3] = "WILLNEED",
> [4] = "DONTNEED",
> [5] = "NOREUSE",
> };
> $
>
> The tools/perf/check-headers.sh script, part of the tools/ build
> process, points out changes in the original files.
>
> So its important not to touch the copies in tools/ when doing changes in
> the original kernel headers, that will be done later, when
> check-headers.sh inform about the change to the perf tools hackers.
>
>
> Thanks,
> Namhyung
>
>
> Namhyung Kim (9):
> tools/include: Sync uapi/drm/i915_drm.h with the kernel sources
> tools/include: Sync uapi/linux/fs.h with the kernel sources
> tools/include: Sync uapi/linux/kvm.h and asm/kvm.h with the kernel
> sources
> tools/include: Sync uapi/sound/asound.h with the kernel sources
> tools/include: Sync x86 CPU feature headers with the kernel sources
> tools/include: Sync x86 asm/irq_vectors.h with the kernel sources
> tools/include: Sync x86 asm/msr-index.h with the kernel sources
> tools/include: Sync asm-generic/bitops/fls.h with the kernel sources
> tools/include: Sync arm64 asm/cputype.h with the kernel sources
>
> tools/arch/arm64/include/asm/cputype.h | 4 +
> tools/arch/arm64/include/uapi/asm/kvm.h | 15 +-
> tools/arch/powerpc/include/uapi/asm/kvm.h | 45 +-
> tools/arch/s390/include/uapi/asm/kvm.h | 315 +++++++-
> tools/arch/x86/include/asm/cpufeatures.h | 17 +-
> .../arch/x86/include/asm/disabled-features.h | 11 +-
> tools/arch/x86/include/asm/irq_vectors.h | 2 -
> tools/arch/x86/include/asm/msr-index.h | 74 +-
> .../arch/x86/include/asm/required-features.h | 3 +-
> tools/arch/x86/include/uapi/asm/kvm.h | 308 +++++++-
> tools/include/asm-generic/bitops/__fls.h | 8 +-
> tools/include/asm-generic/bitops/fls.h | 8 +-
> tools/include/uapi/drm/i915_drm.h | 16 +
> tools/include/uapi/linux/fs.h | 30 +-
> tools/include/uapi/linux/kvm.h | 689 +-----------------
> tools/include/uapi/sound/asound.h | 4 +-
> 16 files changed, 809 insertions(+), 740 deletions(-)
>
>
> base-commit: 25e973a0e077da585e472b4cadb1d2f4c1113285
> --
> 2.44.0.478.gd926399ef9-goog