2013-09-26 14:28:40

by Ramkumar Ramachandra

[permalink] [raw]
Subject: [PATCH] tools/perf: remove non-existent entries in MANIFEST

The MANIFEST file is used in the following Makefile targets:

$ make tar{,gz,bz2,xz}-src-pkg

to generate an archive that can be used outside the kernel tree. It
contains entries that are used for pathspec filtering 'git archive',
which ultimately generates the archive. Remove the stale
entries (non-existent paths) by running:

$ while read l; do file $l; done <tools/perf/MANIFEST | grep ERROR

in the toplevel kernel tree.

Cc: David Ahern <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Arnaldo Carvalho de Melo <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Ingo Molnar <[email protected]>
Signed-off-by: Ramkumar Ramachandra <[email protected]>
---
Thanks to David for pointing out that the MANIFEST is used by
scripts/package. This patch safely removes the stale entries.

tools/perf/MANIFEST | 8 --------
1 file changed, 8 deletions(-)

diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
index 025de79..9c85dee 100644
--- a/tools/perf/MANIFEST
+++ b/tools/perf/MANIFEST
@@ -2,7 +2,6 @@ tools/perf
tools/scripts
tools/lib/traceevent
tools/lib/lk
-include/linux/const.h
include/linux/perf_event.h
include/linux/rbtree.h
include/linux/list.h
@@ -10,14 +9,7 @@ include/linux/hash.h
include/linux/stringify.h
lib/rbtree.c
include/linux/swab.h
-arch/*/include/asm/unistd*.h
-arch/*/include/asm/perf_regs.h
-arch/*/include/uapi/asm/unistd*.h
-arch/*/include/uapi/asm/perf_regs.h
-arch/*/lib/memcpy*.S
-arch/*/lib/memset*.S
include/linux/poison.h
-include/linux/magic.h
include/linux/hw_breakpoint.h
include/linux/rbtree_augmented.h
include/uapi/linux/perf_event.h
--
1.8.4.299.gb3e7d24.dirty


2013-09-26 15:14:33

by David Ahern

[permalink] [raw]
Subject: Re: [PATCH] tools/perf: remove non-existent entries in MANIFEST

On 9/26/13 8:21 AM, Ramkumar Ramachandra wrote:
> The MANIFEST file is used in the following Makefile targets:
>
> $ make tar{,gz,bz2,xz}-src-pkg
>
> to generate an archive that can be used outside the kernel tree. It
> contains entries that are used for pathspec filtering 'git archive',
> which ultimately generates the archive. Remove the stale
> entries (non-existent paths) by running:
>
> $ while read l; do file $l; done <tools/perf/MANIFEST | grep ERROR
>
> in the toplevel kernel tree.

Did you create a tarfile after this change, unpack it somewhere out of
three and then verify perf builds?

David

2013-09-26 15:49:31

by Ramkumar Ramachandra

[permalink] [raw]
Subject: Re: [PATCH] tools/perf: remove non-existent entries in MANIFEST

David Ahern wrote:
> Did you create a tarfile after this change, unpack it somewhere out of three
> and then verify perf builds?

Yeah, it builds fine. In fact, the archive generated from the current
upstream is broken.

2013-09-26 16:11:34

by Arnaldo Carvalho de Melo

[permalink] [raw]
Subject: Re: [PATCH] tools/perf: remove non-existent entries in MANIFEST

Em Thu, Sep 26, 2013 at 09:18:48PM +0530, Ramkumar Ramachandra escreveu:
> David Ahern wrote:
> > Did you create a tarfile after this change, unpack it somewhere out of three
> > and then verify perf builds?
>
> Yeah, it builds fine. In fact, the archive generated from the current
> upstream is broken.

Could you please describe how it is broken?

[acme@zoo linux]$ git branch | grep '*'
* perf/urgent
[acme@zoo linux]$ git describe
v3.12-rc1-51-gc1bf214
[acme@zoo linux]$ make perf-tar-src-pkg
TAR
[acme@zoo linux]$ mv perf-3.12.0-rc1.tar /tmp
[acme@zoo linux]$ cd /tmp
[acme@zoo tmp]$ tar xf perf-3.12.0-rc1.tar
[acme@zoo tmp]$ cd perf-3.12.0-rc1
[acme@zoo perf-3.12.0-rc1]$ make -j4 -C tools/perf
CHK -fstack-protector-all
CHK -Wstack-protector
CHK -Wvolatile-register-var
<SNIP>
CC util/parse-events-flex.o
AR libperf.a
LINK perf
make: Leaving directory `/tmp/perf-3.12.0-rc1/tools/perf'
[acme@zoo perf-3.12.0-rc1]$
[acme@zoo perf-3.12.0-rc1]$ file tools/perf/perf
tools/perf/perf: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.32,
BuildID[sha1]=0x4ccfe4a3c71572532c54a478fec49ad1b38f1f3a, not stripped
[acme@zoo perf-3.12.0-rc1]$
[acme@zoo perf-3.12.0-rc1]$ tools/perf/perf --help | head -6

usage: perf [--version] [--help] COMMAND [ARGS]

The most commonly used perf commands are:
annotate Read perf.data (created by perf record) and display
annotated code
archive Create archive with object files with build-ids found
in perf.data file
[acme@zoo perf-3.12.0-rc1]$ tools/perf/perf stat usleep 1

Performance counter stats for 'usleep 1':

1.034116 task-clock # 0.495 CPUs utilized
2 context-switches # 0.002 M/sec
1 cpu-migrations # 0.967 K/sec
140 page-faults # 0.135 M/sec
1,024,416 cycles # 0.991 GHz
730,998 stalled-cycles-frontend # 71.36% frontend cycles
idle
<not supported> stalled-cycles-backend
553,592 instructions # 0.54 insns per cycle
# 1.32 stalled cycles
# per insn
105,979 branches # 102.483 M/sec
8,030 branch-misses # 7.58% of all branches

0.002088462 seconds time elapsed

[acme@zoo perf-3.12.0-rc1]$

- Arnaldo

2013-09-27 02:02:48

by Ramkumar Ramachandra

[permalink] [raw]
Subject: Re: [PATCH] tools/perf: remove non-existent entries in MANIFEST

Arnaldo Carvalho de Melo wrote:
> Could you please describe how it is broken?
>
> [acme@zoo linux]$ git branch | grep '*'
> * perf/urgent
> [acme@zoo linux]$ git describe
> v3.12-rc1-51-gc1bf214

Oh, I meant the torvalds/linux.git master.

$ git describe
v3.12-rc2-83-g4b97280
$ make perf-tarbz2-src-pkg
TAR
$ tar tf perf-3.12.0-rc2.tar.bz2 | grep tools
perf-3.12.0-rc2/tools/

As you can see, the tools/perf directory is completely missing. With
my patch applied, the archive is totally fine (and perf builds and
runs fine). I suspect the issue has to do with non-existent paths
given as the pathspec filtering argument to 'git archive'. Note that
I'm running the latest git HEAD.

Thanks.