Hi Ingo,
Please consider pulling,
- Arnaldo
The following changes since commit 9ee6ddc9dada9cc4b2201631bc74fbf203183a10:
Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent (2012-06-08 12:23:22 +0200)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
for you to fetch changes up to cb9dd49e11f83d548c822d7022ac180b0518b25c:
perf tools: Fix synthesizing tracepoint names from the perf.data headers (2012-06-12 11:28:09 -0300)
----------------------------------------------------------------
Fixes for perf/urgent
. Set name of tracepoints when reading the perf.data headers, so that
we don't end up using the local ones, from /sys.
. Fix default output file for perf stat, from Stephane Eranian.
. Fix endian handling of features bitmask in perf.data header, from David Ahern
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
----------------------------------------------------------------
Arnaldo Carvalho de Melo (1):
perf tools: Fix synthesizing tracepoint names from the perf.data headers
David Ahern (1):
perf tools: Fix endianity swapping for adds_features bitmask
Stephane Eranian (1):
perf stat: Fix default output file
tools/perf/builtin-stat.c | 8 +++++-
tools/perf/util/header.c | 48 +++++++++++++++++++++++++++-----
tools/perf/util/include/linux/bitops.h | 2 ++
tools/perf/util/session.c | 10 +++++++
tools/perf/util/session.h | 1 +
5 files changed, 61 insertions(+), 8 deletions(-)
From: Arnaldo Carvalho de Melo <[email protected]>
We need to use the per event info snapshoted at record time to
synthesize the events name, so do it just after reading the perf.data
headers, when we already processed the /sys events data, otherwise we'll
end up using the local /sys that only by sheer luck will have the same
tracepoint ID -> real event association.
Example:
# uname -a
Linux felicio.ghostprotocols.net 3.4.0-rc5+ #1 SMP Sat May 19 15:27:11 BRT 2012 x86_64 x86_64 x86_64 GNU/Linux
# perf record -e sched:sched_switch usleep 1
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.015 MB perf.data (~648 samples) ]
# cat /t/events/sched/sched_switch/id
279
# perf evlist -v
sched:sched_switch: sample_freq=1, type: 2, config: 279, size: 80, sample_type: 1159, read_format: 7, disabled: 1, inherit: 1, mmap: 1, comm: 1, enable_on_exec: 1, sample_id_all: 1, exclude_guest: 1
#
So on the above machine the sched:sched_switch has tracepoint id 279, but on
the machine were we'll analyse it it has a different id:
$ cat /t/events/sched/sched_switch/id
56
$ perf evlist -i /tmp/perf.data
kmem:mm_balancedirty_writeout
$ cat /t/events/kmem/mm_balancedirty_writeout/id
279
With this fix:
$ perf evlist -i /tmp/perf.data
sched:sched_switch
Reported-by: Dmitry Antipov <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/util/header.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 4f9b247..e909d43 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -2093,6 +2093,35 @@ static int read_attr(int fd, struct perf_header *ph,
return ret <= 0 ? -1 : 0;
}
+static int perf_evsel__set_tracepoint_name(struct perf_evsel *evsel)
+{
+ struct event_format *event = trace_find_event(evsel->attr.config);
+ char bf[128];
+
+ if (event == NULL)
+ return -1;
+
+ snprintf(bf, sizeof(bf), "%s:%s", event->system, event->name);
+ evsel->name = strdup(bf);
+ if (event->name == NULL)
+ return -1;
+
+ return 0;
+}
+
+static int perf_evlist__set_tracepoint_names(struct perf_evlist *evlist)
+{
+ struct perf_evsel *pos;
+
+ list_for_each_entry(pos, &evlist->entries, node) {
+ if (pos->attr.type == PERF_TYPE_TRACEPOINT &&
+ perf_evsel__set_tracepoint_name(pos))
+ return -1;
+ }
+
+ return 0;
+}
+
int perf_session__read_header(struct perf_session *session, int fd)
{
struct perf_header *header = &session->header;
@@ -2174,6 +2203,9 @@ int perf_session__read_header(struct perf_session *session, int fd)
lseek(fd, header->data_offset, SEEK_SET);
+ if (perf_evlist__set_tracepoint_names(session->evlist))
+ goto out_delete_evlist;
+
header->frozen = 1;
return 0;
out_errno:
--
1.7.1
From: Stephane Eranian <[email protected]>
The following commit:
commit 56f3bae70638b33477a6015fd362ccfe354fd3ee
Author: Jim Cromie <[email protected]>
Date: Wed Sep 7 17:14:00 2011 -0600
perf stat: Add --log-fd <N> option to redirect stderr elsewhere
introduced a bug in the way perf stat outputs the results by default,
i.e., without the --log-fd or --output option. It would default to
writing to file descriptor 0, i.e., stdin. Writing to stdin is allowed
and is equivalent to writing to stdout. However, there is a major
difference for any script that was already capturing the output of perf
stat via redirection:
perf stat >/tmp/log .... or perf stat 2>/tmp/log ....
They would not capture anything anymore. They would have to do:
perf stat 0>/tmp/log ...
This breaks compatibility with existing scripts and does not look very
natural.
This patch fixes the problem by looking at output_fd only when it was
modified by user (> 0). It also checks that the value if positive.
Passing --log-fd 0 is ignored.
I would also argue that defaulting to stderr for the results is not the
right thing to do, though this patch does not address this specific
issue.
Signed-off-by: Stephane Eranian <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Jim Cromie <[email protected]>
Link: http://lkml.kernel.org/r/20120515111111.GA9870@quad
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/builtin-stat.c | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 2625899..07b5c77 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1179,6 +1179,12 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
fprintf(stderr, "cannot use both --output and --log-fd\n");
usage_with_options(stat_usage, options);
}
+
+ if (output_fd < 0) {
+ fprintf(stderr, "argument to --log-fd must be a > 0\n");
+ usage_with_options(stat_usage, options);
+ }
+
if (!output) {
struct timespec tm;
mode = append_file ? "a" : "w";
@@ -1190,7 +1196,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
}
clock_gettime(CLOCK_REALTIME, &tm);
fprintf(output, "# started on %s\n", ctime(&tm.tv_sec));
- } else if (output_fd != 2) {
+ } else if (output_fd > 0) {
mode = append_file ? "a" : "w";
output = fdopen(output_fd, mode);
if (!output) {
--
1.7.1
From: David Ahern <[email protected]>
Based on Jiri's latest attempt:
https://lkml.org/lkml/2012/5/16/61
Basically, adds_features should be byte swapped assuming unsigned
longs are either 8-bytes (u64) or 4-bytes (u32).
Fixes 32-bit ppc dumping 64-bit x86 feature data:
========
captured on: Sun May 20 19:23:23 2012
hostname : nxos-vdc-dev3
os release : 3.4.0-rc7+
perf version : 3.4.rc4.137.g978da3
arch : x86_64
nrcpus online : 16
nrcpus avail : 16
cpudesc : Intel(R) Xeon(R) CPU E5540 @ 2.53GHz
cpuid : GenuineIntel,6,26,5
total memory : 24680324 kB
...
Verified 64-bit x86 can still dump feature data for 32-bit ppc.
Signed-off-by: David Ahern <[email protected]>
Reviewed-by: Jiri Olsa <[email protected]>
Cc: Corey Ashford <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
tools/perf/util/header.c | 16 +++++++++-------
tools/perf/util/include/linux/bitops.h | 2 ++
tools/perf/util/session.c | 10 ++++++++++
tools/perf/util/session.h | 1 +
4 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 2dd5edf..4f9b247 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -1942,7 +1942,6 @@ int perf_file_header__read(struct perf_file_header *header,
else
return -1;
} else if (ph->needs_swap) {
- unsigned int i;
/*
* feature bitmap is declared as an array of unsigned longs --
* not good since its size can differ between the host that
@@ -1958,14 +1957,17 @@ int perf_file_header__read(struct perf_file_header *header,
* file), punt and fallback to the original behavior --
* clearing all feature bits and setting buildid.
*/
- for (i = 0; i < BITS_TO_LONGS(HEADER_FEAT_BITS); ++i)
- header->adds_features[i] = bswap_64(header->adds_features[i]);
+ mem_bswap_64(&header->adds_features,
+ BITS_TO_U64(HEADER_FEAT_BITS));
if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
- for (i = 0; i < BITS_TO_LONGS(HEADER_FEAT_BITS); ++i) {
- header->adds_features[i] = bswap_64(header->adds_features[i]);
- header->adds_features[i] = bswap_32(header->adds_features[i]);
- }
+ /* unswap as u64 */
+ mem_bswap_64(&header->adds_features,
+ BITS_TO_U64(HEADER_FEAT_BITS));
+
+ /* unswap as u32 */
+ mem_bswap_32(&header->adds_features,
+ BITS_TO_U32(HEADER_FEAT_BITS));
}
if (!test_bit(HEADER_HOSTNAME, header->adds_features)) {
diff --git a/tools/perf/util/include/linux/bitops.h b/tools/perf/util/include/linux/bitops.h
index f158483..587a230 100644
--- a/tools/perf/util/include/linux/bitops.h
+++ b/tools/perf/util/include/linux/bitops.h
@@ -8,6 +8,8 @@
#define BITS_PER_LONG __WORDSIZE
#define BITS_PER_BYTE 8
#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
+#define BITS_TO_U64(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(u64))
+#define BITS_TO_U32(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(u32))
#define for_each_set_bit(bit, addr, size) \
for ((bit) = find_first_bit((addr), (size)); \
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 2600916..c3e399b 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -442,6 +442,16 @@ static void perf_tool__fill_defaults(struct perf_tool *tool)
tool->finished_round = process_finished_round_stub;
}
}
+
+void mem_bswap_32(void *src, int byte_size)
+{
+ u32 *m = src;
+ while (byte_size > 0) {
+ *m = bswap_32(*m);
+ byte_size -= sizeof(u32);
+ ++m;
+ }
+}
void mem_bswap_64(void *src, int byte_size)
{
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h
index 7a5434c..0c702e3 100644
--- a/tools/perf/util/session.h
+++ b/tools/perf/util/session.h
@@ -80,6 +80,7 @@ struct branch_info *machine__resolve_bstack(struct machine *self,
bool perf_session__has_traces(struct perf_session *self, const char *msg);
void mem_bswap_64(void *src, int byte_size);
+void mem_bswap_32(void *src, int byte_size);
void perf_event__attr_swap(struct perf_event_attr *attr);
int perf_session__create_kernel_maps(struct perf_session *self);
--
1.7.1
* Arnaldo Carvalho de Melo <[email protected]> wrote:
> Hi Ingo,
>
> Please consider pulling,
>
> - Arnaldo
>
> The following changes since commit 9ee6ddc9dada9cc4b2201631bc74fbf203183a10:
>
> Merge branch 'tip/perf/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent (2012-06-08 12:23:22 +0200)
>
> are available in the git repository at:
>
>
> git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux tags/perf-urgent-for-mingo
>
> for you to fetch changes up to cb9dd49e11f83d548c822d7022ac180b0518b25c:
>
> perf tools: Fix synthesizing tracepoint names from the perf.data headers (2012-06-12 11:28:09 -0300)
>
> ----------------------------------------------------------------
> Fixes for perf/urgent
>
> . Set name of tracepoints when reading the perf.data headers, so that
> we don't end up using the local ones, from /sys.
>
> . Fix default output file for perf stat, from Stephane Eranian.
>
> . Fix endian handling of features bitmask in perf.data header, from David Ahern
>
> Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
>
> ----------------------------------------------------------------
> Arnaldo Carvalho de Melo (1):
> perf tools: Fix synthesizing tracepoint names from the perf.data headers
>
> David Ahern (1):
> perf tools: Fix endianity swapping for adds_features bitmask
>
> Stephane Eranian (1):
> perf stat: Fix default output file
>
> tools/perf/builtin-stat.c | 8 +++++-
> tools/perf/util/header.c | 48 +++++++++++++++++++++++++++-----
> tools/perf/util/include/linux/bitops.h | 2 ++
> tools/perf/util/session.c | 10 +++++++
> tools/perf/util/session.h | 1 +
> 5 files changed, 61 insertions(+), 8 deletions(-)
Hm, fails to build here:
CC util/parse-events-bison.o
util/parse-events.l: In function ‘__value’:
util/parse-events.l:18:10: error: ‘PE_ERROR’ undeclared (first
use in this function)
util/parse-events.l:18:10: note: each undeclared identifier is
reported only once for each function it appears in
util/parse-events.l:20:2: error: ‘parse_events_lval’ undeclared
(first use in this function)
util/parse-events.l: In function ‘value’:
util/parse-events.l:26:42: error: ‘PE_VALUE’ undeclared (first
use in this function)
util/parse-events.l: In function ‘raw’:
util/parse-events.l:31:44: error: ‘PE_RAW’ undeclared (first use
in this function)
util/parse-events.l: In function ‘str’:
stock Fedora 17 install. 25f42985825d builds fine.
Thanks,
Ingo
Em Thu, Jun 14, 2012 at 12:07:10PM +0200, Ingo Molnar escreveu:
> * Arnaldo Carvalho de Melo <[email protected]> wrote:
> Hm, fails to build here:
>
> CC util/parse-events-bison.o
> util/parse-events.l: In function ‘__value’:
> util/parse-events.l:18:10: error: ‘PE_ERROR’ undeclared (first
> use in this function)
> util/parse-events.l:18:10: note: each undeclared identifier is
> reported only once for each function it appears in
> util/parse-events.l:20:2: error: ‘parse_events_lval’ undeclared
> (first use in this function)
> util/parse-events.l: In function ‘value’:
> util/parse-events.l:26:42: error: ‘PE_VALUE’ undeclared (first
> use in this function)
> util/parse-events.l: In function ‘raw’:
> util/parse-events.l:31:44: error: ‘PE_RAW’ undeclared (first use
> in this function)
> util/parse-events.l: In function ‘str’:
>
> stock Fedora 17 install. 25f42985825d builds fine.
Oops, fixing...
- Arnaldo
Em Thu, Jun 14, 2012 at 12:07:10PM +0200, Ingo Molnar escreveu:
> Hm, fails to build here:
>
> CC util/parse-events-bison.o
> util/parse-events.l: In function ‘__value’:
> util/parse-events.l:18:10: error: ‘PE_ERROR’ undeclared (first
> use in this function)
> util/parse-events.l:18:10: note: each undeclared identifier is
> reported only once for each function it appears in
> util/parse-events.l:20:2: error: ‘parse_events_lval’ undeclared
> (first use in this function)
> util/parse-events.l: In function ‘value’:
> util/parse-events.l:26:42: error: ‘PE_VALUE’ undeclared (first
> use in this function)
> util/parse-events.l: In function ‘raw’:
> util/parse-events.l:31:44: error: ‘PE_RAW’ undeclared (first use
> in this function)
> util/parse-events.l: In function ‘str’:
>
> stock Fedora 17 install. 25f42985825d builds fine.
Is this 32-bit? I'm installing another VM now, but on Fedora 17 x86_64:
[acme@fedora17 linux]$ mkdir -p ../build/perf
[acme@fedora17 linux]$ make -j2 O=/home/acme/git/build/perf -C tools/perf/
make: Entering directory `/home/acme/git/linux/tools/perf'
MKDIR /home/acme/git/build/perf/arch/x86/util/
MKDIR /home/acme/git/build/perf/bench/
MKDIR /home/acme/git/build/perf/scripts/python/Perf-Trace-Util/
MKDIR /home/acme/git/build/perf/ui/
MKDIR /home/acme/git/build/perf/ui/browsers/
MKDIR /home/acme/git/build/perf/ui/gtk/
MKDIR /home/acme/git/build/perf/ui/tui/
MKDIR /home/acme/git/build/perf/util/
MKDIR /home/acme/git/build/perf/util/scripting-engines/
PERF_VERSION = 3.5.rc1.87.gcb9dd4
make: Leaving directory `/home/acme/git/linux/tools/perf'
make: Entering directory `/home/acme/git/linux/tools/perf'
GEN /home/acme/git/build/perf/common-cmds.h
* new build flags or prefix
CC /home/acme/git/build/perf/bench/mem-memcpy-x86-64-asm.o
CC /home/acme/git/build/perf/bench/mem-memset-x86-64-asm.o
CC /home/acme/git/build/perf/bench/mem-memcpy.o
CC /home/acme/git/build/perf/bench/mem-memset.o
CC /home/acme/git/build/perf/builtin-diff.o
CC /home/acme/git/build/perf/builtin-evlist.o
CC /home/acme/git/build/perf/builtin-help.o
CC /home/acme/git/build/perf/builtin-sched.o
CC /home/acme/git/build/perf/builtin-buildid-list.o
CC /home/acme/git/build/perf/builtin-buildid-cache.o
CC /home/acme/git/build/perf/builtin-list.o
CC /home/acme/git/build/perf/builtin-record.o
CC /home/acme/git/build/perf/builtin-report.o
CC /home/acme/git/build/perf/builtin-stat.o
CC /home/acme/git/build/perf/builtin-timechart.o
CC /home/acme/git/build/perf/builtin-top.o
CC /home/acme/git/build/perf/builtin-script.o
CC /home/acme/git/build/perf/builtin-probe.o
CC /home/acme/git/build/perf/builtin-kmem.o
CC /home/acme/git/build/perf/builtin-lock.o
CC /home/acme/git/build/perf/builtin-kvm.o
CC /home/acme/git/build/perf/builtin-test.o
CC /home/acme/git/build/perf/builtin-inject.o
CC /home/acme/git/build/perf/util/abspath.o
CC /home/acme/git/build/perf/util/alias.o
CC /home/acme/git/build/perf/util/annotate.o
CC /home/acme/git/build/perf/util/build-id.o
CC /home/acme/git/build/perf/util/config.o
CC /home/acme/git/build/perf/util/ctype.o
CC /home/acme/git/build/perf/util/debugfs.o
CC /home/acme/git/build/perf/util/sysfs.o
FLEX /home/acme/git/build/perf/util/pmu-flex.c
BISON /home/acme/git/build/perf/util/pmu-bison.c
CC /home/acme/git/build/perf/util/environment.o
CC /home/acme/git/build/perf/util/event.o
CC /home/acme/git/build/perf/util/evlist.o
CC /home/acme/git/build/perf/util/evsel.o
CC /home/acme/git/build/perf/util/exec_cmd.o
CC /home/acme/git/build/perf/util/help.o
CC /home/acme/git/build/perf/util/levenshtein.o
CC /home/acme/git/build/perf/util/parse-options.o
FLEX /home/acme/git/build/perf/util/parse-events-flex.c
BISON /home/acme/git/build/perf/util/parse-events-bison.c
CC /home/acme/git/build/perf/util/parse-events-test.o
CC /home/acme/git/build/perf/util/path.o
CC /home/acme/git/build/perf/util/rbtree.o
CC /home/acme/git/build/perf/util/bitmap.o
CC /home/acme/git/build/perf/util/hweight.o
CC /home/acme/git/build/perf/util/run-command.o
CC /home/acme/git/build/perf/util/quote.o
CC /home/acme/git/build/perf/util/strbuf.o
CC /home/acme/git/build/perf/util/string.o
CC /home/acme/git/build/perf/util/strlist.o
CC /home/acme/git/build/perf/util/strfilter.o
CC /home/acme/git/build/perf/util/top.o
CC /home/acme/git/build/perf/util/usage.o
CC /home/acme/git/build/perf/util/wrapper.o
CC /home/acme/git/build/perf/util/sigchain.o
CC /home/acme/git/build/perf/util/symbol.o
CC /home/acme/git/build/perf/util/color.o
CC /home/acme/git/build/perf/util/pager.o
CC /home/acme/git/build/perf/util/header.o
CC /home/acme/git/build/perf/util/callchain.o
CC /home/acme/git/build/perf/util/values.o
CC /home/acme/git/build/perf/util/debug.o
CC /home/acme/git/build/perf/util/map.o
CC /home/acme/git/build/perf/util/pstack.o
CC /home/acme/git/build/perf/util/session.o
CC /home/acme/git/build/perf/util/thread.o
CC /home/acme/git/build/perf/util/thread_map.o
CC /home/acme/git/build/perf/util/trace-event-parse.o
CC /home/acme/git/build/perf/util/parse-events-flex.o
CC /home/acme/git/build/perf/util/parse-events-bison.o
CC /home/acme/git/build/perf/util/pmu-flex.o
CC /home/acme/git/build/perf/util/pmu-bison.o
CC /home/acme/git/build/perf/util/trace-event-read.o
CC /home/acme/git/build/perf/util/trace-event-info.o
CC /home/acme/git/build/perf/util/trace-event-scripting.o
CC /home/acme/git/build/perf/util/svghelper.o
CC /home/acme/git/build/perf/util/sort.o
CC /home/acme/git/build/perf/util/hist.o
CC /home/acme/git/build/perf/util/probe-event.o
CC /home/acme/git/build/perf/util/util.o
CC /home/acme/git/build/perf/util/xyarray.o
CC /home/acme/git/build/perf/util/cpumap.o
CC /home/acme/git/build/perf/util/cgroup.o
CC /home/acme/git/build/perf/util/target.o
CC /home/acme/git/build/perf/arch/x86/util/dwarf-regs.o
CC /home/acme/git/build/perf/arch/x86/util/header.o
CC /home/acme/git/build/perf/util/probe-finder.o
CC /home/acme/git/build/perf/util/dwarf-aux.o
CC /home/acme/git/build/perf/ui/setup.o
CC /home/acme/git/build/perf/ui/browser.o
CC /home/acme/git/build/perf/ui/browsers/annotate.o
CC /home/acme/git/build/perf/ui/browsers/hists.o
CC /home/acme/git/build/perf/ui/browsers/map.o
CC /home/acme/git/build/perf/ui/helpline.o
CC /home/acme/git/build/perf/ui/progress.o
CC /home/acme/git/build/perf/ui/util.o
CC /home/acme/git/build/perf/ui/tui/setup.o
CC /home/acme/git/build/perf/ui/gtk/browser.o
CC /home/acme/git/build/perf/ui/gtk/setup.o
CC /home/acme/git/build/perf/util/scripting-engines/trace-event-python.o
CC /home/acme/git/build/perf/scripts/python/Perf-Trace-Util/Context.o
make[1]: Entering directory `/home/acme/git/linux/tools/lib/traceevent'
make[2]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule.
GEN perf-archive
CC FPIC event-parse.o
GEN /home/acme/git/build/perf/python/perf.so
CC FPIC trace-seq.o
CC FPIC parse-filter.o
CC FPIC parse-utils.o
BUILD STATIC LIB libtraceevent.a
make[1]: Leaving directory `/home/acme/git/linux/tools/lib/traceevent'
CC /home/acme/git/build/perf/perf.o
CC /home/acme/git/build/perf/builtin-annotate.o
CC /home/acme/git/build/perf/builtin-bench.o
CC /home/acme/git/build/perf/bench/sched-messaging.o
CC /home/acme/git/build/perf/bench/sched-pipe.o
CC /home/acme/git/build/perf/util/pmu.o
CC /home/acme/git/build/perf/util/parse-events.o
AR /home/acme/git/build/perf/libperf.a
LINK /home/acme/git/build/perf/perf
make: Leaving directory `/home/acme/git/linux/tools/perf'
[acme@fedora17 linux]$ cat /etc/fedora-release
Fedora release 17 (Beefy Miracle)
[acme@fedora17 linux]$
[acme@fedora17 linux]$ git describe
perf-urgent-for-mingo
[acme@fedora17 linux]$ git describe --match 'v[0-9].[0-9]*'
v3.5-rc1-87-gcb9dd49
[acme@fedora17 linux]$ git branch | grep '*'
* perf/urgent
[acme@fedora17 linux]$ uname -a
Linux fedora17.ghostprotocols.net 3.4.0-1.fc17.x86_64 #1 SMP Sun Jun 3 06:35:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
[acme@fedora17 linux]$
* Arnaldo Carvalho de Melo <[email protected]> wrote:
> Em Thu, Jun 14, 2012 at 12:07:10PM +0200, Ingo Molnar escreveu:
> > Hm, fails to build here:
> >
> > CC util/parse-events-bison.o
> > util/parse-events.l: In function ‘__value’:
> > util/parse-events.l:18:10: error: ‘PE_ERROR’ undeclared (first
> > use in this function)
> > util/parse-events.l:18:10: note: each undeclared identifier is
> > reported only once for each function it appears in
> > util/parse-events.l:20:2: error: ‘parse_events_lval’ undeclared
> > (first use in this function)
> > util/parse-events.l: In function ‘value’:
> > util/parse-events.l:26:42: error: ‘PE_VALUE’ undeclared (first
> > use in this function)
> > util/parse-events.l: In function ‘raw’:
> > util/parse-events.l:31:44: error: ‘PE_RAW’ undeclared (first use
> > in this function)
> > util/parse-events.l: In function ‘str’:
> >
> > stock Fedora 17 install. 25f42985825d builds fine.
>
> Is this 32-bit? I'm installing another VM now, but on Fedora 17 x86_64:
No, 64-bit - I'll send you more info off-list.
Thanks,
Ingo
The build does not want to fail anymore :-/
I have no idea what state my tree was in - but I re-applied your
patches and the failure happened again in 'make -j':
CC builtin-help.o
CC builtin-timechart.o
util/parse-events.l: In function ‘__value’:
util/parse-events.l:18:10: error: ‘PE_ERROR’ undeclared (first
use in this function)
util/parse-events.l:18:10: note: each undeclared identifier is
reported only once for each function it appears in
util/parse-events.l:20:2: error: ‘parse_events_lval’ undeclared
(first use in this function)
util/parse-events.l: In function ‘value’:
util/parse-events.l:26:42: error: ‘PE_VALUE’ undeclared (first
use in this function)
then I took off the last patch and did a 'make' - and the bug
did not re-trigger, even after applying your patches again.
It could be some sort of build dependency problem with the flex
files.
Thanks,
Ingo
so, the build dependency bug is hard to trigger and I've pulled
your fixes for the time being because they seem to be unrelated.
Thanks,
Ingo