* [PATCH 0/3] perf fixes
@ 2014-01-20 11:39 Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 1/3] perf timechart: fix wrong SVG height Stanislav Fomichev
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Stanislav Fomichev @ 2014-01-20 11:39 UTC (permalink / raw)
To: a.p.zijlstra, paulus, mingo, acme, stfomichev, namhyung, jolsa,
dsahern, adrian.hunter
Cc: linux-kernel
This series contains couple of unrelated changes. I already sent two of them
(perf util, perf tools) to the lkml but didn't get any response.
Thus resending them along with new perf timechart fix.
- perf timechart: fix wrong SVG height
removes unused empty space from generated SVG when called with -p 0 option
- perf util: free cpu_map in perf_session__cpu_bitmap
frees temporary cpu_map
- perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd
this is a patch I'd like to get feedback on. The motivation behind it is to
have a possibility to link without libbfd (because on 3.10 lts NO_DEMANGLE=1
does not link with libbfd and I'd like to preserve this behavior).
Stanislav Fomichev (3):
perf timechart: fix wrong SVG height
perf util: free cpu_map in perf_session__cpu_bitmap
perf tools: bring back old behavior when NO_DEMAGLE doesn't link with
libbfd
tools/perf/builtin-timechart.c | 3 +++
tools/perf/config/Makefile | 8 +++-----
tools/perf/util/session.c | 2 ++
3 files changed, 8 insertions(+), 5 deletions(-)
--
1.8.3.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/3] perf timechart: fix wrong SVG height
2014-01-20 11:39 [PATCH 0/3] perf fixes Stanislav Fomichev
@ 2014-01-20 11:39 ` Stanislav Fomichev
2014-01-23 17:03 ` [tip:perf/urgent] perf timechart: Fix " tip-bot for Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 2/3] perf util: free cpu_map in perf_session__cpu_bitmap Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd Stanislav Fomichev
2 siblings, 1 reply; 8+ messages in thread
From: Stanislav Fomichev @ 2014-01-20 11:39 UTC (permalink / raw)
To: a.p.zijlstra, paulus, mingo, acme, stfomichev, namhyung, jolsa,
dsahern, adrian.hunter
Cc: linux-kernel
If we call perf timechart with -p 0 arguments, it means we don't
want any tasks related data. It works, but space for tasks data is
reserved in the generated SVG. Remove this unused empty space via
passing 0 as count to the open_svg.
Signed-off-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
---
tools/perf/builtin-timechart.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 652af0b66a62..25526d6eae59 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -1045,6 +1045,9 @@ static void write_svg_file(struct timechart *tchart, const char *filename)
thresh /= 10;
} while (!process_filter && thresh && count < tchart->proc_num);
+ if (!tchart->proc_num)
+ count = 0;
+
open_svg(filename, tchart->numcpus, count, tchart->first_time, tchart->last_time);
svg_time_grid();
--
1.8.3.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/3] perf util: free cpu_map in perf_session__cpu_bitmap
2014-01-20 11:39 [PATCH 0/3] perf fixes Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 1/3] perf timechart: fix wrong SVG height Stanislav Fomichev
@ 2014-01-20 11:39 ` Stanislav Fomichev
2014-01-23 17:03 ` [tip:perf/urgent] perf session: Free " tip-bot for Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd Stanislav Fomichev
2 siblings, 1 reply; 8+ messages in thread
From: Stanislav Fomichev @ 2014-01-20 11:39 UTC (permalink / raw)
To: a.p.zijlstra, paulus, mingo, acme, stfomichev, namhyung, jolsa,
dsahern, adrian.hunter
Cc: linux-kernel
Signed-off-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
---
tools/perf/util/session.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 7acc03e8f3b2..03815af30b16 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -1600,6 +1600,7 @@ int perf_session__cpu_bitmap(struct perf_session *session,
int cpu = map->map[i];
if (cpu >= MAX_NR_CPUS) {
+ cpu_map__delete(map);
pr_err("Requested CPU %d too large. "
"Consider raising MAX_NR_CPUS\n", cpu);
return -1;
@@ -1607,6 +1608,7 @@ int perf_session__cpu_bitmap(struct perf_session *session,
set_bit(cpu, cpu_bitmap);
}
+ cpu_map__delete(map);
return 0;
}
--
1.8.3.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd
2014-01-20 11:39 [PATCH 0/3] perf fixes Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 1/3] perf timechart: fix wrong SVG height Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 2/3] perf util: free cpu_map in perf_session__cpu_bitmap Stanislav Fomichev
@ 2014-01-20 11:39 ` Stanislav Fomichev
2014-01-20 13:22 ` Arnaldo Carvalho de Melo
2 siblings, 1 reply; 8+ messages in thread
From: Stanislav Fomichev @ 2014-01-20 11:39 UTC (permalink / raw)
To: a.p.zijlstra, paulus, mingo, acme, stfomichev, namhyung, jolsa,
dsahern, adrian.hunter
Cc: linux-kernel
This commit reverts part of the 3e6a147deef9 "perf tools: Separate lbfd
check out of NO_DEMANGLE condition" which always links perf with libbfd.
I'd like to preserve old behavior when NO_DEMAGLE does not link with
it, because some machines may contain different versions of binutils
(hence miss required libbfd version) and I still want an option to build perf
which works on any machine regardless of binutils version.
Signed-off-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
---
tools/perf/config/Makefile | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
index d604e50fc167..4b76865c9bef 100644
--- a/tools/perf/config/Makefile
+++ b/tools/perf/config/Makefile
@@ -477,10 +477,6 @@ else
endif
endif
-ifeq ($(feature-libbfd), 1)
- EXTLIBS += -lbfd
-endif
-
ifdef NO_DEMANGLE
CFLAGS += -DNO_DEMANGLE
else
@@ -488,7 +484,9 @@ else
EXTLIBS += -liberty
CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
else
- ifneq ($(feature-libbfd), 1)
+ ifeq ($(feature-libbfd), 1)
+ EXTLIBS += -lbfd
+ else
$(call feature_check,liberty)
ifeq ($(feature-liberty), 1)
EXTLIBS += -lbfd -liberty
--
1.8.3.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd
2014-01-20 11:39 ` [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd Stanislav Fomichev
@ 2014-01-20 13:22 ` Arnaldo Carvalho de Melo
2014-01-20 17:19 ` Andi Kleen
0 siblings, 1 reply; 8+ messages in thread
From: Arnaldo Carvalho de Melo @ 2014-01-20 13:22 UTC (permalink / raw)
To: Stanislav Fomichev
Cc: a.p.zijlstra, paulus, mingo, namhyung, jolsa, dsahern,
adrian.hunter, linux-kernel, Andi Kleen
Em Mon, Jan 20, 2014 at 03:39:40PM +0400, Stanislav Fomichev escreveu:
> This commit reverts part of the 3e6a147deef9 "perf tools: Separate lbfd
> check out of NO_DEMANGLE condition" which always links perf with libbfd.
> I'd like to preserve old behavior when NO_DEMAGLE does not link with
> it, because some machines may contain different versions of binutils
> (hence miss required libbfd version) and I still want an option to build perf
> which works on any machine regardless of binutils version.
This is a tricky part, with another recent patch touching it to make it
work on opensuse, where a linker script is not present to ask for extra
libs.
IIRC Andi's change made the if-else block to be irrelevant, if IIRC from
reading Namhyung and Jiri Olsa comments, so, what were the tests you
performed? I.e. which distros did you test your change on?
For reference, this is the change from Andi to make it work on some
opensuse release:
http://lkml.kernel.org/r/1389661461-18996-2-git-send-email-andi@firstfloor.org
I processed the two other patches, thanks,
- Arnaldo
> Signed-off-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
> ---
> tools/perf/config/Makefile | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
> index d604e50fc167..4b76865c9bef 100644
> --- a/tools/perf/config/Makefile
> +++ b/tools/perf/config/Makefile
> @@ -477,10 +477,6 @@ else
> endif
> endif
>
> -ifeq ($(feature-libbfd), 1)
> - EXTLIBS += -lbfd
> -endif
> -
> ifdef NO_DEMANGLE
> CFLAGS += -DNO_DEMANGLE
> else
> @@ -488,7 +484,9 @@ else
> EXTLIBS += -liberty
> CFLAGS += -DHAVE_CPLUS_DEMANGLE_SUPPORT
> else
> - ifneq ($(feature-libbfd), 1)
> + ifeq ($(feature-libbfd), 1)
> + EXTLIBS += -lbfd
> + else
> $(call feature_check,liberty)
> ifeq ($(feature-liberty), 1)
> EXTLIBS += -lbfd -liberty
> --
> 1.8.3.2
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd
2014-01-20 13:22 ` Arnaldo Carvalho de Melo
@ 2014-01-20 17:19 ` Andi Kleen
0 siblings, 0 replies; 8+ messages in thread
From: Andi Kleen @ 2014-01-20 17:19 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo
Cc: Stanislav Fomichev, a.p.zijlstra, paulus, mingo, namhyung, jolsa,
dsahern, adrian.hunter, linux-kernel, Andi Kleen
On Mon, Jan 20, 2014 at 10:22:25AM -0300, Arnaldo Carvalho de Melo wrote:
> Em Mon, Jan 20, 2014 at 03:39:40PM +0400, Stanislav Fomichev escreveu:
> > This commit reverts part of the 3e6a147deef9 "perf tools: Separate lbfd
> > check out of NO_DEMANGLE condition" which always links perf with libbfd.
> > I'd like to preserve old behavior when NO_DEMAGLE does not link with
> > it, because some machines may contain different versions of binutils
> > (hence miss required libbfd version) and I still want an option to build perf
> > which works on any machine regardless of binutils version.
BFD is not only used for demangling, it's also used for decoding
source lines now. So tying it only to NO_DEMANGLE would not be correct.
-Andi
^ permalink raw reply [flat|nested] 8+ messages in thread
* [tip:perf/urgent] perf timechart: Fix wrong SVG height
2014-01-20 11:39 ` [PATCH 1/3] perf timechart: fix wrong SVG height Stanislav Fomichev
@ 2014-01-23 17:03 ` tip-bot for Stanislav Fomichev
0 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Stanislav Fomichev @ 2014-01-23 17:03 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, mingo, hpa, mingo, a.p.zijlstra,
namhyung, jolsa, stfomichev, adrian.hunter, dsahern, tglx
Commit-ID: 3415d8b851307c75a1e8aa16030db9172306df78
Gitweb: http://git.kernel.org/tip/3415d8b851307c75a1e8aa16030db9172306df78
Author: Stanislav Fomichev <stfomichev@yandex-team.ru>
AuthorDate: Mon, 20 Jan 2014 15:39:38 +0400
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 20 Jan 2014 16:19:08 -0300
perf timechart: Fix wrong SVG height
If we call perf timechart with -p 0 arguments, it means we don't want
any tasks related data. It works, but space for tasks data is reserved
in the generated SVG. Remove this unused empty space via passing 0 as
count to the open_svg.
Signed-off-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1390217980-22424-2-git-send-email-stfomichev@yandex-team.ru
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/builtin-timechart.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/tools/perf/builtin-timechart.c b/tools/perf/builtin-timechart.c
index 652af0b..25526d6 100644
--- a/tools/perf/builtin-timechart.c
+++ b/tools/perf/builtin-timechart.c
@@ -1045,6 +1045,9 @@ static void write_svg_file(struct timechart *tchart, const char *filename)
thresh /= 10;
} while (!process_filter && thresh && count < tchart->proc_num);
+ if (!tchart->proc_num)
+ count = 0;
+
open_svg(filename, tchart->numcpus, count, tchart->first_time, tchart->last_time);
svg_time_grid();
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [tip:perf/urgent] perf session: Free cpu_map in perf_session__cpu_bitmap
2014-01-20 11:39 ` [PATCH 2/3] perf util: free cpu_map in perf_session__cpu_bitmap Stanislav Fomichev
@ 2014-01-23 17:03 ` tip-bot for Stanislav Fomichev
0 siblings, 0 replies; 8+ messages in thread
From: tip-bot for Stanislav Fomichev @ 2014-01-23 17:03 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, linux-kernel, paulus, mingo, hpa, mingo, a.p.zijlstra,
namhyung, jolsa, stfomichev, adrian.hunter, dsahern, tglx
Commit-ID: 8bac41cbfe2efe55e2b93673b84761ed7dd75f69
Gitweb: http://git.kernel.org/tip/8bac41cbfe2efe55e2b93673b84761ed7dd75f69
Author: Stanislav Fomichev <stfomichev@yandex-team.ru>
AuthorDate: Mon, 20 Jan 2014 15:39:39 +0400
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 20 Jan 2014 16:19:08 -0300
perf session: Free cpu_map in perf_session__cpu_bitmap
This method uses a temporary struct cpu_map to figure out the cpus
present in the received cpu list in string form, but it failed to free
it after returning. Fix it.
Signed-off-by: Stanislav Fomichev <stfomichev@yandex-team.ru>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1390217980-22424-3-git-send-email-stfomichev@yandex-team.ru
[ Use goto + err = -1 to do the delete just once, in the normal exit path ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/session.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c
index 7acc03e..0b39a48 100644
--- a/tools/perf/util/session.c
+++ b/tools/perf/util/session.c
@@ -1573,7 +1573,7 @@ next:
int perf_session__cpu_bitmap(struct perf_session *session,
const char *cpu_list, unsigned long *cpu_bitmap)
{
- int i;
+ int i, err = -1;
struct cpu_map *map;
for (i = 0; i < PERF_TYPE_MAX; ++i) {
@@ -1602,13 +1602,17 @@ int perf_session__cpu_bitmap(struct perf_session *session,
if (cpu >= MAX_NR_CPUS) {
pr_err("Requested CPU %d too large. "
"Consider raising MAX_NR_CPUS\n", cpu);
- return -1;
+ goto out_delete_map;
}
set_bit(cpu, cpu_bitmap);
}
- return 0;
+ err = 0;
+
+out_delete_map:
+ cpu_map__delete(map);
+ return err;
}
void perf_session__fprintf_info(struct perf_session *session, FILE *fp,
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-01-23 17:04 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-01-20 11:39 [PATCH 0/3] perf fixes Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 1/3] perf timechart: fix wrong SVG height Stanislav Fomichev
2014-01-23 17:03 ` [tip:perf/urgent] perf timechart: Fix " tip-bot for Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 2/3] perf util: free cpu_map in perf_session__cpu_bitmap Stanislav Fomichev
2014-01-23 17:03 ` [tip:perf/urgent] perf session: Free " tip-bot for Stanislav Fomichev
2014-01-20 11:39 ` [PATCH 3/3] perf tools: bring back old behavior when NO_DEMAGLE doesn't link with libbfd Stanislav Fomichev
2014-01-20 13:22 ` Arnaldo Carvalho de Melo
2014-01-20 17:19 ` Andi Kleen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).