lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZhRB4BULj1Y1f1TN@x1>
Date: Mon, 8 Apr 2024 16:13:36 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Namhyung Kim <namhyung@...nel.org>
Cc: Ian Rogers <irogers@...gle.com>, Kan Liang <kan.liang@...ux.intel.com>,
	Jiri Olsa <jolsa@...nel.org>,
	Adrian Hunter <adrian.hunter@...el.com>,
	Peter Zijlstra <peterz@...radead.org>,
	Ingo Molnar <mingo@...nel.org>, LKML <linux-kernel@...r.kernel.org>,
	linux-perf-users@...r.kernel.org
Subject: Re: [PATCHSET 0/9] Sync tools headers with the kernel source

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@...lbox perf-tools-next]$ git log tools/perf/trace/beauty/arch/x86/include/asm/irq_vectors.h
commit c8bfe3fad4f86a029da7157bae9699c816f0c309
Author: Arnaldo Carvalho de Melo <acme@...hat.com>
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@...gle.com>
    Reviewed-by: Ian Rogers <irogers@...gle.com>
    Cc: Adrian Hunter <adrian.hunter@...el.com>
    Cc: Jiri Olsa <jolsa@...nel.org>
    Cc: Namhyung Kim <namhyung@...nel.org>
    Link: https://lore.kernel.org/lkml/CAP-5=fWZVrpRufO4w-S4EcSi9STXcTAN2ERLwTSN7yrSSA-otQ@mail.gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>

- 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ