* [PATCH 0/4] Fixes for perf/scripting
@ 2009-11-30 7:18 Tom Zanussi
2009-11-30 7:18 ` [PATCH 1/4] perf trace/scripting: silence PERL_EMBED_* backtick errors Tom Zanussi
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Tom Zanussi @ 2009-11-30 7:18 UTC (permalink / raw)
To: linux-kernel; +Cc: mingo, fweisbec, rostedt, anton, hch
Tom Zanussi (4):
perf trace/scripting: silence PERL_EMBED_* backtick errors
perf trace/scripting: ignore shadowed variable warning for
perf-trace-perl.c
perf trace/scripting: fix Perl common_* access functions
perf trace/scripting: Add Fedora libperl install note to doc
tools/perf/Makefile | 6 ++--
tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 30 ++++++++++----------
tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 ++--
tools/perf/scripts/perl/Perf-Trace-Util/README | 4 +-
tools/perf/util/trace-event-perl.c | 10 ++++--
tools/perf/util/trace-event-perl.h | 6 ++--
6 files changed, 32 insertions(+), 30 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread* [PATCH 1/4] perf trace/scripting: silence PERL_EMBED_* backtick errors 2009-11-30 7:18 [PATCH 0/4] Fixes for perf/scripting Tom Zanussi @ 2009-11-30 7:18 ` Tom Zanussi 2009-11-30 8:23 ` [tip:perf/scripting] perf trace/scripting: Silence " tip-bot for Tom Zanussi 2009-11-30 7:18 ` [PATCH 2/4] perf trace/scripting: ignore shadowed variable warning for perf-trace-perl.c Tom Zanussi ` (3 subsequent siblings) 4 siblings, 1 reply; 11+ messages in thread From: Tom Zanussi @ 2009-11-30 7:18 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, fweisbec, rostedt, anton, hch The backtick shell substitutions for PERL_EMBED_LDOPT/CCOPT make a lot of noise on stderr if Embed.pm isn't installed - this silences them. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> --- tools/perf/Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 8ad57b5..d62a2d7 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -490,8 +490,8 @@ else LIB_OBJS += util/probe-finder.o endif -PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts` -PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts` +PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts 2>/dev/null` +PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` ifneq ($(shell sh -c "(echo '\#include <EXTERN.h>'; echo '\#include <perl.h>'; echo 'int main(void) { perl_alloc(); return 0; }') | $(CC) -x c - $(PERL_EMBED_CCOPTS) -o /dev/null $(PERL_EMBED_LDOPTS) > /dev/null 2>&1 && echo y"), y) BASIC_CFLAGS += -DNO_LIBPERL -- 1.6.4.GIT ^ permalink raw reply [flat|nested] 11+ messages in thread
* [tip:perf/scripting] perf trace/scripting: Silence PERL_EMBED_* backtick errors 2009-11-30 7:18 ` [PATCH 1/4] perf trace/scripting: silence PERL_EMBED_* backtick errors Tom Zanussi @ 2009-11-30 8:23 ` tip-bot for Tom Zanussi 0 siblings, 0 replies; 11+ messages in thread From: tip-bot for Tom Zanussi @ 2009-11-30 8:23 UTC (permalink / raw) To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, tzanussi, tglx, mingo Commit-ID: f8be4231f82ab56a87ce74906671afbe1aa9ec75 Gitweb: http://git.kernel.org/tip/f8be4231f82ab56a87ce74906671afbe1aa9ec75 Author: Tom Zanussi <tzanussi@gmail.com> AuthorDate: Mon, 30 Nov 2009 01:18:46 -0600 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Mon, 30 Nov 2009 09:03:59 +0100 perf trace/scripting: Silence PERL_EMBED_* backtick errors The backtick shell substitutions for PERL_EMBED_LDOPT/CCOPT make a lot of noise on stderr if Embed.pm isn't installed - this silences them. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Cc: fweisbec@gmail.com Cc: rostedt@goodmis.org Cc: anton@samba.org Cc: hch@infradead.org LKML-Reference: <1259565529-6407-2-git-send-email-tzanussi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- tools/perf/Makefile | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index 8ad57b5..d62a2d7 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -490,8 +490,8 @@ else LIB_OBJS += util/probe-finder.o endif -PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts` -PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts` +PERL_EMBED_LDOPTS = `perl -MExtUtils::Embed -e ldopts 2>/dev/null` +PERL_EMBED_CCOPTS = `perl -MExtUtils::Embed -e ccopts 2>/dev/null` ifneq ($(shell sh -c "(echo '\#include <EXTERN.h>'; echo '\#include <perl.h>'; echo 'int main(void) { perl_alloc(); return 0; }') | $(CC) -x c - $(PERL_EMBED_CCOPTS) -o /dev/null $(PERL_EMBED_LDOPTS) > /dev/null 2>&1 && echo y"), y) BASIC_CFLAGS += -DNO_LIBPERL ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 2/4] perf trace/scripting: ignore shadowed variable warning for perf-trace-perl.c 2009-11-30 7:18 [PATCH 0/4] Fixes for perf/scripting Tom Zanussi 2009-11-30 7:18 ` [PATCH 1/4] perf trace/scripting: silence PERL_EMBED_* backtick errors Tom Zanussi @ 2009-11-30 7:18 ` Tom Zanussi 2009-11-30 8:23 ` [tip:perf/scripting] perf trace/scripting: Ignore " tip-bot for Tom Zanussi 2009-11-30 7:18 ` [PATCH 3/4] perf trace/scripting: fix Perl common_* access functions Tom Zanussi ` (2 subsequent siblings) 4 siblings, 1 reply; 11+ messages in thread From: Tom Zanussi @ 2009-11-30 7:18 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, fweisbec, rostedt, anton, hch The debugging versions of the ENTER and LEAVE internal perl macros, used when embedding perl, define a local block with a my_perl perl variable that shadows a global variable of the same name, which is also the name expected by the embedding API for the embedded interpreter. Since we don't have control over the code generated in this case and can't get rid of the warning, ignore it. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> --- tools/perf/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index d62a2d7..20cd663 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -872,7 +872,7 @@ util/find_next_bit.o: ../../lib/find_next_bit.c PERF-CFLAGS $(QUIET_CC)$(CC) -o util/find_next_bit.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< util/trace-event-perl.o: util/trace-event-perl.c PERF-CFLAGS - $(QUIET_CC)$(CC) -o util/trace-event-perl.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter $< + $(QUIET_CC)$(CC) -o util/trace-event-perl.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $< scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c PERF-CFLAGS $(QUIET_CC)$(CC) -o scripts/perl/Perf-Trace-Util/Context.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $< -- 1.6.4.GIT ^ permalink raw reply [flat|nested] 11+ messages in thread
* [tip:perf/scripting] perf trace/scripting: Ignore shadowed variable warning for perf-trace-perl.c 2009-11-30 7:18 ` [PATCH 2/4] perf trace/scripting: ignore shadowed variable warning for perf-trace-perl.c Tom Zanussi @ 2009-11-30 8:23 ` tip-bot for Tom Zanussi 0 siblings, 0 replies; 11+ messages in thread From: tip-bot for Tom Zanussi @ 2009-11-30 8:23 UTC (permalink / raw) To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, tzanussi, tglx, mingo Commit-ID: e136323c5a8a7d91d17c5b7b340758bb9dd33739 Gitweb: http://git.kernel.org/tip/e136323c5a8a7d91d17c5b7b340758bb9dd33739 Author: Tom Zanussi <tzanussi@gmail.com> AuthorDate: Mon, 30 Nov 2009 01:18:47 -0600 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Mon, 30 Nov 2009 09:04:00 +0100 perf trace/scripting: Ignore shadowed variable warning for perf-trace-perl.c The debugging versions of the ENTER and LEAVE internal perl macros, used when embedding perl, define a local block with a my_perl perl variable that shadows a global variable of the same name, which is also the name expected by the embedding API for the embedded interpreter. Since we don't have control over the code generated in this case (it's an externality) and can't get rid of the warning, ignore it. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Cc: fweisbec@gmail.com Cc: rostedt@goodmis.org Cc: anton@samba.org Cc: hch@infradead.org LKML-Reference: <1259565529-6407-3-git-send-email-tzanussi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- tools/perf/Makefile | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/tools/perf/Makefile b/tools/perf/Makefile index d62a2d7..20cd663 100644 --- a/tools/perf/Makefile +++ b/tools/perf/Makefile @@ -872,7 +872,7 @@ util/find_next_bit.o: ../../lib/find_next_bit.c PERF-CFLAGS $(QUIET_CC)$(CC) -o util/find_next_bit.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $< util/trace-event-perl.o: util/trace-event-perl.c PERF-CFLAGS - $(QUIET_CC)$(CC) -o util/trace-event-perl.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter $< + $(QUIET_CC)$(CC) -o util/trace-event-perl.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-shadow $< scripts/perl/Perf-Trace-Util/Context.o: scripts/perl/Perf-Trace-Util/Context.c PERF-CFLAGS $(QUIET_CC)$(CC) -o scripts/perl/Perf-Trace-Util/Context.o -c $(ALL_CFLAGS) $(PERL_EMBED_CCOPTS) -Wno-redundant-decls -Wno-strict-prototypes -Wno-unused-parameter -Wno-nested-externs $< ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 3/4] perf trace/scripting: fix Perl common_* access functions 2009-11-30 7:18 [PATCH 0/4] Fixes for perf/scripting Tom Zanussi 2009-11-30 7:18 ` [PATCH 1/4] perf trace/scripting: silence PERL_EMBED_* backtick errors Tom Zanussi 2009-11-30 7:18 ` [PATCH 2/4] perf trace/scripting: ignore shadowed variable warning for perf-trace-perl.c Tom Zanussi @ 2009-11-30 7:18 ` Tom Zanussi 2009-11-30 8:24 ` [tip:perf/scripting] perf trace/scripting: Fix " tip-bot for Tom Zanussi 2009-11-30 7:18 ` [PATCH 4/4] perf trace/scripting: Add Fedora libperl install note to doc Tom Zanussi 2009-11-30 8:19 ` [PATCH 0/4] Fixes for perf/scripting Ingo Molnar 4 siblings, 1 reply; 11+ messages in thread From: Tom Zanussi @ 2009-11-30 7:18 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, fweisbec, rostedt, anton, hch The common_* functions (e.g. common_pc(), etc) are exported as common_* but named get_common_*, resulting in unresolved subroutine errors when executing scripts. Make the internal and external names match. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> --- tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 30 ++++++++++---------- tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 ++-- tools/perf/util/trace-event-perl.c | 6 ++-- tools/perf/util/trace-event-perl.h | 6 ++-- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c index 3ba3ffc..af78d9a 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c @@ -39,8 +39,8 @@ #line 41 "Context.c" -XS(XS_Perf__Trace__Context_get_common_pc); /* prototype to pass -Wmissing-prototypes */ -XS(XS_Perf__Trace__Context_get_common_pc) +XS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Perf__Trace__Context_common_pc) { #ifdef dVAR dVAR; dXSARGS; @@ -48,22 +48,22 @@ XS(XS_Perf__Trace__Context_get_common_pc) dXSARGS; #endif if (items != 1) - Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::get_common_pc", "context"); + Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_pc", "context"); PERL_UNUSED_VAR(cv); /* -W */ { struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0))); int RETVAL; dXSTARG; - RETVAL = get_common_pc(context); + RETVAL = common_pc(context); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } -XS(XS_Perf__Trace__Context_get_common_flags); /* prototype to pass -Wmissing-prototypes */ -XS(XS_Perf__Trace__Context_get_common_flags) +XS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Perf__Trace__Context_common_flags) { #ifdef dVAR dVAR; dXSARGS; @@ -71,22 +71,22 @@ XS(XS_Perf__Trace__Context_get_common_flags) dXSARGS; #endif if (items != 1) - Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::get_common_flags", "context"); + Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_flags", "context"); PERL_UNUSED_VAR(cv); /* -W */ { struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0))); int RETVAL; dXSTARG; - RETVAL = get_common_flags(context); + RETVAL = common_flags(context); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } -XS(XS_Perf__Trace__Context_get_common_lock_depth); /* prototype to pass -Wmissing-prototypes */ -XS(XS_Perf__Trace__Context_get_common_lock_depth) +XS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Perf__Trace__Context_common_lock_depth) { #ifdef dVAR dVAR; dXSARGS; @@ -94,14 +94,14 @@ XS(XS_Perf__Trace__Context_get_common_lock_depth) dXSARGS; #endif if (items != 1) - Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::get_common_lock_depth", "context"); + Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_lock_depth", "context"); PERL_UNUSED_VAR(cv); /* -W */ { struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0))); int RETVAL; dXSTARG; - RETVAL = get_common_lock_depth(context); + RETVAL = common_lock_depth(context); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); @@ -124,9 +124,9 @@ XS(boot_Perf__Trace__Context) PERL_UNUSED_VAR(items); /* -W */ XS_VERSION_BOOTCHECK ; - newXSproto("Perf::Trace::Context::get_common_pc", XS_Perf__Trace__Context_get_common_pc, file, "$"); - newXSproto("Perf::Trace::Context::get_common_flags", XS_Perf__Trace__Context_get_common_flags, file, "$"); - newXSproto("Perf::Trace::Context::get_common_lock_depth", XS_Perf__Trace__Context_get_common_lock_depth, file, "$"); + newXSproto("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$"); + newXSproto("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$"); + newXSproto("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$"); if (PL_unitcheckav) call_list(PL_scopestack_ix, PL_unitcheckav); XSRETURN_YES; diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs index 24facb3..fb78006 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs @@ -28,14 +28,14 @@ MODULE = Perf::Trace::Context PACKAGE = Perf::Trace::Context PROTOTYPES: ENABLE int -get_common_pc(context) +common_pc(context) struct scripting_context * context int -get_common_flags(context) +common_flags(context) struct scripting_context * context int -get_common_lock_depth(context) +common_lock_depth(context) struct scripting_context * context diff --git a/tools/perf/util/trace-event-perl.c b/tools/perf/util/trace-event-perl.c index d179ade..2e1cc3c 100644 --- a/tools/perf/util/trace-event-perl.c +++ b/tools/perf/util/trace-event-perl.c @@ -242,7 +242,7 @@ static inline struct event *find_cache_event(int type) return event; } -int get_common_pc(struct scripting_context *context) +int common_pc(struct scripting_context *context) { int pc; @@ -251,7 +251,7 @@ int get_common_pc(struct scripting_context *context) return pc; } -int get_common_flags(struct scripting_context *context) +int common_flags(struct scripting_context *context) { int flags; @@ -260,7 +260,7 @@ int get_common_flags(struct scripting_context *context) return flags; } -int get_common_lock_depth(struct scripting_context *context) +int common_lock_depth(struct scripting_context *context) { int lock_depth; diff --git a/tools/perf/util/trace-event-perl.h b/tools/perf/util/trace-event-perl.h index 666a864..8fe0d86 100644 --- a/tools/perf/util/trace-event-perl.h +++ b/tools/perf/util/trace-event-perl.h @@ -44,8 +44,8 @@ struct scripting_context { void *event_data; }; -int get_common_pc(struct scripting_context *context); -int get_common_flags(struct scripting_context *context); -int get_common_lock_depth(struct scripting_context *context); +int common_pc(struct scripting_context *context); +int common_flags(struct scripting_context *context); +int common_lock_depth(struct scripting_context *context); #endif /* __PERF_TRACE_EVENT_PERL_H */ -- 1.6.4.GIT ^ permalink raw reply [flat|nested] 11+ messages in thread
* [tip:perf/scripting] perf trace/scripting: Fix Perl common_* access functions 2009-11-30 7:18 ` [PATCH 3/4] perf trace/scripting: fix Perl common_* access functions Tom Zanussi @ 2009-11-30 8:24 ` tip-bot for Tom Zanussi 0 siblings, 0 replies; 11+ messages in thread From: tip-bot for Tom Zanussi @ 2009-11-30 8:24 UTC (permalink / raw) To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, tzanussi, tglx, mingo Commit-ID: 61381de0504181368672a83d2e14c38dbaf3c136 Gitweb: http://git.kernel.org/tip/61381de0504181368672a83d2e14c38dbaf3c136 Author: Tom Zanussi <tzanussi@gmail.com> AuthorDate: Mon, 30 Nov 2009 01:18:48 -0600 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Mon, 30 Nov 2009 09:04:00 +0100 perf trace/scripting: Fix Perl common_* access functions The common_* functions (e.g. common_pc(), etc) are exported as common_* but named get_common_*, resulting in unresolved subroutine errors when executing scripts. Make the internal and external names match. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Cc: fweisbec@gmail.com Cc: rostedt@goodmis.org Cc: anton@samba.org Cc: hch@infradead.org LKML-Reference: <1259565529-6407-4-git-send-email-tzanussi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 30 ++++++++++---------- tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 ++-- tools/perf/util/trace-event-perl.c | 6 ++-- tools/perf/util/trace-event-perl.h | 6 ++-- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c index 3ba3ffc..af78d9a 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.c +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.c @@ -39,8 +39,8 @@ #line 41 "Context.c" -XS(XS_Perf__Trace__Context_get_common_pc); /* prototype to pass -Wmissing-prototypes */ -XS(XS_Perf__Trace__Context_get_common_pc) +XS(XS_Perf__Trace__Context_common_pc); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Perf__Trace__Context_common_pc) { #ifdef dVAR dVAR; dXSARGS; @@ -48,22 +48,22 @@ XS(XS_Perf__Trace__Context_get_common_pc) dXSARGS; #endif if (items != 1) - Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::get_common_pc", "context"); + Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_pc", "context"); PERL_UNUSED_VAR(cv); /* -W */ { struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0))); int RETVAL; dXSTARG; - RETVAL = get_common_pc(context); + RETVAL = common_pc(context); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } -XS(XS_Perf__Trace__Context_get_common_flags); /* prototype to pass -Wmissing-prototypes */ -XS(XS_Perf__Trace__Context_get_common_flags) +XS(XS_Perf__Trace__Context_common_flags); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Perf__Trace__Context_common_flags) { #ifdef dVAR dVAR; dXSARGS; @@ -71,22 +71,22 @@ XS(XS_Perf__Trace__Context_get_common_flags) dXSARGS; #endif if (items != 1) - Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::get_common_flags", "context"); + Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_flags", "context"); PERL_UNUSED_VAR(cv); /* -W */ { struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0))); int RETVAL; dXSTARG; - RETVAL = get_common_flags(context); + RETVAL = common_flags(context); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); } -XS(XS_Perf__Trace__Context_get_common_lock_depth); /* prototype to pass -Wmissing-prototypes */ -XS(XS_Perf__Trace__Context_get_common_lock_depth) +XS(XS_Perf__Trace__Context_common_lock_depth); /* prototype to pass -Wmissing-prototypes */ +XS(XS_Perf__Trace__Context_common_lock_depth) { #ifdef dVAR dVAR; dXSARGS; @@ -94,14 +94,14 @@ XS(XS_Perf__Trace__Context_get_common_lock_depth) dXSARGS; #endif if (items != 1) - Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::get_common_lock_depth", "context"); + Perl_croak(aTHX_ "Usage: %s(%s)", "Perf::Trace::Context::common_lock_depth", "context"); PERL_UNUSED_VAR(cv); /* -W */ { struct scripting_context * context = INT2PTR(struct scripting_context *,SvIV(ST(0))); int RETVAL; dXSTARG; - RETVAL = get_common_lock_depth(context); + RETVAL = common_lock_depth(context); XSprePUSH; PUSHi((IV)RETVAL); } XSRETURN(1); @@ -124,9 +124,9 @@ XS(boot_Perf__Trace__Context) PERL_UNUSED_VAR(items); /* -W */ XS_VERSION_BOOTCHECK ; - newXSproto("Perf::Trace::Context::get_common_pc", XS_Perf__Trace__Context_get_common_pc, file, "$"); - newXSproto("Perf::Trace::Context::get_common_flags", XS_Perf__Trace__Context_get_common_flags, file, "$"); - newXSproto("Perf::Trace::Context::get_common_lock_depth", XS_Perf__Trace__Context_get_common_lock_depth, file, "$"); + newXSproto("Perf::Trace::Context::common_pc", XS_Perf__Trace__Context_common_pc, file, "$"); + newXSproto("Perf::Trace::Context::common_flags", XS_Perf__Trace__Context_common_flags, file, "$"); + newXSproto("Perf::Trace::Context::common_lock_depth", XS_Perf__Trace__Context_common_lock_depth, file, "$"); if (PL_unitcheckav) call_list(PL_scopestack_ix, PL_unitcheckav); XSRETURN_YES; diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs index 24facb3..fb78006 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs +++ b/tools/perf/scripts/perl/Perf-Trace-Util/Context.xs @@ -28,14 +28,14 @@ MODULE = Perf::Trace::Context PACKAGE = Perf::Trace::Context PROTOTYPES: ENABLE int -get_common_pc(context) +common_pc(context) struct scripting_context * context int -get_common_flags(context) +common_flags(context) struct scripting_context * context int -get_common_lock_depth(context) +common_lock_depth(context) struct scripting_context * context diff --git a/tools/perf/util/trace-event-perl.c b/tools/perf/util/trace-event-perl.c index d179ade..2e1cc3c 100644 --- a/tools/perf/util/trace-event-perl.c +++ b/tools/perf/util/trace-event-perl.c @@ -242,7 +242,7 @@ static inline struct event *find_cache_event(int type) return event; } -int get_common_pc(struct scripting_context *context) +int common_pc(struct scripting_context *context) { int pc; @@ -251,7 +251,7 @@ int get_common_pc(struct scripting_context *context) return pc; } -int get_common_flags(struct scripting_context *context) +int common_flags(struct scripting_context *context) { int flags; @@ -260,7 +260,7 @@ int get_common_flags(struct scripting_context *context) return flags; } -int get_common_lock_depth(struct scripting_context *context) +int common_lock_depth(struct scripting_context *context) { int lock_depth; diff --git a/tools/perf/util/trace-event-perl.h b/tools/perf/util/trace-event-perl.h index 666a864..8fe0d86 100644 --- a/tools/perf/util/trace-event-perl.h +++ b/tools/perf/util/trace-event-perl.h @@ -44,8 +44,8 @@ struct scripting_context { void *event_data; }; -int get_common_pc(struct scripting_context *context); -int get_common_flags(struct scripting_context *context); -int get_common_lock_depth(struct scripting_context *context); +int common_pc(struct scripting_context *context); +int common_flags(struct scripting_context *context); +int common_lock_depth(struct scripting_context *context); #endif /* __PERF_TRACE_EVENT_PERL_H */ ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 4/4] perf trace/scripting: Add Fedora libperl install note to doc 2009-11-30 7:18 [PATCH 0/4] Fixes for perf/scripting Tom Zanussi ` (2 preceding siblings ...) 2009-11-30 7:18 ` [PATCH 3/4] perf trace/scripting: fix Perl common_* access functions Tom Zanussi @ 2009-11-30 7:18 ` Tom Zanussi 2009-11-30 8:24 ` [tip:perf/scripting] " tip-bot for Tom Zanussi 2009-11-30 8:19 ` [PATCH 0/4] Fixes for perf/scripting Ingo Molnar 4 siblings, 1 reply; 11+ messages in thread From: Tom Zanussi @ 2009-11-30 7:18 UTC (permalink / raw) To: linux-kernel; +Cc: mingo, fweisbec, rostedt, anton, hch Fedora needs perl-ExtUtils-Embed for Perl scripting, which also brings along libperl-devel; note this info for the convenience of Fedora users. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> --- tools/perf/scripts/perl/Perf-Trace-Util/README | 4 ++-- tools/perf/util/trace-event-perl.c | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/README b/tools/perf/scripts/perl/Perf-Trace-Util/README index adb99aa..9a97076 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/README +++ b/tools/perf/scripts/perl/Perf-Trace-Util/README @@ -36,8 +36,8 @@ INSTALLATION Building perf with perf trace Perl scripting should install this module in the right place. -You should make sure libperl is installed first e.g. apt-get install -libperl-dev. +You should make sure libperl and ExtUtils/Embed.pm are installed first +e.g. apt-get install libperl-dev or yum install perl-ExtUtils-Embed. DEPENDENCIES diff --git a/tools/perf/util/trace-event-perl.c b/tools/perf/util/trace-event-perl.c index 2e1cc3c..51e833f 100644 --- a/tools/perf/util/trace-event-perl.c +++ b/tools/perf/util/trace-event-perl.c @@ -577,7 +577,9 @@ struct scripting_ops perl_scripting_ops = { void setup_perl_scripting(void) { fprintf(stderr, "Perl scripting not supported." - " Install libperl-dev[el] and rebuild perf to get it.\n"); + " Install libperl and rebuild perf to enable it. e.g. " + "apt-get install libperl-dev (ubuntu), yum install " + "perl-ExtUtils-Embed (Fedora), etc.\n"); } #else void setup_perl_scripting(void) -- 1.6.4.GIT ^ permalink raw reply [flat|nested] 11+ messages in thread
* [tip:perf/scripting] perf trace/scripting: Add Fedora libperl install note to doc 2009-11-30 7:18 ` [PATCH 4/4] perf trace/scripting: Add Fedora libperl install note to doc Tom Zanussi @ 2009-11-30 8:24 ` tip-bot for Tom Zanussi 0 siblings, 0 replies; 11+ messages in thread From: tip-bot for Tom Zanussi @ 2009-11-30 8:24 UTC (permalink / raw) To: linux-tip-commits; +Cc: linux-kernel, hpa, mingo, tzanussi, tglx, mingo Commit-ID: 8ea339adc0a48236008e59dd21564d71c37b331c Gitweb: http://git.kernel.org/tip/8ea339adc0a48236008e59dd21564d71c37b331c Author: Tom Zanussi <tzanussi@gmail.com> AuthorDate: Mon, 30 Nov 2009 01:18:49 -0600 Committer: Ingo Molnar <mingo@elte.hu> CommitDate: Mon, 30 Nov 2009 09:04:01 +0100 perf trace/scripting: Add Fedora libperl install note to doc Fedora needs perl-ExtUtils-Embed for Perl scripting, which also brings along libperl-devel; note this info for the convenience of Fedora users. Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Cc: fweisbec@gmail.com Cc: rostedt@goodmis.org Cc: anton@samba.org Cc: hch@infradead.org LKML-Reference: <1259565529-6407-5-git-send-email-tzanussi@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> --- tools/perf/scripts/perl/Perf-Trace-Util/README | 4 ++-- tools/perf/util/trace-event-perl.c | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/tools/perf/scripts/perl/Perf-Trace-Util/README b/tools/perf/scripts/perl/Perf-Trace-Util/README index adb99aa..9a97076 100644 --- a/tools/perf/scripts/perl/Perf-Trace-Util/README +++ b/tools/perf/scripts/perl/Perf-Trace-Util/README @@ -36,8 +36,8 @@ INSTALLATION Building perf with perf trace Perl scripting should install this module in the right place. -You should make sure libperl is installed first e.g. apt-get install -libperl-dev. +You should make sure libperl and ExtUtils/Embed.pm are installed first +e.g. apt-get install libperl-dev or yum install perl-ExtUtils-Embed. DEPENDENCIES diff --git a/tools/perf/util/trace-event-perl.c b/tools/perf/util/trace-event-perl.c index 2e1cc3c..51e833f 100644 --- a/tools/perf/util/trace-event-perl.c +++ b/tools/perf/util/trace-event-perl.c @@ -577,7 +577,9 @@ struct scripting_ops perl_scripting_ops = { void setup_perl_scripting(void) { fprintf(stderr, "Perl scripting not supported." - " Install libperl-dev[el] and rebuild perf to get it.\n"); + " Install libperl and rebuild perf to enable it. e.g. " + "apt-get install libperl-dev (ubuntu), yum install " + "perl-ExtUtils-Embed (Fedora), etc.\n"); } #else void setup_perl_scripting(void) ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] Fixes for perf/scripting 2009-11-30 7:18 [PATCH 0/4] Fixes for perf/scripting Tom Zanussi ` (3 preceding siblings ...) 2009-11-30 7:18 ` [PATCH 4/4] perf trace/scripting: Add Fedora libperl install note to doc Tom Zanussi @ 2009-11-30 8:19 ` Ingo Molnar 2009-12-01 5:30 ` Tom Zanussi 4 siblings, 1 reply; 11+ messages in thread From: Ingo Molnar @ 2009-11-30 8:19 UTC (permalink / raw) To: Tom Zanussi Cc: linux-kernel, fweisbec, rostedt, anton, hch, Peter Zijlstra, Arnaldo Carvalho de Melo, Thomas Gleixner, Arjan van de Ven * Tom Zanussi <tzanussi@gmail.com> wrote: > Tom Zanussi (4): > perf trace/scripting: silence PERL_EMBED_* backtick errors > perf trace/scripting: ignore shadowed variable warning for > perf-trace-perl.c > perf trace/scripting: fix Perl common_* access functions > perf trace/scripting: Add Fedora libperl install note to doc > > tools/perf/Makefile | 6 ++-- > tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 30 ++++++++++---------- > tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 ++-- > tools/perf/scripts/perl/Perf-Trace-Util/README | 4 +- > tools/perf/util/trace-event-perl.c | 10 ++++-- > tools/perf/util/trace-event-perl.h | 6 ++-- > 6 files changed, 32 insertions(+), 30 deletions(-) Applied, thanks Tom! I tried a few simple things and it worked fine, so i put it into the permanent perf/scripting branch. I think this looks like a nice feature: a perfect fit to do rapid prototyping of tracing applets. (or just to use it for ad-hoc, programming based analysis of tracing data) There's a few odd ends to 'perf trace' usability we need to fix before this can be merged into perf/core. For example if libperl isnt installed, 'perf trace' emits this warning: Perl scripting not supported. Install libperl and rebuild perf to enable it. e.g. apt-get install libperl-dev (ubuntu), yum install perl-ExtUtils-Embed (Fedora), etc. We should only emit that if -g or -s is used - it's a nuisance in the other cases. Most distributions dont have libperl installed by default. Also, a few simple examples and some heads-up about the power of scripting should be put into Documentation/perf-trace.txt as well. Something minimal - and it can include a Perl example as well. Some practical version of perl/Perf-Trace-Util/README or so. We want curious people who know Perl and try 'perf trace --help' to have some minimal entry vector into this space. A third question is - right now we install the sample Perl scripts on 'make install', but there's no mechanism to see the scripts that are available. 'perf trace -l/--list' might be useful? I.e. the whole pathway of random perf users coming in and starting to use the script engine 'spontaneusly' and 'intuitively' is not yet thought through - the capabilities are hidden too much. Thanks, Ingo ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 0/4] Fixes for perf/scripting 2009-11-30 8:19 ` [PATCH 0/4] Fixes for perf/scripting Ingo Molnar @ 2009-12-01 5:30 ` Tom Zanussi 0 siblings, 0 replies; 11+ messages in thread From: Tom Zanussi @ 2009-12-01 5:30 UTC (permalink / raw) To: Ingo Molnar Cc: linux-kernel, fweisbec, rostedt, anton, hch, Peter Zijlstra, Arnaldo Carvalho de Melo, Thomas Gleixner, Arjan van de Ven On Mon, 2009-11-30 at 09:19 +0100, Ingo Molnar wrote: > * Tom Zanussi <tzanussi@gmail.com> wrote: > > > Tom Zanussi (4): > > perf trace/scripting: silence PERL_EMBED_* backtick errors > > perf trace/scripting: ignore shadowed variable warning for > > perf-trace-perl.c > > perf trace/scripting: fix Perl common_* access functions > > perf trace/scripting: Add Fedora libperl install note to doc > > > > tools/perf/Makefile | 6 ++-- > > tools/perf/scripts/perl/Perf-Trace-Util/Context.c | 30 ++++++++++---------- > > tools/perf/scripts/perl/Perf-Trace-Util/Context.xs | 6 ++-- > > tools/perf/scripts/perl/Perf-Trace-Util/README | 4 +- > > tools/perf/util/trace-event-perl.c | 10 ++++-- > > tools/perf/util/trace-event-perl.h | 6 ++-- > > 6 files changed, 32 insertions(+), 30 deletions(-) > > Applied, thanks Tom! > > I tried a few simple things and it worked fine, so i put it into the > permanent perf/scripting branch. I think this looks like a nice feature: > a perfect fit to do rapid prototyping of tracing applets. (or just to > use it for ad-hoc, programming based analysis of tracing data) > Great, thanks! I agree that usability is key and could use some more work - I'll submit some more patches addressing that soon... Thanks, Tom > There's a few odd ends to 'perf trace' usability we need to fix before > this can be merged into perf/core. For example if libperl isnt > installed, 'perf trace' emits this warning: > > Perl scripting not supported. Install libperl and rebuild perf to > enable it. e.g. apt-get install libperl-dev (ubuntu), yum install > perl-ExtUtils-Embed (Fedora), etc. > > We should only emit that if -g or -s is used - it's a nuisance in the > other cases. Most distributions dont have libperl installed by default. > > Also, a few simple examples and some heads-up about the power of > scripting should be put into Documentation/perf-trace.txt as well. > Something minimal - and it can include a Perl example as well. Some > practical version of perl/Perf-Trace-Util/README or so. We want curious > people who know Perl and try 'perf trace --help' to have some minimal > entry vector into this space. > > A third question is - right now we install the sample Perl scripts on > 'make install', but there's no mechanism to see the scripts that are > available. 'perf trace -l/--list' might be useful? > > I.e. the whole pathway of random perf users coming in and starting to > use the script engine 'spontaneusly' and 'intuitively' is not yet > thought through - the capabilities are hidden too much. > > Thanks, > > Ingo ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2009-12-01 5:30 UTC | newest] Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-11-30 7:18 [PATCH 0/4] Fixes for perf/scripting Tom Zanussi 2009-11-30 7:18 ` [PATCH 1/4] perf trace/scripting: silence PERL_EMBED_* backtick errors Tom Zanussi 2009-11-30 8:23 ` [tip:perf/scripting] perf trace/scripting: Silence " tip-bot for Tom Zanussi 2009-11-30 7:18 ` [PATCH 2/4] perf trace/scripting: ignore shadowed variable warning for perf-trace-perl.c Tom Zanussi 2009-11-30 8:23 ` [tip:perf/scripting] perf trace/scripting: Ignore " tip-bot for Tom Zanussi 2009-11-30 7:18 ` [PATCH 3/4] perf trace/scripting: fix Perl common_* access functions Tom Zanussi 2009-11-30 8:24 ` [tip:perf/scripting] perf trace/scripting: Fix " tip-bot for Tom Zanussi 2009-11-30 7:18 ` [PATCH 4/4] perf trace/scripting: Add Fedora libperl install note to doc Tom Zanussi 2009-11-30 8:24 ` [tip:perf/scripting] " tip-bot for Tom Zanussi 2009-11-30 8:19 ` [PATCH 0/4] Fixes for perf/scripting Ingo Molnar 2009-12-01 5:30 ` Tom Zanussi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox
Powered by JetHome