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] [day] [month] [year] [list]
Date:   Wed, 30 Mar 2022 13:30:33 -0300
From:   Arnaldo Carvalho de Melo <acme@...nel.org>
To:     John Garry <john.garry@...wei.com>,
        Matthieu Baerts <matthieu.baerts@...sares.net>
Cc:     peterz@...radead.org, mingo@...hat.com, mark.rutland@....com,
        alexander.shishkin@...ux.intel.com, jolsa@...nel.org,
        namhyung@...nel.org, irogers@...gle.com,
        linux-perf-users@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] perf tools: Stop depending on .git files for building
 PERF-VERSION-FILE

Em Wed, Mar 30, 2022 at 03:22:37PM +0200, Matthieu Baerts escreveu:
> Hi John,
> 
> On 30/03/2022 12:22, John Garry wrote:
> > This essentially reverts commit c72e3f04b45fb2e50cdd81a50c3778c6a57251d8
> > and commit 4e666cdb06eede2069a7b1a96a1359d1c441a3eb.
> > 
> > In commit c72e3f04b45f ("tools/perf/build: Speed up git-version test on
> > re-make"), a makefile dependency on .git/HEAD was added. The background is
> > that running PERF-VERSION-FILE is relatively slow, and commands like
> > "git describe" are particularly slow.
> > 
> > In commit 4e666cdb06ee ("perf tools: Fix dependency for version file
> > creation"), an additional dependency on .git/ORIG_HEAD was added, as
> > .git/HEAD may not change for "git reset --hard HEAD^" command. However,
> > depending on whether we're on a branch or not, a "git cherry-pick" may
> > not lead to the version being updated.
> > 
> > As discussed with the git community in [0], using git internal files for
> > dependencies is not reliable. Commit 4e666cdb06ee also breaks some build
> > scenarios [1].
> > 
> > As mentioned, c72e3f04b45f was added to speed up the build. However in
> > commit 7572733b8499 ("perf tools: Fix version kernel tag") we removed the
> > call to "git describe", so just revert Makefile.perf back to same as pre
> > c72e3f04b45f and the build should not be so slow, as below:
> > 
> > Pre 7572733b8499:
> > $> time util/PERF-VERSION-GEN
> >   PERF_VERSION = 5.17.rc8.g4e666cdb06ee
> > 
> > real    0m0.110s
> > user    0m0.091s
> > sys     0m0.019s
> > 
> > Post 7572733b8499:
> > $> time util/PERF-VERSION-GEN
> >   PERF_VERSION = 5.17.rc8.g7572733b8499
> > 
> > real    0m0.039s
> > user    0m0.036s
> > sys     0m0.007s
> > 
> > [0] https://lore.kernel.org/git/87wngkpddp.fsf@igel.home/T/#m4a4dd6de52fdbe21179306cd57b3761eb07f45f8
> > [1] https://lore.kernel.org/linux-perf-users/20220329093120.4173283-1-matthieu.baerts@tessares.net/T/#u
> > 
> > Fixes: 4e666cdb06ee ("perf tools: Fix dependency for version file creation")
> > Reported-by: Matthieu Baerts <matthieu.baerts@...sares.net>
> > Signed-off-by: John Garry <john.garry@...wei.com>
> 
> Thank you for your patch, I just tested it and it also fixes the issue I

Thanks, applied.

And added this "Committer testing" section:

-----
    Committer testing:

    After a fresh rebuild using 'make -C tools/perf O=/tmp/build/perf install-bin':

      $ perf -v
      perf version 5.17.g162f9db407b6
      $ git log --oneline -1
      162f9db407b6a6e5 (HEAD -> perf/core) perf tools: Stop depending on .git files for building PERF-VERSION-FILE
      $

    Now using a detached tarball, i.e. outside the kernel source tree:

      $ ls -la perf*tar
      ls: cannot access 'perf*tar': No such file or directory
      $ make perf-tar-src-pkg
        TAR
        PERF_VERSION = 5.17.g31d10b3ef133
      $ ls -la perf*tar
      -rw-r--r--. 1 acme acme 22241280 Mar 30 13:26 perf-5.17.0.tar
      $ mv perf-5.17.0.tar /tmp
      $ cd /tmp
      $ tar xf perf-5.17.0.tar
      $ cd perf-5.17.0/
      $ make -C tools/perf |& tail
        CC      util/pmu.o
        CC      util/pmu-flex.o
        CC      util/expr-flex.o
        CC      util/expr.o
        LD      util/scripting-engines/perf-in.o
        LD      util/intel-pt-decoder/perf-in.o
        LD      util/perf-in.o
        LD      perf-in.o
        LINK    perf
      make: Leaving directory '/tmp/perf-5.17.0/tools/perf'
      $ tools/perf/perf -v
      perf version 5.17.g31d10b3ef133
      $ pwd
      /tmp/perf-5.17.0
      $ cat PERF-VERSION-FILE
      #define PERF_VERSION "5.17.g31d10b3ef133"
      $

-----

Powered by blists - more mailing lists