tools/lib/traceevent: More udpates to make libtraceevent into a library
cover tools/lib/traceevent: More udpates to make libtraceevent into a library
Arnaldo and Jiri,
Here's more patches to get us a step closer to having a legitimate standalone library for libtraceevent. I'm currently reviewing man pages, which I want finished before we call it done.
Please pull this tree (based on current tip/perf/core) or apply the patches.
Thanks!
-- Steve
git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace.git
tip/perf/core
Head SHA1: 1a1dbb61ee77226e9097bfe307219abf5df8e4cd
Tzvetomir Stoyanov (9):
tools/lib/traceevent: Implemented new API tep_get_ref() tools/lib/traceevent: Added support for pkg-config tools/lib/traceevent: Install trace-seq.h API header file tools/lib/traceevent, tools/perf: Rename struct tep_event_format to struct tep_event tools/lib/traceevent: Rename tep_free_format() to tep_free_event() tools/perf: traceevent API cleanup, remove __tep_data2host*() tools/lib/traceevent: traceevent API cleanup
tools/lib/traceevent: Introduce new libtracevent API: tep_override_comm() tools/lib/traceevent: Add sanity check to is_timestamp_in_us()
----
tools/lib/traceevent/Makefile | 27 +- tools/lib/traceevent/event-parse-api.c | 8 +- tools/lib/traceevent/event-parse-local.h | 13 +- tools/lib/traceevent/event-parse.c | 283 ++++++++++++--------- tools/lib/traceevent/event-parse.h | 78 +++--- tools/lib/traceevent/libtraceevent.pc.template | 10 + tools/lib/traceevent/parse-filter.c | 42 +-- tools/lib/traceevent/plugin_function.c | 2 +- tools/lib/traceevent/plugin_hrtimer.c | 4 +- tools/lib/traceevent/plugin_kmem.c | 2 +- tools/lib/traceevent/plugin_kvm.c | 14 +- tools/lib/traceevent/plugin_mac80211.c | 4 +- tools/lib/traceevent/plugin_sched_switch.c | 4 +- tools/perf/builtin-trace.c | 2 +- tools/perf/util/evsel.h | 4 +- tools/perf/util/header.c | 2 +- tools/perf/util/python.c | 4 +- .../perf/util/scripting-engines/trace-event-perl.c | 6 +- .../util/scripting-engines/trace-event-python.c | 8 +- tools/perf/util/trace-event-parse.c | 16 +- tools/perf/util/trace-event-read.c | 4 +- tools/perf/util/trace-event.c | 8 +- tools/perf/util/trace-event.h | 16 +- 23 files changed, 317 insertions(+), 244 deletions(-) create mode 100644 tools/lib/traceevent/libtraceevent.pc.template
PATCH 1/9 tools/lib/traceevent: Implemented new API tep_get_ref()
From: Tzvetomir Stoyanov <[email protected]>
This patch implements a new API of the tracevent library:
int tep_get_ref(struct tep_handle *tep);
The API returns the reference counter "ref_count" of the tep handler. As "struct tep_handle" is internal only, its members cannot be accessed by the library users, the API is used to get the reference counter.
--- tools/lib/traceevent/event-parse.c | 7 +++++++ tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 8 insertions(+)
tools/lib/traceevent/event-parse.c +7 -0
@@ -6730,6 +6730,13 @@ void tep_ref(struct tep_handle *pevent) pevent->ref_count++; } +int tep_get_ref (struct tep_handle *tep) +{ +if (tep) +return tep->ref_count; +return 0 ; +} +void tep_free_format_field (struct tep_format_field *field) {free (field->type);
tools/lib/traceevent/event-parse.h +1 -0
@@ -581,6 +581,7 @@ struct tep_handle *tep_alloc(void);void tep_free (struct tep_handle *pevent);void tep_ref (struct tep_handle *pevent);void tep_unref (struct tep_handle *pevent); +int tep_get_ref (struct tep_handle *tep);/* access to the internal parser */ void tep_buffer_init (const char *buf,unsigned long long size);
Signature · 1 line
2.19.1
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Implement new API tep_get_ref()
tools lib traceevent: Implement new API tep_get_ref()
Commit-ID: c1f71ed8f5d1bb8d048c54c509ee9b08878900c6 Gitweb: https://git.kernel.org/tip/c1f71ed8f5d1bb8d048c54c509ee9b08878900c6 Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:04 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:14:52 -0300
tools lib traceevent: Implement new API tep_get_ref()
This patch implements a new API of the tracevent library:
int tep_get_ref(struct tep_handle *tep);
The API returns the reference counter "ref_count" of the tep handler. As "struct tep_handle" is internal only, its members cannot be accessed by the library users, the API is used to get the reference counter.
--- tools/lib/traceevent/event-parse.c | 7 +++++++ tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 8 insertions(+)
tools/lib/traceevent/event-parse.c +7 -0
@@ -6730,6 +6730,13 @@ void tep_ref(struct tep_handle *pevent) pevent->ref_count++; } +int tep_get_ref (struct tep_handle *tep) +{ +if (tep) +return tep->ref_count; +return 0 ; +} +void tep_free_format_field (struct tep_format_field *field) {free (field->type);
tools/lib/traceevent/event-parse.h +1 -0
@@ -581,6 +581,7 @@ struct tep_handle *tep_alloc(void);void tep_free (struct tep_handle *pevent);void tep_ref (struct tep_handle *pevent);void tep_unref (struct tep_handle *pevent); +int tep_get_ref (struct tep_handle *tep);/* access to the internal parser */ void tep_buffer_init (const char *buf,unsigned long long size);
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Implement new API tep_get_ref()
In reply to Steven Rostedttools lib traceevent: Implement new API tep_get_ref()
Commit-ID: 477be10ca781bbee29d6a1da958d63d5c9a2d83b Gitweb: https://git.kernel.org/tip/477be10ca781bbee29d6a1da958d63d5c9a2d83b Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:04 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:55:52 -0300
tools lib traceevent: Implement new API tep_get_ref()
This patch implements a new API of the tracevent library:
int tep_get_ref(struct tep_handle *tep);
The API returns the reference counter "ref_count" of the tep handler. As "struct tep_handle" is internal only, its members cannot be accessed by the library users, the API is used to get the reference counter.
--- tools/lib/traceevent/event-parse.c | 7 +++++++ tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 8 insertions(+)
tools/lib/traceevent/event-parse.c +7 -0
@@ -6730,6 +6730,13 @@ void tep_ref(struct tep_handle *pevent) pevent->ref_count++; } +int tep_get_ref (struct tep_handle *tep) +{ +if (tep) +return tep->ref_count; +return 0 ; +} +void tep_free_format_field (struct tep_format_field *field) {free (field->type);
tools/lib/traceevent/event-parse.h +1 -0
@@ -581,6 +581,7 @@ struct tep_handle *tep_alloc(void);void tep_free (struct tep_handle *pevent);void tep_ref (struct tep_handle *pevent);void tep_unref (struct tep_handle *pevent); +int tep_get_ref (struct tep_handle *tep);/* access to the internal parser */ void tep_buffer_init (const char *buf,unsigned long long size);
PATCH 2/9 tools/lib/traceevent: Added support for pkg-config
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
This patch implements integration with pkg-config framework. pkg-config can be used by the library users to determine required CFLAGS and LDFLAGS in order to use the library
--- tools/lib/traceevent/Makefile | 26 ++++++++++++++++--- .../lib/traceevent/libtraceevent.pc.template | 10 +++++++ 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 tools/lib/traceevent/libtraceevent.pc.template
tools/lib/traceevent/Makefile +23 -3
@@ -25,6 +25,7 @@ endef $(call allow-override,CC,$(CROSS_COMPILE)gcc) $(call allow-override,AR,$(CROSS_COMPILE)ar) $(call allow-override,NM,$(CROSS_COMPILE)nm) +$(call allow-override,PKG_CONFIG,pkg-config) EXT = -std=gnu99 INSTALL = install
@@ -47,6 +48,8 @@ prefix ?= /usr/local libdir = $(prefix)/$(libdir_relative) man_dir = $(prefix)/share/man man_dir_SQ = '$(subst ','\'',$(man_dir))' +pkgconfig_dir ?= $(word 1,$(shell $(PKG_CONFIG) \ + --variable pc_path pkg-config | tr ":" " ")) export man_dir man_dir_SQ INSTALL export DESTDIR DESTDIR_SQ
@@ -270,7 +273,19 @@ define do_generate_dynamic_list_file fi endef -install_lib: all_cmd install_plugins +PKG_CONFIG_FILE = libtraceevent.pc +define do_install_pkgconfig_file + if [ -n "${pkgconfig_dir}" ]; then \ + cp -f ${PKG_CONFIG_FILE}.template ${PKG_CONFIG_FILE}; \ + sed -i "s|INSTALL_PREFIX|${1}|g" ${PKG_CONFIG_FILE}; \ + sed -i "s|LIB_VERSION|${EVENT_PARSE_VERSION}|g" ${PKG_CONFIG_FILE}; \ + $(call do_install,$(PKG_CONFIG_FILE),$(pkgconfig_dir),644); \ + else \ + (echo Failed to locate pkg-config directory) 1>&2; \ + fi +endef + +install_lib: all_cmd install_plugins install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -279,6 +294,10 @@ install_plugins: $(PLUGINS) $(call QUIET_INSTALL, trace_plugins) \ $(call do_install_plugins, $(PLUGINS)) +install_pkgconfig: + $(call QUIET_INSTALL, $(PKG_CONFIG_FILE)) \ + $(call do_install_pkgconfig_file,$(prefix)) + install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \
@@ -289,8 +308,9 @@ install: install_lib clean: $(call QUIET_CLEAN, libtraceevent) \ - $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd \ - $(RM) TRACEEVENT-CFLAGS tags TAGS + $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd; \ + $(RM) TRACEEVENT-CFLAGS tags TAGS; \ + $(RM) $(PKG_CONFIG_FILE) PHONY += force plugins force:
tools/lib/traceevent/libtraceevent.pc.template new file +10 -0
@@ -0,0 +1,10 @@ +prefix=INSTALL_PREFIX +libdir=${prefix}/lib64 +includedir=${prefix}/include/traceevent + +Name: libtraceevent +URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git +Description: Linux kernel trace event library +Version: LIB_VERSION +Cflags: -I${includedir} +Libs: -L${libdir} -ltraceevent
Signature · 1 line
2.19.1
Namhyung Kim
maintainerRe: [PATCH 2/9] tools/lib/traceevent: Added support for pkg-config
Hi Steve,
Quoted 9 lines · Steven Rostedt
From: Tzvetomir Stoyanov <[email protected]>
This patch implements integration with pkg-config framework. pkg-config can be used by the library users to determine required CFLAGS and LDFLAGS in order to use the library
Signed-off-by Tzvetomir Stoyanov <[email protected]>Signed-off-by Steven Rostedt (VMware) <[email protected]>---
[SNIP]
tools/lib/traceevent/libtraceevent.pc.template line 2
Quoted 8 lines
tools/lib/traceevent/libtraceevent.pc.template new file +2
-0@@ -0,0 +1,10 @@ +prefix=INSTALL_PREFIX +libdir=${prefix}/lib64
Don't we care 32-bit systems anymore? :)
Thanks,
Namhyung
Quoted 12 lines
tools/lib/traceevent/libtraceevent.pc.template new file +8
-0+includedir=${prefix}/include/traceevent + +Name: libtraceevent +URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git +Description: Linux kernel trace event library +Version: LIB_VERSION +Cflags: -I${includedir} +Libs: -L${libdir} -ltraceeventSignature · 1 line
2.19.1
Re: [PATCH 2/9] tools/lib/traceevent: Added support for pkg-config
Hi Namhyung,
Quoted 15 lines · Namhyung Kim
Hi Steve,
Quoted 9 lines · Steven Rostedt
From: Tzvetomir Stoyanov <[email protected]>
This patch implements integration with pkg-config framework. pkg-config can be used by the library users to determine required CFLAGS and LDFLAGS in order to use the library
Signed-off-by Tzvetomir Stoyanov <[email protected]>Signed-off-by Steven Rostedt (VMware) <[email protected]>---
[SNIP]
Quoted 11 lines
tools/lib/traceevent/libtraceevent.pc.template line 2
Quoted 8 lines
tools/lib/traceevent/libtraceevent.pc.template new file +2
-0@@ -0,0 +1,10 @@ +prefix=INSTALL_PREFIX +libdir=${prefix}/lib64Don't we care 32-bit systems anymore? :)
It is my fault, going to submit a patch to parameterized it.
Quoted 16 lines
Thanks,
NamhyungQuoted 12 lines
tools/lib/traceevent/libtraceevent.pc.template new file +8
-1+includedir=${prefix}/include/traceevent + +Name: libtraceevent +URL: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Ftorvalds%2Flinux.git&data=02%7C01%7Ctstoyanov%40vmware.com%7Cbf86381418da46f7712108d659baaa20%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C0%7C0%7C636795055608012046&sdata=r6iXSffCrEzO0hRhpiIctdP2jcfbESaJxOZVrHLnAfw%3D&reserved=0 +Description: Linux kernel trace event library +Version: LIB_VERSION +Cflags: -I${includedir} +Libs: -L${libdir} -ltraceevent --2.19.1
Signature · 2 lines
Tzvetomir (Ceco) Stoyanov VMware Open Source Technology Center
Re: [PATCH 2/9] tools/lib/traceevent: Added support for pkg-config
In reply to Namhyung KimQuoted 6 lines · On Tue, 4 Dec 2018 16:32:35 +0900 Namhyung Kim <[email protected]> wrote:
tools/lib/traceevent/libtraceevent.pc.template line 2
Quoted 4 lines
+++ b/tools/lib/traceevent/libtraceevent.pc.template
tools/lib/traceevent/libtraceevent.pc.template new file +2
-0@@ -0,0 +1,10 @@ +prefix=INSTALL_PREFIX +libdir=${prefix}/lib64Don't we care 32-bit systems anymore? :)
No we don't ;-)
But, I guess because some people still do, we need to fix it.
Thanks for reviewing!
-- Steve
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Added support for pkg-config
In reply to Steven Rostedttools lib traceevent: Added support for pkg-config
Commit-ID: cadb29db628d761b190875e54e9d5b65a30b1925 Gitweb: https://git.kernel.org/tip/cadb29db628d761b190875e54e9d5b65a30b1925 Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:05 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:14:53 -0300
tools lib traceevent: Added support for pkg-config
This patch implements integration with pkg-config framework. pkg-config can be used by the library users to determine required CFLAGS and LDFLAGS in order to use the library
--- tools/lib/traceevent/Makefile | 26 +++++++++++++++++++++++--- tools/lib/traceevent/libtraceevent.pc.template | 10 ++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-)
tools/lib/traceevent/Makefile +23 -3
@@ -25,6 +25,7 @@ endef $(call allow-override,CC,$(CROSS_COMPILE)gcc) $(call allow-override,AR,$(CROSS_COMPILE)ar) $(call allow-override,NM,$(CROSS_COMPILE)nm) +$(call allow-override,PKG_CONFIG,pkg-config) EXT = -std=gnu99 INSTALL = install
@@ -47,6 +48,8 @@ prefix ?= /usr/local libdir = $(prefix)/$(libdir_relative) man_dir = $(prefix)/share/man man_dir_SQ = '$(subst ','\'',$(man_dir))' +pkgconfig_dir ?= $(word 1,$(shell $(PKG_CONFIG) \ + --variable pc_path pkg-config | tr ":" " ")) export man_dir man_dir_SQ INSTALL export DESTDIR DESTDIR_SQ
@@ -270,7 +273,19 @@ define do_generate_dynamic_list_file fi endef -install_lib: all_cmd install_plugins +PKG_CONFIG_FILE = libtraceevent.pc +define do_install_pkgconfig_file + if [ -n "${pkgconfig_dir}" ]; then \ + cp -f ${PKG_CONFIG_FILE}.template ${PKG_CONFIG_FILE}; \ + sed -i "s|INSTALL_PREFIX|${1}|g" ${PKG_CONFIG_FILE}; \ + sed -i "s|LIB_VERSION|${EVENT_PARSE_VERSION}|g" ${PKG_CONFIG_FILE}; \ + $(call do_install,$(PKG_CONFIG_FILE),$(pkgconfig_dir),644); \ + else \ + (echo Failed to locate pkg-config directory) 1>&2; \ + fi +endef + +install_lib: all_cmd install_plugins install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -279,6 +294,10 @@ install_plugins: $(PLUGINS) $(call QUIET_INSTALL, trace_plugins) \ $(call do_install_plugins, $(PLUGINS)) +install_pkgconfig: + $(call QUIET_INSTALL, $(PKG_CONFIG_FILE)) \ + $(call do_install_pkgconfig_file,$(prefix)) + install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \
@@ -289,8 +308,9 @@ install: install_lib clean: $(call QUIET_CLEAN, libtraceevent) \ - $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd \ - $(RM) TRACEEVENT-CFLAGS tags TAGS + $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd; \ + $(RM) TRACEEVENT-CFLAGS tags TAGS; \ + $(RM) $(PKG_CONFIG_FILE) PHONY += force plugins force:
tools/lib/traceevent/libtraceevent.pc.template new file +10 -0
@@ -0,0 +1,10 @@ +prefix=INSTALL_PREFIX +libdir=${prefix}/lib64 +includedir=${prefix}/include/traceevent + +Name: libtraceevent +URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git +Description: Linux kernel trace event library +Version: LIB_VERSION +Cflags: -I${includedir} +Libs: -L${libdir} -ltraceevent
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Added support for pkg-config
In reply to Steven Rostedttools lib traceevent: Added support for pkg-config
Commit-ID: cc03e1a8f82dff36fb329469c28cbfe7d2e6156a Gitweb: https://git.kernel.org/tip/cc03e1a8f82dff36fb329469c28cbfe7d2e6156a Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:05 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:55:55 -0300
tools lib traceevent: Added support for pkg-config
This patch implements integration with pkg-config framework. pkg-config can be used by the library users to determine required CFLAGS and LDFLAGS in order to use the library
--- tools/lib/traceevent/Makefile | 26 +++++++++++++++++++++++--- tools/lib/traceevent/libtraceevent.pc.template | 10 ++++++++++ 2 files changed, 33 insertions(+), 3 deletions(-)
tools/lib/traceevent/Makefile +23 -3
@@ -25,6 +25,7 @@ endef $(call allow-override,CC,$(CROSS_COMPILE)gcc) $(call allow-override,AR,$(CROSS_COMPILE)ar) $(call allow-override,NM,$(CROSS_COMPILE)nm) +$(call allow-override,PKG_CONFIG,pkg-config) EXT = -std=gnu99 INSTALL = install
@@ -47,6 +48,8 @@ prefix ?= /usr/local libdir = $(prefix)/$(libdir_relative) man_dir = $(prefix)/share/man man_dir_SQ = '$(subst ','\'',$(man_dir))' +pkgconfig_dir ?= $(word 1,$(shell $(PKG_CONFIG) \ + --variable pc_path pkg-config | tr ":" " ")) export man_dir man_dir_SQ INSTALL export DESTDIR DESTDIR_SQ
@@ -270,7 +273,19 @@ define do_generate_dynamic_list_file fi endef -install_lib: all_cmd install_plugins +PKG_CONFIG_FILE = libtraceevent.pc +define do_install_pkgconfig_file + if [ -n "${pkgconfig_dir}" ]; then \ + cp -f ${PKG_CONFIG_FILE}.template ${PKG_CONFIG_FILE}; \ + sed -i "s|INSTALL_PREFIX|${1}|g" ${PKG_CONFIG_FILE}; \ + sed -i "s|LIB_VERSION|${EVENT_PARSE_VERSION}|g" ${PKG_CONFIG_FILE}; \ + $(call do_install,$(PKG_CONFIG_FILE),$(pkgconfig_dir),644); \ + else \ + (echo Failed to locate pkg-config directory) 1>&2; \ + fi +endef + +install_lib: all_cmd install_plugins install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -279,6 +294,10 @@ install_plugins: $(PLUGINS) $(call QUIET_INSTALL, trace_plugins) \ $(call do_install_plugins, $(PLUGINS)) +install_pkgconfig: + $(call QUIET_INSTALL, $(PKG_CONFIG_FILE)) \ + $(call do_install_pkgconfig_file,$(prefix)) + install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \
@@ -289,8 +308,9 @@ install: install_lib clean: $(call QUIET_CLEAN, libtraceevent) \ - $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd \ - $(RM) TRACEEVENT-CFLAGS tags TAGS + $(RM) *.o *~ $(TARGETS) *.a *.so $(VERSION_FILES) .*.d .*.cmd; \ + $(RM) TRACEEVENT-CFLAGS tags TAGS; \ + $(RM) $(PKG_CONFIG_FILE) PHONY += force plugins force:
tools/lib/traceevent/libtraceevent.pc.template new file +10 -0
@@ -0,0 +1,10 @@ +prefix=INSTALL_PREFIX +libdir=${prefix}/lib64 +includedir=${prefix}/include/traceevent + +Name: libtraceevent +URL: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git +Description: Linux kernel trace event library +Version: LIB_VERSION +Cflags: -I${includedir} +Libs: -L${libdir} -ltraceevent
PATCH 3/9 tools/lib/traceevent: Install trace-seq.h API header file
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
This patch installs trace-seq.h header file on "make install".
--- tools/lib/traceevent/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/lib/traceevent/Makefile +2 -1
@@ -285,7 +285,7 @@ define do_install_pkgconfig_file fi endef -install_lib: all_cmd install_plugins install_pkgconfig +install_lib: all_cmd install_plugins install_headers install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644) install: install_lib
Signature · 1 line
2.19.1
Namhyung Kim
maintainerRe: [PATCH 3/9] tools/lib/traceevent: Install trace-seq.h API header file
Quoted 24 lines · Steven Rostedt
From: Tzvetomir Stoyanov <[email protected]>
This patch installs
trace-seq.hheader file on "make install".Signed-off-by Tzvetomir Stoyanov <[email protected]>Signed-off-by Steven Rostedt (VMware) <[email protected]>--- tools/lib/traceevent/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)tools/lib/traceevent/Makefile +1
-1@@ -285,7 +285,7 @@ define do_install_pkgconfig_file fi endef -install_lib: all_cmd install_plugins install_pkgconfig +install_lib: all_cmd install_plugins install_headers install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
tools/lib/traceevent/Makefile install_headers: · line 306
Quoted 5 lines
tools/lib/traceevent/Makefile +1
-0@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644)
Do you still wanna have 'traceevent' directory prefix? I just sometimes feel a bit annoying to type it. ;-)
Or you can rename it something like 'tep' or 'libtep' - and hopefully having only single header file to include..
Thanks,
Namhyung
Quoted 6 lines
tools/lib/traceevent/Makefile +0
-0install: install_libSignature · 1 line
2.19.1
Re: [PATCH 3/9] tools/lib/traceevent: Install trace-seq.h API header file
Quoted 9 lines · On Tue, 4 Dec 2018 16:47:39 +0900 Namhyung Kim <[email protected]> wrote:
tools/lib/traceevent/Makefile install_headers: · line 306
Quoted 6 lines
tools/lib/traceevent/Makefile +1
-0@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644)Do you still wanna have 'traceevent' directory prefix? I just sometimes feel a bit annoying to type it. ;-)
I'd still want the separate directory for it. I'll probably have a ftrace.h file added to this for ftrace specific code in the future.
Quoted 4 lines
Or you can rename it something like 'tep' or 'libtep' - and hopefully having only single header file to include..
Hmm, I wonder if we should just call the directory "trace"?
-- Steve
Re: [PATCH 3/9] tools/lib/traceevent: Install trace-seq.h API header file
Quoted 18 lines · Steven Rostedt
Quoted 9 lines · On Tue, 4 Dec 2018 16:47:39 +0900 Namhyung Kim <[email protected]> wrote:
tools/lib/traceevent/Makefile install_headers: · line 306
Quoted 6 lines
tools/lib/traceevent/Makefile +1
-0@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644)Do you still wanna have 'traceevent' directory prefix? I just sometimes feel a bit annoying to type it. ;-)
I'd still want the separate directory for it. I'll probably have a
ftrace.hfile added to this for ftrace specific code in the future.Quoted 1 line
Quoted 5 lines
Quoted 3 lines
Or you can rename it something like 'tep' or 'libtep' - and hopefully having only single header file to include..
Hmm, I wonder if we should just call the directory "trace"?
hum, I think it should match the library name, like 'include/tep/'
also we should change the plugin installation directory
[jolsa@krava traceevent]$ rpm -ql perf | grep traceevent /usr/lib64/traceevent /usr/lib64/traceevent/plugins /usr/lib64/traceevent/plugins/plugin_cfg80211.so /usr/lib64/traceevent/plugins/plugin_function.so /usr/lib64/traceevent/plugins/plugin_hrtimer.so /usr/lib64/traceevent/plugins/plugin_jbd2.so /usr/lib64/traceevent/plugins/plugin_kmem.so /usr/lib64/traceevent/plugins/plugin_kvm.so /usr/lib64/traceevent/plugins/plugin_mac80211.so /usr/lib64/traceevent/plugins/plugin_sched_switch.so /usr/lib64/traceevent/plugins/plugin_scsi.so /usr/lib64/traceevent/plugins/plugin_xen.so
jirka
Re: [PATCH 3/9] tools/lib/traceevent: Install trace-seq.h API header file
Quoted 19 lines · On Wed, 5 Dec 2018 13:25:17 +0100 Jiri Olsa <[email protected]> wrote:
Quoted 18 lines · Steven Rostedt
Quoted 9 lines · On Tue, 4 Dec 2018 16:47:39 +0900 Namhyung Kim <[email protected]> wrote:
tools/lib/traceevent/Makefile install_headers: · line 306
Quoted 6 lines
tools/lib/traceevent/Makefile +1
-0@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644)Do you still wanna have 'traceevent' directory prefix? I just sometimes feel a bit annoying to type it. ;-)
I'd still want the separate directory for it. I'll probably have a
ftrace.hfile added to this for ftrace specific code in the future.Quoted 1 line
Quoted 7 lines
Quoted 5 lines
Quoted 3 lines
Or you can rename it something like 'tep' or 'libtep' - and hopefully having only single header file to include..
Hmm, I wonder if we should just call the directory "trace"?
hum, I think it should match the library name, like '
include/tep/'
I was hoping to add other headers in this directly, like ftrace.h and perf.h ;-)
Quoted 16 lines
also we should change the plugin installation directory
[jolsa@krava traceevent]$ rpm -ql perf | grep traceevent
/usr/lib64/traceevent/usr/lib64/traceevent/plugins/usr/lib64/traceevent/plugins/plugin_cfg80211.so/usr/lib64/traceevent/plugins/plugin_function.so/usr/lib64/traceevent/plugins/plugin_hrtimer.so/usr/lib64/traceevent/plugins/plugin_jbd2.so/usr/lib64/traceevent/plugins/plugin_kmem.so/usr/lib64/traceevent/plugins/plugin_kvm.so/usr/lib64/traceevent/plugins/plugin_mac80211.so/usr/lib64/traceevent/plugins/plugin_sched_switch.so/usr/lib64/traceevent/plugins/plugin_scsi.so/usr/lib64/traceevent/plugins/plugin_xen.so
Change it to tep?
-- Steve
Re: [PATCH 3/9] tools/lib/traceevent: Install trace-seq.h API header file
Quoted 26 lines · Steven Rostedt
Quoted 23 lines · On Wed, 5 Dec 2018 13:25:17 +0100 Jiri Olsa <[email protected]> wrote:
Quoted 22 lines · Steven Rostedt
Quoted 9 lines · On Tue, 4 Dec 2018 16:47:39 +0900 Namhyung Kim <[email protected]> wrote:
tools/lib/traceevent/Makefile install_headers: · line 306
Quoted 6 lines
tools/lib/traceevent/Makefile +1
-0@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644)Do you still wanna have 'traceevent' directory prefix? I just sometimes feel a bit annoying to type it. ;-)
I'd still want the separate directory for it. I'll probably have a
ftrace.hfile added to this for ftrace specific code in the future.Quoted 4 lines
Or you can rename it something like 'tep' or 'libtep' - and hopefully having only single header file to include..
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
Hmm, I wonder if we should just call the directory "trace"?
hum, I think it should match the library name, like '
include/tep/'I was hoping to add other headers in this directly, like
ftrace.handperf.h;-)
those are headers from trace-cmd?
I guess we could have some common 'trace' related directory, but I think we should have some rules for placing files in there to avoid mayhem ;-)
but I'd prefer to go with package related directories under include
Quoted 16 lines
Quoted 15 lines
also we should change the plugin installation directory
[jolsa@krava traceevent]$ rpm -ql perf | grep traceevent
/usr/lib64/traceevent/usr/lib64/traceevent/plugins/usr/lib64/traceevent/plugins/plugin_cfg80211.so/usr/lib64/traceevent/plugins/plugin_function.so/usr/lib64/traceevent/plugins/plugin_hrtimer.so/usr/lib64/traceevent/plugins/plugin_jbd2.so/usr/lib64/traceevent/plugins/plugin_kmem.so/usr/lib64/traceevent/plugins/plugin_kvm.so/usr/lib64/traceevent/plugins/plugin_mac80211.so/usr/lib64/traceevent/plugins/plugin_sched_switch.so/usr/lib64/traceevent/plugins/plugin_scsi.so/usr/lib64/traceevent/plugins/plugin_xen.so
Quoted 1 line
Change it to tep?
yes, that makes sense to me
jirka
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Install trace-seq.h API header file
In reply to Steven Rostedttools lib traceevent: Install trace-seq.h API header file
Commit-ID: 01b56c0296da84f2b0a91db98a18d177a57e19eb Gitweb: https://git.kernel.org/tip/01b56c0296da84f2b0a91db98a18d177a57e19eb Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:06 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:14:53 -0300
tools lib traceevent: Install trace-seq.h API header file
This patch installs trace-seq.h header file on "make install".
--- tools/lib/traceevent/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/lib/traceevent/Makefile +2 -1
@@ -285,7 +285,7 @@ define do_install_pkgconfig_file fi endef -install_lib: all_cmd install_plugins install_pkgconfig +install_lib: all_cmd install_plugins install_headers install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644) install: install_lib
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Install trace-seq.h API header file
In reply to Steven Rostedttools lib traceevent: Install trace-seq.h API header file
Commit-ID: 4c784894ac29195af24362125a72beda4aeb8b9f Gitweb: https://git.kernel.org/tip/4c784894ac29195af24362125a72beda4aeb8b9f Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:06 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:55:59 -0300
tools lib traceevent: Install trace-seq.h API header file
This patch installs trace-seq.h header file on "make install".
--- tools/lib/traceevent/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/lib/traceevent/Makefile +2 -1
@@ -285,7 +285,7 @@ define do_install_pkgconfig_file fi endef -install_lib: all_cmd install_plugins install_pkgconfig +install_lib: all_cmd install_plugins install_headers install_pkgconfig $(call QUIET_INSTALL, $(LIB_TARGET)) \ $(call do_install_mkdir,$(libdir_SQ)); \ cp -fpR $(LIB_INSTALL) $(DESTDIR)$(libdir_SQ)
@@ -302,6 +302,7 @@ install_headers: $(call QUIET_INSTALL, headers) \ $(call do_install,event-parse.h,$(prefix)/include/traceevent,644); \ $(call do_install,event-utils.h,$(prefix)/include/traceevent,644); \ + $(call do_install,trace-seq.h,$(prefix)/include/traceevent,644); \ $(call do_install,kbuffer.h,$(prefix)/include/traceevent,644) install: install_lib
PATCH 4/9 tools/lib/traceevent, tools/perf: Rename struct tep_event_format to struct tep_event
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, variables, data structures and functions require a unique prefix to prevent name space conflicts. This renames struct tep_event_format to struct tep_event, which describes more closely the purpose of the struct.
--- tools/lib/traceevent/event-parse-api.c | 2 +- tools/lib/traceevent/event-parse-local.h | 6 +- tools/lib/traceevent/event-parse.c | 188 +++++++++--------- tools/lib/traceevent/event-parse.h | 62 +++--- tools/lib/traceevent/parse-filter.c | 42 ++-- tools/lib/traceevent/plugin_function.c | 2 +- tools/lib/traceevent/plugin_hrtimer.c | 4 +- tools/lib/traceevent/plugin_kmem.c | 2 +- tools/lib/traceevent/plugin_kvm.c | 14 +- tools/lib/traceevent/plugin_mac80211.c | 4 +- tools/lib/traceevent/plugin_sched_switch.c | 4 +- tools/perf/builtin-trace.c | 2 +- tools/perf/util/evsel.h | 4 +- tools/perf/util/header.c | 2 +- tools/perf/util/python.c | 4 +- .../util/scripting-engines/trace-event-perl.c | 6 +- .../scripting-engines/trace-event-python.c | 8 +- tools/perf/util/trace-event-parse.c | 16 +- tools/perf/util/trace-event.c | 8 +- tools/perf/util/trace-event.h | 16 +- 20 files changed, 198 insertions(+), 198 deletions(-)
tools/lib/traceevent/event-parse-api.c +1 -1
@@ -15,7 +15,7 @@* This returns pointer to the first element of the events array * If @tep is NULL, NULL is returned. */ -struct tep_event_format *tep_get_first_event (struct tep_handle *tep) +struct tep_event *tep_get_first_event (struct tep_handle *tep) {if (tep && tep->events)return tep->events[0 ];
tools/lib/traceevent/event-parse-local.h +3 -3
@@ -50,9 +50,9 @@ struct tep_handle {unsigned int printk_count; -struct tep_event_format **events; +struct tep_event **events;int nr_events; -struct tep_event_format **sort_events; +struct tep_event **sort_events;enum tep_event_sort_type last_type;int type_offset;
@@ -84,7 +84,7 @@ struct tep_handle {struct tep_function_handler *func_handlers;/* cache */ -struct tep_event_format *last_event; +struct tep_event *last_event;char *trace_clock; };
tools/lib/traceevent/event-parse.c +94 -94
664 lines not on this page · raw message
tools/lib/traceevent/event-parse.h +31 -31
152 lines not on this page · raw message
tools/lib/traceevent/parse-filter.c +21 -21
162 lines not on this page · raw message
tools/lib/traceevent/plugin_function.c +1 -1
@@ -124,7 +124,7 @@ static int add_and_get_index(const char *parent, const char *child, int cpu) }static int function_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_handle *pevent = event->pevent;unsigned long long function;
tools/lib/traceevent/plugin_hrtimer.c +2 -2
@@ -27,7 +27,7 @@static int timer_expire_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {trace_seq_printf (s,"hrtimer=" );
@@ -47,7 +47,7 @@ static int timer_expire_handler(struct trace_seq *s,static int timer_start_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {trace_seq_printf (s,"hrtimer=" );
tools/lib/traceevent/plugin_kmem.c +1 -1
@@ -25,7 +25,7 @@#include "trace-seq.h" static int call_site_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val, addr;
tools/lib/traceevent/plugin_kvm.c +7 -7
@@ -249,7 +249,7 @@ static const char *find_exit_reason(unsigned isa, int val) }static int print_exit_reason (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,const char *field) +struct tep_event *event,const char *field) {unsigned long long isa;unsigned long long val;
@@ -270,7 +270,7 @@ static int print_exit_reason(struct trace_seq *s, struct tep_record *record, }static int kvm_exit_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long info1 =0 , info2 =0 ;
@@ -293,7 +293,7 @@ static int kvm_exit_handler(struct trace_seq *s, struct tep_record *record,static int kvm_emulate_insn_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long rip, csbase, len, flags, failed;int llen;
@@ -332,7 +332,7 @@ static int kvm_emulate_insn_handler(struct trace_seq *s,static int kvm_nested_vmexit_inject_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {if (print_exit_reason (s, record, event,"exit_code" ) <0 )return -1 ;
@@ -346,7 +346,7 @@ static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct tep_reco }static int kvm_nested_vmexit_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {tep_print_num_field (s,"rip %llx " , event,"rip" , record,1 );
@@ -372,7 +372,7 @@ union kvm_mmu_page_role { };static int kvm_mmu_print_role (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long val;static const char *access_str[] = {
@@ -419,7 +419,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct tep_record *record,static int kvm_mmu_get_page_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long val;
tools/lib/traceevent/plugin_mac80211.c +2 -2
@@ -26,7 +26,7 @@#define INDENT 65 -static void print_string (struct trace_seq *s,struct tep_event_format *event, +static void print_string (struct trace_seq *s,struct tep_event *event,const char *name,const void *data) {struct tep_format_field *f =tep_find_field (event, name);
@@ -60,7 +60,7 @@ static void print_string(struct trace_seq *s, struct tep_event_format *event,static int drv_bss_info_changed (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {void *data = record->data;
tools/lib/traceevent/plugin_sched_switch.c +2 -2
@@ -67,7 +67,7 @@ static void write_and_save_comm(struct tep_format_field *field,static int sched_wakeup_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val;
@@ -96,7 +96,7 @@ static int sched_wakeup_handler(struct trace_seq *s,static int sched_switch_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val;
tools/perf/builtin-trace.c +1 -1
@@ -885,7 +885,7 @@ static struct syscall_fmt *syscall_fmt__find_by_alias(const char *alias)* args_size: sum of the sizes of the syscall arguments, anything after that is augmented stuff: pathname for openat, etc. */ struct syscall { -struct tep_event_format *tp_format; +struct tep_event *tp_format;int nr_args;int args_size;bool is_exit;
tools/perf/util/evsel.h +2 -2
@@ -106,7 +106,7 @@ struct perf_evsel {char *name;double scale;const char *unit; -struct tep_event_format *tp_format; +struct tep_event *tp_format;off_t id_offset;struct perf_stat_evsel *stats;void *priv;
@@ -216,7 +216,7 @@ static inline struct perf_evsel *perf_evsel__newtp(const char *sys, const char *struct perf_evsel *perf_evsel__new_cycles (bool precise); -struct tep_event_format *event_format__new (const char *sys,const char *name); +struct tep_event *event_format__new (const char *sys,const char *name);void perf_evsel__init (struct perf_evsel *evsel,struct perf_event_attr *attr,int idx);
tools/perf/util/header.c +1 -1
@@ -3268,7 +3268,7 @@ static int read_attr(int fd, struct perf_header *ph,static int perf_evsel__prepare_tracepoint_event (struct perf_evsel *evsel,struct tep_handle *pevent) { -struct tep_event_format *event; +struct tep_event *event;char bf[128 ];/* already prepared */
tools/perf/util/python.c +2 -2
@@ -386,7 +386,7 @@ get_tracepoint_field(struct pyrf_event *pevent, PyObject *attr_name)struct tep_format_field *field;if (!evsel->tp_format) { -struct tep_event_format *tp_format; +struct tep_event *tp_format; tp_format =trace_event__tp_format_id (evsel->attr.config);if (!tp_format)
@@ -1240,7 +1240,7 @@ static struct {static PyObject *pyrf__tracepoint (struct pyrf_evsel *pevsel,PyObject *args,PyObject *kwargs) { -struct tep_event_format *tp_format; +struct tep_event *tp_format;static char *kwlist[] = {"sys" ,"name" ,NULL };char *sys =NULL ;char *name =NULL ;
tools/perf/util/scripting-engines/trace-event-perl.c +3 -3
@@ -189,7 +189,7 @@ static void define_flag_field(const char *ev_name,LEAVE ; } -static void define_event_symbols (struct tep_event_format *event, +static void define_event_symbols (struct tep_event *event,const char *ev_name,struct tep_print_arg *args) {
@@ -338,7 +338,7 @@ static void perl_process_tracepoint(struct perf_sample *sample, struct addr_location *al) {struct thread *thread = al->thread; -struct tep_event_format *event = evsel->tp_format; +struct tep_event *event = evsel->tp_format;struct tep_format_field *field;static char handler[256 ];unsigned long long val;
@@ -537,7 +537,7 @@ static int perl_stop_script(void)static int perl_generate_script (struct tep_handle *pevent,const char *outfile) { -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;struct tep_format_field *f;char fname[PATH_MAX ];int not_first, count;
tools/perf/util/scripting-engines/trace-event-python.c +4 -4
@@ -264,7 +264,7 @@ static void define_field(enum tep_print_arg_type field_type,Py_DECREF (t); } -static void define_event_symbols (struct tep_event_format *event, +static void define_event_symbols (struct tep_event *event,const char *ev_name,struct tep_print_arg *args) {
@@ -332,7 +332,7 @@ static void define_event_symbols(struct tep_event_format *event,define_event_symbols (event, ev_name, args->next); } -static PyObject *get_field_numeric_entry (struct tep_event_format *event, +static PyObject *get_field_numeric_entry (struct tep_event *event,struct tep_format_field *field,void *data) {bool is_array = field->flags &TEP_FIELD_IS_ARRAY ;
@@ -790,7 +790,7 @@ static void python_process_tracepoint(struct perf_sample *sample,struct perf_evsel *evsel, struct addr_location *al) { - struct tep_event_format *event = evsel->tp_format; + struct tep_event *event = evsel->tp_format;PyObject *handler, *context, *t, *obj =NULL , *callchain;PyObject *dict =NULL , *all_entries_dict =NULL ;static char handler_name[256 ];
@@ -1590,7 +1590,7 @@ static int python_stop_script(void)static int python_generate_script (struct tep_handle *pevent,const char *outfile) { -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;struct tep_format_field *f;char fname[PATH_MAX ];int not_first, count;
tools/perf/util/trace-event-parse.c +8 -8
@@ -33,7 +33,7 @@ static int get_common_field(struct scripting_context *context, int *offset, int *size, const char *type) { struct tep_handle *pevent = context->pevent; -struct tep_event_format *event; +struct tep_event *event;struct tep_format_field *field;if (!*size) {
@@ -95,7 +95,7 @@ int common_pc(struct scripting_context *context) }unsigned long long -raw_field_value (struct tep_event_format *event,const char *name,void *data) +raw_field_value (struct tep_event *event,const char *name,void *data) {struct tep_format_field *field;unsigned long long val;
@@ -109,12 +109,12 @@ raw_field_value(struct tep_event_format *event, const char *name, void *data)return val; } -unsigned long long read_size (struct tep_event_format *event,void *ptr,int size) +unsigned long long read_size (struct tep_event *event,void *ptr,int size) {return tep_read_number (event->pevent, ptr, size); } -void event_format__fprintf (struct tep_event_format *event, +void event_format__fprintf (struct tep_event *event,int cpu,void *data,int size,FILE *fp) {struct tep_record record;
@@ -131,7 +131,7 @@ void event_format__fprintf(struct tep_event_format *event,trace_seq_destroy (&s); } -void event_format__print (struct tep_event_format *event, +void event_format__print (struct tep_event *event,int cpu,void *data,int size) {return event_format__fprintf (event, cpu, data, size, stdout);
@@ -190,12 +190,12 @@ int parse_event_file(struct tep_handle *pevent,return tep_parse_event (pevent, buf, size, sys); } -struct tep_event_format *trace_find_next_event (struct tep_handle *pevent, -struct tep_event_format *event) +struct tep_event *trace_find_next_event (struct tep_handle *pevent, +struct tep_event *event) {static int idx;int events_count; -struct tep_event_format *all_events; +struct tep_event *all_events; all_events =tep_get_first_event (pevent); events_count =tep_get_events_count (pevent);
tools/perf/util/trace-event.c +4 -4
@@ -72,12 +72,12 @@ void trace_event__cleanup(struct trace_event *t)/* * Returns pointer with encoded error via <linux/err.h> interface. */ -static struct tep_event_format * +static struct tep_event *tp_format (const char *sys,const char *name) {char *tp_dir =get_events_file (sys);struct tep_handle *pevent = tevent.pevent; -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;char path[PATH_MAX ];size_t size;char *data;
@@ -102,7 +102,7 @@ tp_format(const char *sys, const char *name)/* * Returns pointer with encoded error via <linux/err.h> interface. */ -struct tep_event_format * +struct tep_event *trace_event__tp_format (const char *sys,const char *name) {if (!tevent_initialized &&trace_event__init2 ())
@@ -111,7 +111,7 @@ trace_event__tp_format(const char *sys, const char *name)return tp_format (sys, name); } -struct tep_event_format *trace_event__tp_format_id (int id) +struct tep_event *trace_event__tp_format_id (int id) {if (!tevent_initialized &&trace_event__init2 ())return ERR_PTR (-ENOMEM );
tools/perf/util/trace-event.h +8 -8
@@ -22,17 +22,17 @@ int trace_event__init(struct trace_event *t);void trace_event__cleanup (struct trace_event *t);int trace_event__register_resolver (struct machine *machine,tep_func_resolver_t *func); -struct tep_event_format * +struct tep_event *trace_event__tp_format (const char *sys,const char *name); -struct tep_event_format *trace_event__tp_format_id (int id); +struct tep_event *trace_event__tp_format_id (int id);int bigendian (void ); -void event_format__fprintf (struct tep_event_format *event, +void event_format__fprintf (struct tep_event *event,int cpu,void *data,int size,FILE *fp); -void event_format__print (struct tep_event_format *event, +void event_format__print (struct tep_event *event,int cpu,void *data,int size);int parse_ftrace_file (struct tep_handle *pevent,char *buf,unsigned long size);
@@ -40,7 +40,7 @@ int parse_event_file(struct tep_handle *pevent, char *buf, unsigned long size, char *sys);unsigned long long -raw_field_value (struct tep_event_format *event,const char *name,void *data); +raw_field_value (struct tep_event *event,const char *name,void *data);void parse_proc_kallsyms (struct tep_handle *pevent,char *file,unsigned int size);void parse_ftrace_printk (struct tep_handle *pevent,char *file,unsigned int size);
@@ -48,9 +48,9 @@ void parse_saved_cmdline(struct tep_handle *pevent, char *file, unsigned int sizssize_t trace_report (int fd,struct trace_event *tevent,bool repipe); -struct tep_event_format *trace_find_next_event (struct tep_handle *pevent, -struct tep_event_format *event); -unsigned long long read_size (struct tep_event_format *event,void *ptr,int size); +struct tep_event *trace_find_next_event (struct tep_handle *pevent, +struct tep_event *event); +unsigned long long read_size (struct tep_event *event,void *ptr,int size);unsigned long long eval_flag (const char *flag);int read_tracing_data (int fd,struct list_head *pattrs);
Signature · 1 line
2.19.1
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event'
tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event'
Commit-ID: 2d6b708fb58af050101cbdaba0e970b0fe4f6a63 Gitweb: https://git.kernel.org/tip/2d6b708fb58af050101cbdaba0e970b0fe4f6a63 Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:07 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:14:53 -0300
tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event'
In order to make libtraceevent into a proper library, variables, data structures and functions require a unique prefix to prevent name space conflicts.
This renames 'struct tep_event_format' to 'struct tep_event', which describes more closely the purpose of the struct.
--- tools/lib/traceevent/event-parse-api.c | 2 +- tools/lib/traceevent/event-parse-local.h | 6 +- tools/lib/traceevent/event-parse.c | 188 ++++++++++----------- tools/lib/traceevent/event-parse.h | 62 +++---- tools/lib/traceevent/parse-filter.c | 42 ++--- tools/lib/traceevent/plugin_function.c | 2 +- tools/lib/traceevent/plugin_hrtimer.c | 4 +- tools/lib/traceevent/plugin_kmem.c | 2 +- tools/lib/traceevent/plugin_kvm.c | 14 +- tools/lib/traceevent/plugin_mac80211.c | 4 +- tools/lib/traceevent/plugin_sched_switch.c | 4 +- tools/perf/builtin-trace.c | 2 +- tools/perf/util/evsel.h | 4 +- tools/perf/util/header.c | 2 +- tools/perf/util/python.c | 4 +- .../perf/util/scripting-engines/trace-event-perl.c | 6 +- .../util/scripting-engines/trace-event-python.c | 8 +- tools/perf/util/trace-event-parse.c | 16 +- tools/perf/util/trace-event.c | 8 +- tools/perf/util/trace-event.h | 16 +- 20 files changed, 198 insertions(+), 198 deletions(-)
tools/lib/traceevent/event-parse-api.c +1 -1
@@ -15,7 +15,7 @@* This returns pointer to the first element of the events array * If @tep is NULL, NULL is returned. */ -struct tep_event_format *tep_get_first_event (struct tep_handle *tep) +struct tep_event *tep_get_first_event (struct tep_handle *tep) {if (tep && tep->events)return tep->events[0 ];
tools/lib/traceevent/event-parse-local.h +3 -3
@@ -50,9 +50,9 @@ struct tep_handle {unsigned int printk_count; -struct tep_event_format **events; +struct tep_event **events;int nr_events; -struct tep_event_format **sort_events; +struct tep_event **sort_events;enum tep_event_sort_type last_type;int type_offset;
@@ -84,7 +84,7 @@ struct tep_handle {struct tep_function_handler *func_handlers;/* cache */ -struct tep_event_format *last_event; +struct tep_event *last_event;char *trace_clock; };
tools/lib/traceevent/event-parse.c +94 -94
664 lines not on this page · raw message
tools/lib/traceevent/event-parse.h +31 -31
152 lines not on this page · raw message
tools/lib/traceevent/parse-filter.c +21 -21
162 lines not on this page · raw message
tools/lib/traceevent/plugin_function.c +1 -1
@@ -124,7 +124,7 @@ static int add_and_get_index(const char *parent, const char *child, int cpu) }static int function_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_handle *pevent = event->pevent;unsigned long long function;
tools/lib/traceevent/plugin_hrtimer.c +2 -2
@@ -27,7 +27,7 @@static int timer_expire_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {trace_seq_printf (s,"hrtimer=" );
@@ -47,7 +47,7 @@ static int timer_expire_handler(struct trace_seq *s,static int timer_start_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {trace_seq_printf (s,"hrtimer=" );
tools/lib/traceevent/plugin_kmem.c +1 -1
@@ -25,7 +25,7 @@#include "trace-seq.h" static int call_site_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val, addr;
tools/lib/traceevent/plugin_kvm.c +7 -7
@@ -249,7 +249,7 @@ static const char *find_exit_reason(unsigned isa, int val) }static int print_exit_reason (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,const char *field) +struct tep_event *event,const char *field) {unsigned long long isa;unsigned long long val;
@@ -270,7 +270,7 @@ static int print_exit_reason(struct trace_seq *s, struct tep_record *record, }static int kvm_exit_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long info1 =0 , info2 =0 ;
@@ -293,7 +293,7 @@ static int kvm_exit_handler(struct trace_seq *s, struct tep_record *record,static int kvm_emulate_insn_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long rip, csbase, len, flags, failed;int llen;
@@ -332,7 +332,7 @@ static int kvm_emulate_insn_handler(struct trace_seq *s,static int kvm_nested_vmexit_inject_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {if (print_exit_reason (s, record, event,"exit_code" ) <0 )return -1 ;
@@ -346,7 +346,7 @@ static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct tep_reco }static int kvm_nested_vmexit_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {tep_print_num_field (s,"rip %llx " , event,"rip" , record,1 );
@@ -372,7 +372,7 @@ union kvm_mmu_page_role { };static int kvm_mmu_print_role (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long val;static const char *access_str[] = {
@@ -419,7 +419,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct tep_record *record,static int kvm_mmu_get_page_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long val;
tools/lib/traceevent/plugin_mac80211.c +2 -2
@@ -26,7 +26,7 @@#define INDENT 65 -static void print_string (struct trace_seq *s,struct tep_event_format *event, +static void print_string (struct trace_seq *s,struct tep_event *event,const char *name,const void *data) {struct tep_format_field *f =tep_find_field (event, name);
@@ -60,7 +60,7 @@ static void print_string(struct trace_seq *s, struct tep_event_format *event,static int drv_bss_info_changed (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {void *data = record->data;
tools/lib/traceevent/plugin_sched_switch.c +2 -2
@@ -67,7 +67,7 @@ static void write_and_save_comm(struct tep_format_field *field,static int sched_wakeup_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val;
@@ -96,7 +96,7 @@ static int sched_wakeup_handler(struct trace_seq *s,static int sched_switch_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val;
tools/perf/builtin-trace.c +1 -1
@@ -885,7 +885,7 @@ static struct syscall_fmt *syscall_fmt__find_by_alias(const char *alias)* args_size: sum of the sizes of the syscall arguments, anything after that is augmented stuff: pathname for openat, etc. */ struct syscall { -struct tep_event_format *tp_format; +struct tep_event *tp_format;int nr_args;int args_size;bool is_exit;
tools/perf/util/evsel.h +2 -2
@@ -106,7 +106,7 @@ struct perf_evsel {char *name;double scale;const char *unit; -struct tep_event_format *tp_format; +struct tep_event *tp_format;off_t id_offset;struct perf_stat_evsel *stats;void *priv;
@@ -216,7 +216,7 @@ static inline struct perf_evsel *perf_evsel__newtp(const char *sys, const char *struct perf_evsel *perf_evsel__new_cycles (bool precise); -struct tep_event_format *event_format__new (const char *sys,const char *name); +struct tep_event *event_format__new (const char *sys,const char *name);void perf_evsel__init (struct perf_evsel *evsel,struct perf_event_attr *attr,int idx);
tools/perf/util/header.c +1 -1
@@ -3268,7 +3268,7 @@ static int read_attr(int fd, struct perf_header *ph,static int perf_evsel__prepare_tracepoint_event (struct perf_evsel *evsel,struct tep_handle *pevent) { -struct tep_event_format *event; +struct tep_event *event;char bf[128 ];/* already prepared */
tools/perf/util/python.c +2 -2
@@ -386,7 +386,7 @@ get_tracepoint_field(struct pyrf_event *pevent, PyObject *attr_name)struct tep_format_field *field;if (!evsel->tp_format) { -struct tep_event_format *tp_format; +struct tep_event *tp_format; tp_format =trace_event__tp_format_id (evsel->attr.config);if (!tp_format)
@@ -1240,7 +1240,7 @@ static struct {static PyObject *pyrf__tracepoint (struct pyrf_evsel *pevsel,PyObject *args,PyObject *kwargs) { -struct tep_event_format *tp_format; +struct tep_event *tp_format;static char *kwlist[] = {"sys" ,"name" ,NULL };char *sys =NULL ;char *name =NULL ;
tools/perf/util/scripting-engines/trace-event-perl.c +3 -3
@@ -189,7 +189,7 @@ static void define_flag_field(const char *ev_name,LEAVE ; } -static void define_event_symbols (struct tep_event_format *event, +static void define_event_symbols (struct tep_event *event,const char *ev_name,struct tep_print_arg *args) {
@@ -338,7 +338,7 @@ static void perl_process_tracepoint(struct perf_sample *sample, struct addr_location *al) {struct thread *thread = al->thread; -struct tep_event_format *event = evsel->tp_format; +struct tep_event *event = evsel->tp_format;struct tep_format_field *field;static char handler[256 ];unsigned long long val;
@@ -537,7 +537,7 @@ static int perl_stop_script(void)static int perl_generate_script (struct tep_handle *pevent,const char *outfile) { -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;struct tep_format_field *f;char fname[PATH_MAX ];int not_first, count;
tools/perf/util/scripting-engines/trace-event-python.c +4 -4
@@ -264,7 +264,7 @@ static void define_field(enum tep_print_arg_type field_type,Py_DECREF (t); } -static void define_event_symbols (struct tep_event_format *event, +static void define_event_symbols (struct tep_event *event,const char *ev_name,struct tep_print_arg *args) {
@@ -332,7 +332,7 @@ static void define_event_symbols(struct tep_event_format *event,define_event_symbols (event, ev_name, args->next); } -static PyObject *get_field_numeric_entry (struct tep_event_format *event, +static PyObject *get_field_numeric_entry (struct tep_event *event,struct tep_format_field *field,void *data) {bool is_array = field->flags &TEP_FIELD_IS_ARRAY ;
@@ -790,7 +790,7 @@ static void python_process_tracepoint(struct perf_sample *sample,struct perf_evsel *evsel, struct addr_location *al) { - struct tep_event_format *event = evsel->tp_format; + struct tep_event *event = evsel->tp_format;PyObject *handler, *context, *t, *obj =NULL , *callchain;PyObject *dict =NULL , *all_entries_dict =NULL ;static char handler_name[256 ];
@@ -1590,7 +1590,7 @@ static int python_stop_script(void)static int python_generate_script (struct tep_handle *pevent,const char *outfile) { -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;struct tep_format_field *f;char fname[PATH_MAX ];int not_first, count;
tools/perf/util/trace-event-parse.c +8 -8
@@ -33,7 +33,7 @@ static int get_common_field(struct scripting_context *context, int *offset, int *size, const char *type) { struct tep_handle *pevent = context->pevent; -struct tep_event_format *event; +struct tep_event *event;struct tep_format_field *field;if (!*size) {
@@ -95,7 +95,7 @@ int common_pc(struct scripting_context *context) }unsigned long long -raw_field_value (struct tep_event_format *event,const char *name,void *data) +raw_field_value (struct tep_event *event,const char *name,void *data) {struct tep_format_field *field;unsigned long long val;
@@ -109,12 +109,12 @@ raw_field_value(struct tep_event_format *event, const char *name, void *data)return val; } -unsigned long long read_size (struct tep_event_format *event,void *ptr,int size) +unsigned long long read_size (struct tep_event *event,void *ptr,int size) {return tep_read_number (event->pevent, ptr, size); } -void event_format__fprintf (struct tep_event_format *event, +void event_format__fprintf (struct tep_event *event,int cpu,void *data,int size,FILE *fp) {struct tep_record record;
@@ -131,7 +131,7 @@ void event_format__fprintf(struct tep_event_format *event,trace_seq_destroy (&s); } -void event_format__print (struct tep_event_format *event, +void event_format__print (struct tep_event *event,int cpu,void *data,int size) {return event_format__fprintf (event, cpu, data, size, stdout);
@@ -190,12 +190,12 @@ int parse_event_file(struct tep_handle *pevent,return tep_parse_event (pevent, buf, size, sys); } -struct tep_event_format *trace_find_next_event (struct tep_handle *pevent, -struct tep_event_format *event) +struct tep_event *trace_find_next_event (struct tep_handle *pevent, +struct tep_event *event) {static int idx;int events_count; -struct tep_event_format *all_events; +struct tep_event *all_events; all_events =tep_get_first_event (pevent); events_count =tep_get_events_count (pevent);
tools/perf/util/trace-event.c +4 -4
@@ -72,12 +72,12 @@ void trace_event__cleanup(struct trace_event *t)/* * Returns pointer with encoded error via <linux/err.h> interface. */ -static struct tep_event_format * +static struct tep_event *tp_format (const char *sys,const char *name) {char *tp_dir =get_events_file (sys);struct tep_handle *pevent = tevent.pevent; -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;char path[PATH_MAX ];size_t size;char *data;
@@ -102,7 +102,7 @@ tp_format(const char *sys, const char *name)/* * Returns pointer with encoded error via <linux/err.h> interface. */ -struct tep_event_format * +struct tep_event *trace_event__tp_format (const char *sys,const char *name) {if (!tevent_initialized &&trace_event__init2 ())
@@ -111,7 +111,7 @@ trace_event__tp_format(const char *sys, const char *name)return tp_format (sys, name); } -struct tep_event_format *trace_event__tp_format_id (int id) +struct tep_event *trace_event__tp_format_id (int id) {if (!tevent_initialized &&trace_event__init2 ())return ERR_PTR (-ENOMEM );
tools/perf/util/trace-event.h +8 -8
@@ -22,17 +22,17 @@ int trace_event__init(struct trace_event *t);void trace_event__cleanup (struct trace_event *t);int trace_event__register_resolver (struct machine *machine,tep_func_resolver_t *func); -struct tep_event_format * +struct tep_event *trace_event__tp_format (const char *sys,const char *name); -struct tep_event_format *trace_event__tp_format_id (int id); +struct tep_event *trace_event__tp_format_id (int id);int bigendian (void ); -void event_format__fprintf (struct tep_event_format *event, +void event_format__fprintf (struct tep_event *event,int cpu,void *data,int size,FILE *fp); -void event_format__print (struct tep_event_format *event, +void event_format__print (struct tep_event *event,int cpu,void *data,int size);int parse_ftrace_file (struct tep_handle *pevent,char *buf,unsigned long size);
@@ -40,7 +40,7 @@ int parse_event_file(struct tep_handle *pevent, char *buf, unsigned long size, char *sys);unsigned long long -raw_field_value (struct tep_event_format *event,const char *name,void *data); +raw_field_value (struct tep_event *event,const char *name,void *data);void parse_proc_kallsyms (struct tep_handle *pevent,char *file,unsigned int size);void parse_ftrace_printk (struct tep_handle *pevent,char *file,unsigned int size);
@@ -48,9 +48,9 @@ void parse_saved_cmdline(struct tep_handle *pevent, char *file, unsigned int sizssize_t trace_report (int fd,struct trace_event *tevent,bool repipe); -struct tep_event_format *trace_find_next_event (struct tep_handle *pevent, -struct tep_event_format *event); -unsigned long long read_size (struct tep_event_format *event,void *ptr,int size); +struct tep_event *trace_find_next_event (struct tep_handle *pevent, +struct tep_event *event); +unsigned long long read_size (struct tep_event *event,void *ptr,int size);unsigned long long eval_flag (const char *flag);int read_tracing_data (int fd,struct list_head *pattrs);
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event'
In reply to Steven Rostedttools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event'
Commit-ID: 97fbf3f0e0aa854ed33141dc9a5410f0ac6c71f3 Gitweb: https://git.kernel.org/tip/97fbf3f0e0aa854ed33141dc9a5410f0ac6c71f3 Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:07 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:56:02 -0300
tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event'
In order to make libtraceevent into a proper library, variables, data structures and functions require a unique prefix to prevent name space conflicts.
This renames 'struct tep_event_format' to 'struct tep_event', which describes more closely the purpose of the struct.
--- tools/lib/traceevent/event-parse-api.c | 2 +- tools/lib/traceevent/event-parse-local.h | 6 +- tools/lib/traceevent/event-parse.c | 188 ++++++++++----------- tools/lib/traceevent/event-parse.h | 62 +++---- tools/lib/traceevent/parse-filter.c | 42 ++--- tools/lib/traceevent/plugin_function.c | 2 +- tools/lib/traceevent/plugin_hrtimer.c | 4 +- tools/lib/traceevent/plugin_kmem.c | 2 +- tools/lib/traceevent/plugin_kvm.c | 14 +- tools/lib/traceevent/plugin_mac80211.c | 4 +- tools/lib/traceevent/plugin_sched_switch.c | 4 +- tools/perf/builtin-trace.c | 2 +- tools/perf/util/evsel.h | 4 +- tools/perf/util/header.c | 2 +- tools/perf/util/python.c | 4 +- .../perf/util/scripting-engines/trace-event-perl.c | 6 +- .../util/scripting-engines/trace-event-python.c | 8 +- tools/perf/util/trace-event-parse.c | 16 +- tools/perf/util/trace-event.c | 8 +- tools/perf/util/trace-event.h | 16 +- 20 files changed, 198 insertions(+), 198 deletions(-)
tools/lib/traceevent/event-parse-api.c +1 -1
@@ -15,7 +15,7 @@* This returns pointer to the first element of the events array * If @tep is NULL, NULL is returned. */ -struct tep_event_format *tep_get_first_event (struct tep_handle *tep) +struct tep_event *tep_get_first_event (struct tep_handle *tep) {if (tep && tep->events)return tep->events[0 ];
tools/lib/traceevent/event-parse-local.h +3 -3
@@ -50,9 +50,9 @@ struct tep_handle {unsigned int printk_count; -struct tep_event_format **events; +struct tep_event **events;int nr_events; -struct tep_event_format **sort_events; +struct tep_event **sort_events;enum tep_event_sort_type last_type;int type_offset;
@@ -84,7 +84,7 @@ struct tep_handle {struct tep_function_handler *func_handlers;/* cache */ -struct tep_event_format *last_event; +struct tep_event *last_event;char *trace_clock; };
tools/lib/traceevent/event-parse.c +94 -94
664 lines not on this page · raw message
tools/lib/traceevent/event-parse.h +31 -31
152 lines not on this page · raw message
tools/lib/traceevent/parse-filter.c +21 -21
162 lines not on this page · raw message
tools/lib/traceevent/plugin_function.c +1 -1
@@ -124,7 +124,7 @@ static int add_and_get_index(const char *parent, const char *child, int cpu) }static int function_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_handle *pevent = event->pevent;unsigned long long function;
tools/lib/traceevent/plugin_hrtimer.c +2 -2
@@ -27,7 +27,7 @@static int timer_expire_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {trace_seq_printf (s,"hrtimer=" );
@@ -47,7 +47,7 @@ static int timer_expire_handler(struct trace_seq *s,static int timer_start_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {trace_seq_printf (s,"hrtimer=" );
tools/lib/traceevent/plugin_kmem.c +1 -1
@@ -25,7 +25,7 @@#include "trace-seq.h" static int call_site_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val, addr;
tools/lib/traceevent/plugin_kvm.c +7 -7
@@ -249,7 +249,7 @@ static const char *find_exit_reason(unsigned isa, int val) }static int print_exit_reason (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,const char *field) +struct tep_event *event,const char *field) {unsigned long long isa;unsigned long long val;
@@ -270,7 +270,7 @@ static int print_exit_reason(struct trace_seq *s, struct tep_record *record, }static int kvm_exit_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long info1 =0 , info2 =0 ;
@@ -293,7 +293,7 @@ static int kvm_exit_handler(struct trace_seq *s, struct tep_record *record,static int kvm_emulate_insn_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long rip, csbase, len, flags, failed;int llen;
@@ -332,7 +332,7 @@ static int kvm_emulate_insn_handler(struct trace_seq *s,static int kvm_nested_vmexit_inject_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {if (print_exit_reason (s, record, event,"exit_code" ) <0 )return -1 ;
@@ -346,7 +346,7 @@ static int kvm_nested_vmexit_inject_handler(struct trace_seq *s, struct tep_reco }static int kvm_nested_vmexit_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {tep_print_num_field (s,"rip %llx " , event,"rip" , record,1 );
@@ -372,7 +372,7 @@ union kvm_mmu_page_role { };static int kvm_mmu_print_role (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long val;static const char *access_str[] = {
@@ -419,7 +419,7 @@ static int kvm_mmu_print_role(struct trace_seq *s, struct tep_record *record,static int kvm_mmu_get_page_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {unsigned long long val;
tools/lib/traceevent/plugin_mac80211.c +2 -2
@@ -26,7 +26,7 @@#define INDENT 65 -static void print_string (struct trace_seq *s,struct tep_event_format *event, +static void print_string (struct trace_seq *s,struct tep_event *event,const char *name,const void *data) {struct tep_format_field *f =tep_find_field (event, name);
@@ -60,7 +60,7 @@ static void print_string(struct trace_seq *s, struct tep_event_format *event,static int drv_bss_info_changed (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {void *data = record->data;
tools/lib/traceevent/plugin_sched_switch.c +2 -2
@@ -67,7 +67,7 @@ static void write_and_save_comm(struct tep_format_field *field,static int sched_wakeup_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val;
@@ -96,7 +96,7 @@ static int sched_wakeup_handler(struct trace_seq *s,static int sched_switch_handler (struct trace_seq *s,struct tep_record *record, -struct tep_event_format *event,void *context) +struct tep_event *event,void *context) {struct tep_format_field *field;unsigned long long val;
tools/perf/builtin-trace.c +1 -1
@@ -885,7 +885,7 @@ static struct syscall_fmt *syscall_fmt__find_by_alias(const char *alias)* args_size: sum of the sizes of the syscall arguments, anything after that is augmented stuff: pathname for openat, etc. */ struct syscall { -struct tep_event_format *tp_format; +struct tep_event *tp_format;int nr_args;int args_size;bool is_exit;
tools/perf/util/evsel.h +2 -2
@@ -106,7 +106,7 @@ struct perf_evsel {char *name;double scale;const char *unit; -struct tep_event_format *tp_format; +struct tep_event *tp_format;off_t id_offset;struct perf_stat_evsel *stats;void *priv;
@@ -216,7 +216,7 @@ static inline struct perf_evsel *perf_evsel__newtp(const char *sys, const char *struct perf_evsel *perf_evsel__new_cycles (bool precise); -struct tep_event_format *event_format__new (const char *sys,const char *name); +struct tep_event *event_format__new (const char *sys,const char *name);void perf_evsel__init (struct perf_evsel *evsel,struct perf_event_attr *attr,int idx);
tools/perf/util/header.c +1 -1
@@ -3268,7 +3268,7 @@ static int read_attr(int fd, struct perf_header *ph,static int perf_evsel__prepare_tracepoint_event (struct perf_evsel *evsel,struct tep_handle *pevent) { -struct tep_event_format *event; +struct tep_event *event;char bf[128 ];/* already prepared */
tools/perf/util/python.c +2 -2
@@ -386,7 +386,7 @@ get_tracepoint_field(struct pyrf_event *pevent, PyObject *attr_name)struct tep_format_field *field;if (!evsel->tp_format) { -struct tep_event_format *tp_format; +struct tep_event *tp_format; tp_format =trace_event__tp_format_id (evsel->attr.config);if (!tp_format)
@@ -1240,7 +1240,7 @@ static struct {static PyObject *pyrf__tracepoint (struct pyrf_evsel *pevsel,PyObject *args,PyObject *kwargs) { -struct tep_event_format *tp_format; +struct tep_event *tp_format;static char *kwlist[] = {"sys" ,"name" ,NULL };char *sys =NULL ;char *name =NULL ;
tools/perf/util/scripting-engines/trace-event-perl.c +3 -3
@@ -189,7 +189,7 @@ static void define_flag_field(const char *ev_name,LEAVE ; } -static void define_event_symbols (struct tep_event_format *event, +static void define_event_symbols (struct tep_event *event,const char *ev_name,struct tep_print_arg *args) {
@@ -338,7 +338,7 @@ static void perl_process_tracepoint(struct perf_sample *sample, struct addr_location *al) {struct thread *thread = al->thread; -struct tep_event_format *event = evsel->tp_format; +struct tep_event *event = evsel->tp_format;struct tep_format_field *field;static char handler[256 ];unsigned long long val;
@@ -537,7 +537,7 @@ static int perl_stop_script(void)static int perl_generate_script (struct tep_handle *pevent,const char *outfile) { -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;struct tep_format_field *f;char fname[PATH_MAX ];int not_first, count;
tools/perf/util/scripting-engines/trace-event-python.c +4 -4
@@ -264,7 +264,7 @@ static void define_field(enum tep_print_arg_type field_type,Py_DECREF (t); } -static void define_event_symbols (struct tep_event_format *event, +static void define_event_symbols (struct tep_event *event,const char *ev_name,struct tep_print_arg *args) {
@@ -332,7 +332,7 @@ static void define_event_symbols(struct tep_event_format *event,define_event_symbols (event, ev_name, args->next); } -static PyObject *get_field_numeric_entry (struct tep_event_format *event, +static PyObject *get_field_numeric_entry (struct tep_event *event,struct tep_format_field *field,void *data) {bool is_array = field->flags &TEP_FIELD_IS_ARRAY ;
@@ -790,7 +790,7 @@ static void python_process_tracepoint(struct perf_sample *sample,struct perf_evsel *evsel, struct addr_location *al) { - struct tep_event_format *event = evsel->tp_format; + struct tep_event *event = evsel->tp_format;PyObject *handler, *context, *t, *obj =NULL , *callchain;PyObject *dict =NULL , *all_entries_dict =NULL ;static char handler_name[256 ];
@@ -1590,7 +1590,7 @@ static int python_stop_script(void)static int python_generate_script (struct tep_handle *pevent,const char *outfile) { -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;struct tep_format_field *f;char fname[PATH_MAX ];int not_first, count;
tools/perf/util/trace-event-parse.c +8 -8
@@ -33,7 +33,7 @@ static int get_common_field(struct scripting_context *context, int *offset, int *size, const char *type) { struct tep_handle *pevent = context->pevent; -struct tep_event_format *event; +struct tep_event *event;struct tep_format_field *field;if (!*size) {
@@ -95,7 +95,7 @@ int common_pc(struct scripting_context *context) }unsigned long long -raw_field_value (struct tep_event_format *event,const char *name,void *data) +raw_field_value (struct tep_event *event,const char *name,void *data) {struct tep_format_field *field;unsigned long long val;
@@ -109,12 +109,12 @@ raw_field_value(struct tep_event_format *event, const char *name, void *data)return val; } -unsigned long long read_size (struct tep_event_format *event,void *ptr,int size) +unsigned long long read_size (struct tep_event *event,void *ptr,int size) {return tep_read_number (event->pevent, ptr, size); } -void event_format__fprintf (struct tep_event_format *event, +void event_format__fprintf (struct tep_event *event,int cpu,void *data,int size,FILE *fp) {struct tep_record record;
@@ -131,7 +131,7 @@ void event_format__fprintf(struct tep_event_format *event,trace_seq_destroy (&s); } -void event_format__print (struct tep_event_format *event, +void event_format__print (struct tep_event *event,int cpu,void *data,int size) {return event_format__fprintf (event, cpu, data, size, stdout);
@@ -190,12 +190,12 @@ int parse_event_file(struct tep_handle *pevent,return tep_parse_event (pevent, buf, size, sys); } -struct tep_event_format *trace_find_next_event (struct tep_handle *pevent, -struct tep_event_format *event) +struct tep_event *trace_find_next_event (struct tep_handle *pevent, +struct tep_event *event) {static int idx;int events_count; -struct tep_event_format *all_events; +struct tep_event *all_events; all_events =tep_get_first_event (pevent); events_count =tep_get_events_count (pevent);
tools/perf/util/trace-event.c +4 -4
@@ -72,12 +72,12 @@ void trace_event__cleanup(struct trace_event *t)/* * Returns pointer with encoded error via <linux/err.h> interface. */ -static struct tep_event_format * +static struct tep_event *tp_format (const char *sys,const char *name) {char *tp_dir =get_events_file (sys);struct tep_handle *pevent = tevent.pevent; -struct tep_event_format *event =NULL ; +struct tep_event *event =NULL ;char path[PATH_MAX ];size_t size;char *data;
@@ -102,7 +102,7 @@ tp_format(const char *sys, const char *name)/* * Returns pointer with encoded error via <linux/err.h> interface. */ -struct tep_event_format * +struct tep_event *trace_event__tp_format (const char *sys,const char *name) {if (!tevent_initialized &&trace_event__init2 ())
@@ -111,7 +111,7 @@ trace_event__tp_format(const char *sys, const char *name)return tp_format (sys, name); } -struct tep_event_format *trace_event__tp_format_id (int id) +struct tep_event *trace_event__tp_format_id (int id) {if (!tevent_initialized &&trace_event__init2 ())return ERR_PTR (-ENOMEM );
tools/perf/util/trace-event.h +8 -8
@@ -22,17 +22,17 @@ int trace_event__init(struct trace_event *t);void trace_event__cleanup (struct trace_event *t);int trace_event__register_resolver (struct machine *machine,tep_func_resolver_t *func); -struct tep_event_format * +struct tep_event *trace_event__tp_format (const char *sys,const char *name); -struct tep_event_format *trace_event__tp_format_id (int id); +struct tep_event *trace_event__tp_format_id (int id);int bigendian (void ); -void event_format__fprintf (struct tep_event_format *event, +void event_format__fprintf (struct tep_event *event,int cpu,void *data,int size,FILE *fp); -void event_format__print (struct tep_event_format *event, +void event_format__print (struct tep_event *event,int cpu,void *data,int size);int parse_ftrace_file (struct tep_handle *pevent,char *buf,unsigned long size);
@@ -40,7 +40,7 @@ int parse_event_file(struct tep_handle *pevent, char *buf, unsigned long size, char *sys);unsigned long long -raw_field_value (struct tep_event_format *event,const char *name,void *data); +raw_field_value (struct tep_event *event,const char *name,void *data);void parse_proc_kallsyms (struct tep_handle *pevent,char *file,unsigned int size);void parse_ftrace_printk (struct tep_handle *pevent,char *file,unsigned int size);
@@ -48,9 +48,9 @@ void parse_saved_cmdline(struct tep_handle *pevent, char *file, unsigned int sizssize_t trace_report (int fd,struct trace_event *tevent,bool repipe); -struct tep_event_format *trace_find_next_event (struct tep_handle *pevent, -struct tep_event_format *event); -unsigned long long read_size (struct tep_event_format *event,void *ptr,int size); +struct tep_event *trace_find_next_event (struct tep_handle *pevent, +struct tep_event *event); +unsigned long long read_size (struct tep_event *event,void *ptr,int size);unsigned long long eval_flag (const char *flag);int read_tracing_data (int fd,struct list_head *pattrs);
PATCH 5/9 tools/lib/traceevent: Rename tep_free_format() to tep_free_event()
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, variables, data structures and functions require a unique prefix to prevent name space conflicts. This renames tep_free_format() to tep_free_event(), which describes more closely the purpose of the function.
--- tools/lib/traceevent/event-parse.c | 6 +++--- tools/lib/traceevent/event-parse.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
tools/lib/traceevent/event-parse.c +3 -3
@@ -6154,7 +6154,7 @@ __parse_event(struct tep_handle *pevent,return 0 ; event_add_failed: -tep_free_format (event); +tep_free_event (event);return ret; }
@@ -6763,7 +6763,7 @@ static void free_formats(struct tep_format *format)free_format_fields (format->fields); } -void tep_free_format (struct tep_event *event) +void tep_free_event (struct tep_event *event) {free (event->name);free (event->system);
@@ -6849,7 +6849,7 @@ void tep_free(struct tep_handle *pevent) }for (i =0 ; i < pevent->nr_events; i++) -tep_free_format (pevent->events[i]); +tep_free_event (pevent->events[i]);while (pevent->handlers) { handle = pevent->handlers;
tools/lib/traceevent/event-parse.h +1 -1
@@ -475,7 +475,7 @@ enum tep_errno tep_parse_format(struct tep_handle *pevent,struct tep_event **eventp, const char *buf, unsigned long size, const char *sys); -void tep_free_format (struct tep_event *event); +void tep_free_event (struct tep_event *event);void tep_free_format_field (struct tep_format_field *field); void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event,
Signature · 1 line
2.19.1
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Rename tep_free_format() to tep_free_event()
tools lib traceevent: Rename tep_free_format() to tep_free_event()
Commit-ID: 94888c7cef41d435506acd2e93cedf039d3db69d Gitweb: https://git.kernel.org/tip/94888c7cef41d435506acd2e93cedf039d3db69d Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:08 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:14:53 -0300
tools lib traceevent: Rename tep_free_format() to tep_free_event()
In order to make libtraceevent into a proper library, variables, data structures and functions require a unique prefix to prevent name space conflicts. This renames tep_free_format() to tep_free_event(), which describes more closely the purpose of the function.
--- tools/lib/traceevent/event-parse.c | 6 +++--- tools/lib/traceevent/event-parse.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
tools/lib/traceevent/event-parse.c +3 -3
@@ -6154,7 +6154,7 @@ __parse_event(struct tep_handle *pevent,return 0 ; event_add_failed: -tep_free_format (event); +tep_free_event (event);return ret; }
@@ -6763,7 +6763,7 @@ static void free_formats(struct tep_format *format)free_format_fields (format->fields); } -void tep_free_format (struct tep_event *event) +void tep_free_event (struct tep_event *event) {free (event->name);free (event->system);
@@ -6849,7 +6849,7 @@ void tep_free(struct tep_handle *pevent) }for (i =0 ; i < pevent->nr_events; i++) -tep_free_format (pevent->events[i]); +tep_free_event (pevent->events[i]);while (pevent->handlers) { handle = pevent->handlers;
tools/lib/traceevent/event-parse.h +1 -1
@@ -475,7 +475,7 @@ enum tep_errno tep_parse_format(struct tep_handle *pevent,struct tep_event **eventp, const char *buf, unsigned long size, const char *sys); -void tep_free_format (struct tep_event *event); +void tep_free_event (struct tep_event *event);void tep_free_format_field (struct tep_format_field *field); void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event,
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: Rename tep_free_format() to tep_free_event()
In reply to Steven Rostedttools lib traceevent: Rename tep_free_format() to tep_free_event()
Commit-ID: fc39851c455ce9e593302c9e376cdb9593c10704 Gitweb: https://git.kernel.org/tip/fc39851c455ce9e593302c9e376cdb9593c10704 Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:08 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:56:05 -0300
tools lib traceevent: Rename tep_free_format() to tep_free_event()
In order to make libtraceevent into a proper library, variables, data structures and functions require a unique prefix to prevent name space conflicts. This renames tep_free_format() to tep_free_event(), which describes more closely the purpose of the function.
--- tools/lib/traceevent/event-parse.c | 6 +++--- tools/lib/traceevent/event-parse.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-)
tools/lib/traceevent/event-parse.c +3 -3
@@ -6154,7 +6154,7 @@ __parse_event(struct tep_handle *pevent,return 0 ; event_add_failed: -tep_free_format (event); +tep_free_event (event);return ret; }
@@ -6763,7 +6763,7 @@ static void free_formats(struct tep_format *format)free_format_fields (format->fields); } -void tep_free_format (struct tep_event *event) +void tep_free_event (struct tep_event *event) {free (event->name);free (event->system);
@@ -6849,7 +6849,7 @@ void tep_free(struct tep_handle *pevent) }for (i =0 ; i < pevent->nr_events; i++) -tep_free_format (pevent->events[i]); +tep_free_event (pevent->events[i]);while (pevent->handlers) { handle = pevent->handlers;
tools/lib/traceevent/event-parse.h +1 -1
@@ -475,7 +475,7 @@ enum tep_errno tep_parse_format(struct tep_handle *pevent,struct tep_event **eventp, const char *buf, unsigned long size, const char *sys); -void tep_free_format (struct tep_event *event); +void tep_free_event (struct tep_event *event);void tep_free_format_field (struct tep_format_field *field); void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event,
PATCH 6/9 tools/perf: traceevent API cleanup, remove __tep_data2host*()
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. The __tep_data2host*() functions are going to no longer be available as a libtraceevent API, tep_read_number() should be used instead. This patch replaces __tep_data2host*() usage with tep_read_number() in perf.
--- tools/perf/util/trace-event-read.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/util/trace-event-read.c +2 -2
@@ -102,7 +102,7 @@ static unsigned int read4(struct tep_handle *pevent)if (do_read (&data,4 ) <0 )return 0 ; -return __tep_data2host4 (pevent, data); +return tep_read_number (pevent, &data,4 ); }static unsigned long long read8 (struct tep_handle *pevent)
@@ -111,7 +111,7 @@ static unsigned long long read8(struct tep_handle *pevent)if (do_read (&data,8 ) <0 )return 0 ; -return __tep_data2host8 (pevent, data); +return tep_read_number (pevent, &data,8 ); }static char *read_string (void )
Signature · 1 line
2.19.1
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] perf tools: traceevent API cleanup, remove __tep_data2host*()
perf tools: traceevent API cleanup, remove __tep_data2host*()
Commit-ID: 9f8e7683d1f54bed7d7cd33391ca9e31d24c942d Gitweb: https://git.kernel.org/tip/9f8e7683d1f54bed7d7cd33391ca9e31d24c942d Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:09 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:15:06 -0300
perf tools: traceevent API cleanup, remove __tep_data2host*()
In order to make libtraceevent into a proper library, its API should be straightforward. The __tep_data2host*() functions are going to no longer be available as a libtraceevent API, tep_read_number() should be used instead. This patch replaces __tep_data2host*() usage with tep_read_number() in perf.
--- tools/perf/util/trace-event-read.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/util/trace-event-read.c +2 -2
@@ -102,7 +102,7 @@ static unsigned int read4(struct tep_handle *pevent)if (do_read (&data,4 ) <0 )return 0 ; -return __tep_data2host4 (pevent, data); +return tep_read_number (pevent, &data,4 ); }static unsigned long long read8 (struct tep_handle *pevent)
@@ -111,7 +111,7 @@ static unsigned long long read8(struct tep_handle *pevent)if (do_read (&data,8 ) <0 )return 0 ; -return __tep_data2host8 (pevent, data); +return tep_read_number (pevent, &data,8 ); }static char *read_string (void )
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] perf tools: traceevent API cleanup, remove __tep_data2host*()
In reply to Steven Rostedtperf tools: traceevent API cleanup, remove __tep_data2host*()
Commit-ID: f0bba09ce3f88ddeef7a3e45f612d26b1e951d5b Gitweb: https://git.kernel.org/tip/f0bba09ce3f88ddeef7a3e45f612d26b1e951d5b Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:09 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:56:08 -0300
perf tools: traceevent API cleanup, remove __tep_data2host*()
In order to make libtraceevent into a proper library, its API should be straightforward. The __tep_data2host*() functions are going to no longer be available as a libtraceevent API, tep_read_number() should be used instead. This patch replaces __tep_data2host*() usage with tep_read_number() in perf.
--- tools/perf/util/trace-event-read.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/perf/util/trace-event-read.c +2 -2
@@ -102,7 +102,7 @@ static unsigned int read4(struct tep_handle *pevent)if (do_read (&data,4 ) <0 )return 0 ; -return __tep_data2host4 (pevent, data); +return tep_read_number (pevent, &data,4 ); }static unsigned long long read8 (struct tep_handle *pevent)
@@ -111,7 +111,7 @@ static unsigned long long read8(struct tep_handle *pevent)if (do_read (&data,8 ) <0 )return 0 ; -return __tep_data2host8 (pevent, data); +return tep_read_number (pevent, &data,8 ); }static char *read_string (void )
PATCH 7/9 tools/lib/traceevent: traceevent API cleanup
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:tep_free_event(), tep_free_format_field(), __tep_data2host2(), __tep_data2host4() and __tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.
--- tools/lib/traceevent/event-parse-api.c | 6 +++--- tools/lib/traceevent/event-parse-local.h | 7 +++++++ tools/lib/traceevent/event-parse.c | 13 ++++++++----- tools/lib/traceevent/event-parse.h | 16 ---------------- 4 files changed, 18 insertions(+), 24 deletions(-)
tools/lib/traceevent/event-parse-api.c +3 -3
@@ -51,7 +51,7 @@ void tep_set_flag(struct tep_handle *tep, int flag) tep->flags |= flag; } -unsigned short __tep_data2host2 (struct tep_handle *pevent,unsigned short data) +unsigned short tep_data2host2 (struct tep_handle *pevent,unsigned short data) {unsigned short swap;
@@ -64,7 +64,7 @@ unsigned short __tep_data2host2(struct tep_handle *pevent, unsigned short data)return swap; } -unsigned int __tep_data2host4 (struct tep_handle *pevent,unsigned int data) +unsigned int tep_data2host4 (struct tep_handle *pevent,unsigned int data) {unsigned int swap;
@@ -80,7 +80,7 @@ unsigned int __tep_data2host4(struct tep_handle *pevent, unsigned int data) }unsigned long long -__tep_data2host8 (struct tep_handle *pevent,unsigned long long data) +tep_data2host8 (struct tep_handle *pevent,unsigned long long data) {unsigned long long swap;
tools/lib/traceevent/event-parse-local.h +7 -0
@@ -89,4 +89,11 @@ struct tep_handle { char *trace_clock; }; +void tep_free_event (struct tep_event *event); +void tep_free_format_field (struct tep_format_field *field); + +unsigned short tep_data2host2 (struct tep_handle *pevent,unsigned short data); +unsigned int tep_data2host4 (struct tep_handle *pevent,unsigned int data); +unsigned long long tep_data2host8 (struct tep_handle *pevent,unsigned long long data); +#endif /* _PARSE_EVENTS_INT_H */
tools/lib/traceevent/event-parse.c +8 -5
@@ -3328,15 +3328,18 @@ tep_find_any_field(struct tep_event *event, const char *name)unsigned long long tep_read_number (struct tep_handle *pevent,const void *ptr,int size) { +unsigned long long val; +switch (size) {case 1 :return *(unsigned char *)ptr;case 2 : -return tep_data2host2 (pevent, ptr); +return tep_data2host2 (pevent, *(unsigned short *)ptr);case 4 : -return tep_data2host4 (pevent, ptr); +return tep_data2host4 (pevent, *(unsigned int *)ptr);case 8 : -return tep_data2host8 (pevent, ptr); +memcpy (&val, (ptr),sizeof (unsigned long long )); +return tep_data2host8 (pevent, val);default :/* BUG! */ return 0 ;
@@ -4062,7 +4065,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, f =tep_find_any_field (event, arg->string.string); arg->string.offset = f->offset; } - str_offset =tep_data2host4 (pevent, data + arg->string.offset); + str_offset =tep_data2host4 (pevent, *(unsigned int *)(data + arg->string.offset)); str_offset &=0xffff ;print_str_to_seq (s, format, len_arg, ((char *)data) + str_offset);break ;
@@ -4080,7 +4083,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, f =tep_find_any_field (event, arg->bitmask.bitmask); arg->bitmask.offset = f->offset; } - bitmask_offset =tep_data2host4 (pevent, data + arg->bitmask.offset); + bitmask_offset =tep_data2host4 (pevent, *(unsigned int *)(data + arg->bitmask.offset)); bitmask_size = bitmask_offset >>16 ; bitmask_offset &=0xffff ; print_bitmask_to_seq(pevent, s, format, len_arg,
tools/lib/traceevent/event-parse.h +0 -16
@@ -409,20 +409,6 @@ void tep_print_plugins(struct trace_seq *s,typedef char *(tep_func_resolver_t )(void *priv,unsigned long long *addrp,char **modp);void tep_set_flag (struct tep_handle *tep,int flag); -unsigned short __tep_data2host2 (struct tep_handle *pevent,unsigned short data); -unsigned int __tep_data2host4 (struct tep_handle *pevent,unsigned int data); -unsigned long long -__tep_data2host8 (struct tep_handle *pevent,unsigned long long data); - -#define tep_data2host2 (pevent, ptr) __tep_data2host2(pevent, *(unsigned short *)(ptr)) -#define tep_data2host4 (pevent, ptr) __tep_data2host4(pevent, *(unsigned int *)(ptr)) -#define tep_data2host8 (pevent, ptr) \ -({ \ - unsigned long long __val; \ - \ - memcpy(&__val, (ptr), sizeof(unsigned long long)); \ - __tep_data2host8(pevent, __val); \ -})static inline int tep_host_bigendian (void ) {
@@ -475,8 +461,6 @@ enum tep_errno tep_parse_format(struct tep_handle *pevent,struct tep_event **eventp, const char *buf, unsigned long size, const char *sys); -void tep_free_event (struct tep_event *event); -void tep_free_format_field (struct tep_format_field *field); void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record,
Signature · 1 line
2.19.1
Arnaldo Carvalho de Melo
maintainerRe: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
Em Fri, Nov 30, 2018 at 10:44:10AM -0500, Steven Rostedt escreveu:
Quoted 9 lines
From: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(),tep_free_format_field(),__tep_data2host2(),__tep_data2host4()and__tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.
I applied the previous patches, stopped here as it this one fails with the error bellow.
Please resend from this patch onwards.
BTW, this is what I have right now:
[acme@quaco perf]$ git log --oneline - 69db9efe53c72 (HEAD -> perf/core) tools lib traceevent: Rename tep_free_format() to tep_free_event() e58c351e8383 tools lib traceevent, perf tools: Rename 'struct tep_event_format' to 'struct tep_event' 4237fd0b60d8 tools lib traceevent: Install trace-seq.h API header filebb837f2581dc tools lib traceevent: Added support for pkg-configa2c167ad70b6 tools lib traceevent: Implement new API tep_get_ref()51d0337d0198 (acme.korg/perf/core) tools lib traceevent: Add sanity check to is_timestamp_in_us()
- Arnaldo
[acme@quaco perf]$ m
make: Entering directory '/home/acme/git/perf/tools/perf'
BUILD: Doing 'make -j8' parallel build
CC /tmp/build/perf/util/trace-event-read.o
CC /tmp/build/perf/util/trace-event-scripting.o
CC /tmp/build/perf/util/trace-event.o
CC /tmp/build/perf/util/sort.o
CC /tmp/build/perf/util/hist.o
INSTALL trace_plugins
CC /tmp/build/perf/util/cgroup.o
CC /tmp/build/perf/util/stat.o
CC /tmp/build/perf/util/stat-shadow.o
CC /tmp/build/perf/util/stat-display.o
CC /tmp/build/perf/util/record.o
util/trace-event-read.c: In function ‘read4’:
util/trace-event-read.c:105:9: error: implicit declaration of function ‘__tep_data2host4’; did you mean ‘tep_data_flags’? [-Werror=implicit-function-declaration]
return __tep_data2host4(pevent, data);
^~~~~~~~~~~~~~~~
tep_data_flags
util/trace-event-read.c:105:9: error: nested extern declaration of ‘__tep_data2host4’ [-Werror=nested-externs]
util/trace-event-read.c: In function ‘read8’:
util/trace-event-read.c:114:9: error: implicit declaration of function ‘__tep_data2host8’; did you mean ‘tep_data_flags’? [-Werror=implicit-function-declaration]
return __tep_data2host8(pevent, data);
^~~~~~~~~~~~~~~~
tep_data_flagsutil/trace-event-read.c:114:9: error: nested extern declaration of ‘__tep_data2host8’ [-Werror=nested-externs]
cc1: all warnings being treated as errors
mv: cannot stat '/tmp/build/perf/util/.trace-event-read.o.tmp': No such file or directory make[4]: *** [/home/acme/git/perf/tools/build/Makefile.build:96: /tmp/build/perf/util/trace-event-read.o] Error 1 make[4]: *** Waiting for unfinished jobs....
make[3]: *** [/home/acme/git/perf/tools/build/Makefile.build:139: util] Error 2
make[2]: *** [Makefile.perf:658: /tmp/build/perf/libperf-in.o] Error 2
make[1]: *** [Makefile.perf:215: sub-make] Error 2
make: *** [Makefile:110: install-bin] Error 2
make: Leaving directory '/home/acme/git/perf/tools/perf'
Performance counter stats for 'make -k O=/tmp/build/perf -C tools/perf install-bin':
20,606,463,070 cycles:u
24,937,056,161 instructions:u # 1.21 insn per cycle
2.192507189 seconds time elapsed
5.571323000 seconds user
0.994057000 seconds sys[acme@quaco perf]$
Re: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
Quoted 11 lines · On Fri, 30 Nov 2018 16:18:56 -0300 Arnaldo Carvalho de Melo <[email protected]>…
Em Fri, Nov 30, 2018 at 10:44:10AM -0500, Steven Rostedt escreveu:
Quoted 9 lines
From: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(),tep_free_format_field(),__tep_data2host2(),__tep_data2host4()and__tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.
Quoted 2 lines
I applied the previous patches, stopped here as it this one fails with the error bellow.
Thanks, I'll take a look at it.
What branch are you applying it against? Just to make sure I'm testing the same thing you are.
-- Steve
Quoted 13 lines
Please resend from this patch onwards.
BTW, this is what I have right now:
[acme@quaco perf]$ git log --oneline - 6
9db9efe53c72(HEAD -> perf/core) tools lib traceevent: Renametep_free_format()totep_free_event()e58c351e8383tools lib traceevent, perf tools: Rename 'structtep_event_format' to 'structtep_event'4237fd0b60d8tools lib traceevent: Installtrace-seq.hAPI header filebb837f2581dctools lib traceevent: Added support for pkg-configa2c167ad70b6tools lib traceevent: Implement new APItep_get_ref()51d0337d0198(acme.korg/perf/core) tools lib traceevent: Add sanity check tois_timestamp_in_us()
Arnaldo Carvalho de Melo
maintainerRe: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
Em Fri, Nov 30, 2018 at 02:37:36PM -0500, Steven Rostedt escreveu:
Quoted 14 lines
Quoted 11 lines · On Fri, 30 Nov 2018 16:18:56 -0300 Arnaldo Carvalho de Melo <[email protected]>…
Em Fri, Nov 30, 2018 at 10:44:10AM -0500, Steven Rostedt escreveu:
Quoted 9 lines
From: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(),tep_free_format_field(),__tep_data2host2(),__tep_data2host4()and__tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.
Quoted 7 lines
Quoted 2 lines
I applied the previous patches, stopped here as it this one fails with the error bellow.
Thanks, I'll take a look at it.
What branch are you applying it against? Just to make sure I'm testing the same thing you are.
These are for next release, so perf/core, but I haven't pushed out what I have, have to test it over the containers before that, will kick that now so that I can push it externally. Will let you know when done.
- Arnaldo
Quoted 15 lines
-- Steve
Quoted 13 lines
Please resend from this patch onwards.
BTW, this is what I have right now:
[acme@quaco perf]$ git log --oneline - 6
9db9efe53c72(HEAD -> perf/core) tools lib traceevent: Renametep_free_format()totep_free_event()e58c351e8383tools lib traceevent, perf tools: Rename 'structtep_event_format' to 'structtep_event'4237fd0b60d8tools lib traceevent: Installtrace-seq.hAPI header filebb837f2581dctools lib traceevent: Added support for pkg-configa2c167ad70b6tools lib traceevent: Implement new APItep_get_ref()51d0337d0198(acme.korg/perf/core) tools lib traceevent: Add sanity check tois_timestamp_in_us()
Signature · 1 line
- Arnaldo
Re: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
In reply to Steven RostedtQuoted 2 lines · On Fri, 30 Nov 2018 14:37:36 -0500 Steven Rostedt <[email protected]> wrote:
What branch are you applying it against? Just to make sure I'm testing the same thing you are.
Nevermind, I just downloaded your repo.
BTW, should I be basing these patches off of your repo or tip/perf/core?
-- Steve
Re: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
In reply to Arnaldo Carvalho de MeloQuoted 39 lines · On Fri, 30 Nov 2018 16:18:56 -0300 Arnaldo Carvalho de Melo <[email protected]>…
Em Fri, Nov 30, 2018 at 10:44:10AM -0500, Steven Rostedt escreveu:
Quoted 9 lines
From: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(),tep_free_format_field(),__tep_data2host2(),__tep_data2host4()and__tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.I applied the previous patches, stopped here as it this one fails with the error bellow.
Please resend from this patch onwards.
BTW, this is what I have right now:
[acme@quaco perf]$ git log --oneline - 6
9db9efe53c72(HEAD -> perf/core) tools lib traceevent: Renametep_free_format()totep_free_event()e58c351e8383tools lib traceevent, perf tools: Rename 'structtep_event_format' to 'structtep_event'4237fd0b60d8tools lib traceevent: Installtrace-seq.hAPI header filebb837f2581dctools lib traceevent: Added support for pkg-configa2c167ad70b6tools lib traceevent: Implement new APItep_get_ref()51d0337d0198(acme.korg/perf/core) tools lib traceevent: Add sanity check tois_timestamp_in_us()- Arnaldo
[acme@quaco perf]$ m
make: Entering directory '/home/acme/git/perf/tools/perf'BUILD: Doing 'make -j8' parallel build CC /tmp/build/perf/util/trace-event-read.o CC /tmp/build/perf/util/trace-event-scripting.o CC /tmp/build/perf/util/trace-event.o CC /tmp/build/perf/util/sort.o CC /tmp/build/perf/util/hist.o INSTALL trace_plugins CC /tmp/build/perf/util/cgroup.o CC /tmp/build/perf/util/stat.o
Quoted 8 lines
CC /tmp/build/perf/util/stat-shadow.o
CC /tmp/build/perf/util/stat-display.o
CC /tmp/build/perf/util/record.o
util/trace-event-read.c: In function ‘read4’:
util/trace-event-read.c:105:9: error: implicit declaration of function ‘__tep_data2host4’; did you mean ‘tep_data_flags’? [-Werror=implicit-function-declaration]
return __tep_data2host4(pevent, data);
^~~~~~~~~~~~~~~~
tep_data_flagsThis should have been changed with patch 6 in the series.
-- Steve
Quoted 29 lines
util/trace-event-read.c:105:9: error: nested extern declaration of ‘__tep_data2host4’ [-Werror=nested-externs]util/trace-event-read.c: In function ‘read8’:util/trace-event-read.c:114:9: error: implicit declaration of function ‘__tep_data2host8’; did you mean ‘tep_data_flags’? [-Werror=implicit-function-declaration]return __tep_data2host8(pevent, data); ^~~~~~~~~~~~~~~~ tep_data_flags
util/trace-event-read.c:114:9: error: nested extern declaration of ‘__tep_data2host8’ [-Werror=nested-externs]
cc1: all warnings being treated as errors
mv: cannot stat '/tmp/build/perf/util/.trace-event-read.o.tmp': No such file or directory make[4]: *** [/home/acme/git/perf/tools/build/Makefile.build:96:/tmp/build/perf/util/trace-event-read.o] Error 1 make[4]: *** Waiting for unfinished jobs....
make[3]: *** [/home/acme/git/perf/tools/build/Makefile.build:139: util] Error 2
make[2]: *** [Makefile.perf:658:/tmp/build/perf/libperf-in.o] Error 2
make[1]: *** [Makefile.perf:215: sub-make] Error 2
make: *** [Makefile:110: install-bin] Error 2
make: Leaving directory '/home/acme/git/perf/tools/perf'Performance counter stats for 'make -k O=/tmp/build/perf -C
tools/perfinstall-bin':20,606,463,070 cycles:u 24,937,056,161 instructions:u # 1.21 insn per cycle 2.192507189 seconds time elapsed 5.571323000 seconds user 0.994057000 seconds sys[acme@quaco perf]$
Arnaldo Carvalho de Melo
maintainerRe: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
Em Fri, Nov 30, 2018 at 03:09:44PM -0500, Steven Rostedt escreveu:
Quoted 51 lines
Quoted 39 lines · On Fri, 30 Nov 2018 16:18:56 -0300 Arnaldo Carvalho de Melo <[email protected]>…
Em Fri, Nov 30, 2018 at 10:44:10AM -0500, Steven Rostedt escreveu:
Quoted 9 lines
From: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(),tep_free_format_field(),__tep_data2host2(),__tep_data2host4()and__tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.I applied the previous patches, stopped here as it this one fails with the error bellow.
Please resend from this patch onwards.
BTW, this is what I have right now:
[acme@quaco perf]$ git log --oneline - 6
9db9efe53c72(HEAD -> perf/core) tools lib traceevent: Renametep_free_format()totep_free_event()e58c351e8383tools lib traceevent, perf tools: Rename 'structtep_event_format' to 'structtep_event'4237fd0b60d8tools lib traceevent: Installtrace-seq.hAPI header filebb837f2581dctools lib traceevent: Added support for pkg-configa2c167ad70b6tools lib traceevent: Implement new APItep_get_ref()51d0337d0198(acme.korg/perf/core) tools lib traceevent: Add sanity check tois_timestamp_in_us()- Arnaldo
[acme@quaco perf]$ m
make: Entering directory '/home/acme/git/perf/tools/perf'BUILD: Doing 'make -j8' parallel build CC /tmp/build/perf/util/trace-event-read.o CC /tmp/build/perf/util/trace-event-scripting.o CC /tmp/build/perf/util/trace-event.o CC /tmp/build/perf/util/sort.o CC /tmp/build/perf/util/hist.o INSTALL trace_plugins CC /tmp/build/perf/util/cgroup.o CC /tmp/build/perf/util/stat.oQuoted 8 lines
CC /tmp/build/perf/util/stat-shadow.o CC /tmp/build/perf/util/stat-display.o CC /tmp/build/perf/util/record.o util/trace-event-read.c: In function ‘read4’: util/trace-event-read.c:105:9: error: implicit declaration of function ‘__tep_data2host4’; did you mean ‘tep_data_flags’? [-Werror=implicit-function-declaration] return __tep_data2host4(pevent, data); ^~~~~~~~~~~~~~~~ tep_data_flags
Quoted 1 line
This should have been changed with patch 6 in the series.
Yeah, my bad, I applied patch 6 and then this one and all is well now, series applied. Will hit acme/perf/core when the container tests, that will restart now, are finished.
At some point early next week should hit tip/perf/core.
- Arnaldo
Arnaldo Carvalho de Melo
maintainerRe: [PATCH 7/9] tools/lib/traceevent: traceevent API cleanup
Em Fri, Nov 30, 2018 at 05:16:52PM -0300, Arnaldo Carvalho de Melo escreveu:
Quoted 52 lines
Em Fri, Nov 30, 2018 at 03:09:44PM -0500, Steven Rostedt escreveu:
Quoted 51 lines
Quoted 47 lines · On Fri, 30 Nov 2018 16:18:56 -0300 Arnaldo Carvalho de Melo <[email protected]>…
Em Fri, Nov 30, 2018 at 10:44:10AM -0500, Steven Rostedt escreveu:
Quoted 9 lines
From: Tzvetomir Stoyanov <[email protected]>
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(),tep_free_format_field(),__tep_data2host2(),__tep_data2host4()and__tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.I applied the previous patches, stopped here as it this one fails with the error bellow.
Please resend from this patch onwards.
BTW, this is what I have right now:
[acme@quaco perf]$ git log --oneline - 6
9db9efe53c72(HEAD -> perf/core) tools lib traceevent: Renametep_free_format()totep_free_event()e58c351e8383tools lib traceevent, perf tools: Rename 'structtep_event_format' to 'structtep_event'4237fd0b60d8tools lib traceevent: Installtrace-seq.hAPI header filebb837f2581dctools lib traceevent: Added support for pkg-configa2c167ad70b6tools lib traceevent: Implement new APItep_get_ref()51d0337d0198(acme.korg/perf/core) tools lib traceevent: Add sanity check tois_timestamp_in_us()- Arnaldo
[acme@quaco perf]$ m
make: Entering directory '/home/acme/git/perf/tools/perf'BUILD: Doing 'make -j8' parallel build CC /tmp/build/perf/util/trace-event-read.o CC /tmp/build/perf/util/trace-event-scripting.o CC /tmp/build/perf/util/trace-event.o CC /tmp/build/perf/util/sort.o CC /tmp/build/perf/util/hist.o INSTALL trace_plugins CC /tmp/build/perf/util/cgroup.o CC /tmp/build/perf/util/stat.o CC /tmp/build/perf/util/stat-shadow.o CC /tmp/build/perf/util/stat-display.o CC /tmp/build/perf/util/record.o util/trace-event-read.c: In function ‘read4’: util/trace-event-read.c:105:9: error: implicit declaration of function ‘__tep_data2host4’; did you mean ‘tep_data_flags’? [-Werror=implicit-function-declaration] return __tep_data2host4(pevent, data); ^~~~~~~~~~~~~~~~ tep_data_flags
Quoted 5 lines
Quoted 1 line
This should have been changed with patch 6 in the series.
Yeah, my bad, I applied patch 6 and then this one and all is well now, series applied. Will hit acme/perf/core when the container tests, that will restart now, are finished.
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0 2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822 3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0 4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0 5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0 6 alpine:edge : Ok gcc (Alpine 6.4.0) 6.4.0 7 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) 8 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) 9 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) 10 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease) 11 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55) 12 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23) 13 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28) 14 clearlinux:latest : FAIL gcc (Clear Linux OS for Intel Architecture) 8.2.1 20180502 15 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2 16 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u1) 4.9.2 17 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516 18 debian:experimental : Ok gcc (Debian 8.2.0-10) 8.2.0 19 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.2.0-10) 8.2.0 20 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.2.0-7) 8.2.0 21 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.2.0-10) 8.2.0 22 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.2.0-7) 8.2.0 23 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7) 24 fedora:21 : Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6) 25 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) 26 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) 27 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1) 28 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710 29 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1) 30 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2) 31 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6) 32 fedora:28 : Ok gcc (GCC) 8.2.1 20181105 (Red Hat 8.2.1-5) 33 fedora:29 : Ok gcc (GCC) 8.2.1 20181011 (Red Hat 8.2.1-4) 34 fedora:rawhide : Ok gcc (GCC) 8.2.1 20181011 (Red Hat 8.2.1-4) 35 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0 36 mageia:5 : Ok gcc (GCC) 4.9.2 37 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0 38 opensuse:13.2 : Ok gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064] 39 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5 40 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5 41 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5 42 opensuse:tumbleweed : Ok gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812] 43 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1) 44 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36.0.1) 45 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 46 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4 47 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0 48 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609 49 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 50 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 51 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 52 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 53 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 54 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609 55 ubuntu:16.10 : Ok gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005 56 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0 57 ubuntu:18.04 : Ok gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 58 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0 59 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0 60 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 61 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 62 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 63 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 64 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 65 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 66 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 67 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0 68 ubuntu:18.10 : Ok gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0
Quoted 1 line
At some point early next week should hit tip/perf/core.
It is there now.
- Arnaldo
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: traceevent API cleanup
In reply to Steven Rostedttools lib traceevent: traceevent API cleanup
Commit-ID: 34434e3633de8fde7d9a8bed374ba17897ac30ef Gitweb: https://git.kernel.org/tip/34434e3633de8fde7d9a8bed374ba17897ac30ef Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:10 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Fri, 30 Nov 2018 17:15:34 -0300
tools lib traceevent: traceevent API cleanup
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(), tep_free_format_field(), __tep_data2host2(), __tep_data2host4() and __tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.
--- tools/lib/traceevent/event-parse-api.c | 6 +++--- tools/lib/traceevent/event-parse-local.h | 7 +++++++ tools/lib/traceevent/event-parse.c | 13 ++++++++----- tools/lib/traceevent/event-parse.h | 16 ---------------- 4 files changed, 18 insertions(+), 24 deletions(-)
tools/lib/traceevent/event-parse-api.c +3 -3
@@ -51,7 +51,7 @@ void tep_set_flag(struct tep_handle *tep, int flag) tep->flags |= flag; } -unsigned short __tep_data2host2 (struct tep_handle *pevent,unsigned short data) +unsigned short tep_data2host2 (struct tep_handle *pevent,unsigned short data) {unsigned short swap;
@@ -64,7 +64,7 @@ unsigned short __tep_data2host2(struct tep_handle *pevent, unsigned short data)return swap; } -unsigned int __tep_data2host4 (struct tep_handle *pevent,unsigned int data) +unsigned int tep_data2host4 (struct tep_handle *pevent,unsigned int data) {unsigned int swap;
@@ -80,7 +80,7 @@ unsigned int __tep_data2host4(struct tep_handle *pevent, unsigned int data) }unsigned long long -__tep_data2host8 (struct tep_handle *pevent,unsigned long long data) +tep_data2host8 (struct tep_handle *pevent,unsigned long long data) {unsigned long long swap;
tools/lib/traceevent/event-parse-local.h +7 -0
@@ -89,4 +89,11 @@ struct tep_handle { char *trace_clock; }; +void tep_free_event (struct tep_event *event); +void tep_free_format_field (struct tep_format_field *field); + +unsigned short tep_data2host2 (struct tep_handle *pevent,unsigned short data); +unsigned int tep_data2host4 (struct tep_handle *pevent,unsigned int data); +unsigned long long tep_data2host8 (struct tep_handle *pevent,unsigned long long data); +#endif /* _PARSE_EVENTS_INT_H */
tools/lib/traceevent/event-parse.c +8 -5
@@ -3328,15 +3328,18 @@ tep_find_any_field(struct tep_event *event, const char *name)unsigned long long tep_read_number (struct tep_handle *pevent,const void *ptr,int size) { +unsigned long long val; +switch (size) {case 1 :return *(unsigned char *)ptr;case 2 : -return tep_data2host2 (pevent, ptr); +return tep_data2host2 (pevent, *(unsigned short *)ptr);case 4 : -return tep_data2host4 (pevent, ptr); +return tep_data2host4 (pevent, *(unsigned int *)ptr);case 8 : -return tep_data2host8 (pevent, ptr); +memcpy (&val, (ptr),sizeof (unsigned long long )); +return tep_data2host8 (pevent, val);default :/* BUG! */ return 0 ;
@@ -4062,7 +4065,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, f =tep_find_any_field (event, arg->string.string); arg->string.offset = f->offset; } - str_offset =tep_data2host4 (pevent, data + arg->string.offset); + str_offset =tep_data2host4 (pevent, *(unsigned int *)(data + arg->string.offset)); str_offset &=0xffff ;print_str_to_seq (s, format, len_arg, ((char *)data) + str_offset);break ;
@@ -4080,7 +4083,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, f =tep_find_any_field (event, arg->bitmask.bitmask); arg->bitmask.offset = f->offset; } - bitmask_offset =tep_data2host4 (pevent, data + arg->bitmask.offset); + bitmask_offset =tep_data2host4 (pevent, *(unsigned int *)(data + arg->bitmask.offset)); bitmask_size = bitmask_offset >>16 ; bitmask_offset &=0xffff ; print_bitmask_to_seq(pevent, s, format, len_arg,
tools/lib/traceevent/event-parse.h +0 -16
@@ -409,20 +409,6 @@ void tep_print_plugins(struct trace_seq *s,typedef char *(tep_func_resolver_t )(void *priv,unsigned long long *addrp,char **modp);void tep_set_flag (struct tep_handle *tep,int flag); -unsigned short __tep_data2host2 (struct tep_handle *pevent,unsigned short data); -unsigned int __tep_data2host4 (struct tep_handle *pevent,unsigned int data); -unsigned long long -__tep_data2host8 (struct tep_handle *pevent,unsigned long long data); - -#define tep_data2host2 (pevent, ptr) __tep_data2host2(pevent, *(unsigned short *)(ptr)) -#define tep_data2host4 (pevent, ptr) __tep_data2host4(pevent, *(unsigned int *)(ptr)) -#define tep_data2host8 (pevent, ptr) \ -({ \ - unsigned long long __val; \ - \ - memcpy(&__val, (ptr), sizeof(unsigned long long)); \ - __tep_data2host8(pevent, __val); \ -})static inline int tep_host_bigendian (void ) {
@@ -475,8 +461,6 @@ enum tep_errno tep_parse_format(struct tep_handle *pevent,struct tep_event **eventp, const char *buf, unsigned long size, const char *sys); -void tep_free_event (struct tep_event *event); -void tep_free_format_field (struct tep_format_field *field); void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record,
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/core] tools lib traceevent: traceevent API cleanup
In reply to Steven Rostedttools lib traceevent: traceevent API cleanup
Commit-ID: 6cd99d21741dbffb40e28ab7d955b27d09c3352f Gitweb: https://git.kernel.org/tip/6cd99d21741dbffb40e28ab7d955b27d09c3352f Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:10 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 17 Dec 2018 14:56:10 -0300
tools lib traceevent: traceevent API cleanup
In order to make libtraceevent into a proper library, its API should be straightforward. This patch hides few API functions, intended for internal usage only:
tep_free_event(), tep_free_format_field(), __tep_data2host2(), __tep_data2host4() and __tep_data2host8().
The patch also alignes the libtraceevent summary man page with these API changes.
--- tools/lib/traceevent/event-parse-api.c | 6 +++--- tools/lib/traceevent/event-parse-local.h | 7 +++++++ tools/lib/traceevent/event-parse.c | 13 ++++++++----- tools/lib/traceevent/event-parse.h | 16 ---------------- 4 files changed, 18 insertions(+), 24 deletions(-)
tools/lib/traceevent/event-parse-api.c +3 -3
@@ -51,7 +51,7 @@ void tep_set_flag(struct tep_handle *tep, int flag) tep->flags |= flag; } -unsigned short __tep_data2host2 (struct tep_handle *pevent,unsigned short data) +unsigned short tep_data2host2 (struct tep_handle *pevent,unsigned short data) {unsigned short swap;
@@ -64,7 +64,7 @@ unsigned short __tep_data2host2(struct tep_handle *pevent, unsigned short data)return swap; } -unsigned int __tep_data2host4 (struct tep_handle *pevent,unsigned int data) +unsigned int tep_data2host4 (struct tep_handle *pevent,unsigned int data) {unsigned int swap;
@@ -80,7 +80,7 @@ unsigned int __tep_data2host4(struct tep_handle *pevent, unsigned int data) }unsigned long long -__tep_data2host8 (struct tep_handle *pevent,unsigned long long data) +tep_data2host8 (struct tep_handle *pevent,unsigned long long data) {unsigned long long swap;
tools/lib/traceevent/event-parse-local.h +7 -0
@@ -89,4 +89,11 @@ struct tep_handle { char *trace_clock; }; +void tep_free_event (struct tep_event *event); +void tep_free_format_field (struct tep_format_field *field); + +unsigned short tep_data2host2 (struct tep_handle *pevent,unsigned short data); +unsigned int tep_data2host4 (struct tep_handle *pevent,unsigned int data); +unsigned long long tep_data2host8 (struct tep_handle *pevent,unsigned long long data); +#endif /* _PARSE_EVENTS_INT_H */
tools/lib/traceevent/event-parse.c +8 -5
@@ -3328,15 +3328,18 @@ tep_find_any_field(struct tep_event *event, const char *name)unsigned long long tep_read_number (struct tep_handle *pevent,const void *ptr,int size) { +unsigned long long val; +switch (size) {case 1 :return *(unsigned char *)ptr;case 2 : -return tep_data2host2 (pevent, ptr); +return tep_data2host2 (pevent, *(unsigned short *)ptr);case 4 : -return tep_data2host4 (pevent, ptr); +return tep_data2host4 (pevent, *(unsigned int *)ptr);case 8 : -return tep_data2host8 (pevent, ptr); +memcpy (&val, (ptr),sizeof (unsigned long long )); +return tep_data2host8 (pevent, val);default :/* BUG! */ return 0 ;
@@ -4062,7 +4065,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, f =tep_find_any_field (event, arg->string.string); arg->string.offset = f->offset; } - str_offset =tep_data2host4 (pevent, data + arg->string.offset); + str_offset =tep_data2host4 (pevent, *(unsigned int *)(data + arg->string.offset)); str_offset &=0xffff ;print_str_to_seq (s, format, len_arg, ((char *)data) + str_offset);break ;
@@ -4080,7 +4083,7 @@ static void print_str_arg(struct trace_seq *s, void *data, int size, f =tep_find_any_field (event, arg->bitmask.bitmask); arg->bitmask.offset = f->offset; } - bitmask_offset =tep_data2host4 (pevent, data + arg->bitmask.offset); + bitmask_offset =tep_data2host4 (pevent, *(unsigned int *)(data + arg->bitmask.offset)); bitmask_size = bitmask_offset >>16 ; bitmask_offset &=0xffff ; print_bitmask_to_seq(pevent, s, format, len_arg,
tools/lib/traceevent/event-parse.h +0 -16
@@ -409,20 +409,6 @@ void tep_print_plugins(struct trace_seq *s,typedef char *(tep_func_resolver_t )(void *priv,unsigned long long *addrp,char **modp);void tep_set_flag (struct tep_handle *tep,int flag); -unsigned short __tep_data2host2 (struct tep_handle *pevent,unsigned short data); -unsigned int __tep_data2host4 (struct tep_handle *pevent,unsigned int data); -unsigned long long -__tep_data2host8 (struct tep_handle *pevent,unsigned long long data); - -#define tep_data2host2 (pevent, ptr) __tep_data2host2(pevent, *(unsigned short *)(ptr)) -#define tep_data2host4 (pevent, ptr) __tep_data2host4(pevent, *(unsigned int *)(ptr)) -#define tep_data2host8 (pevent, ptr) \ -({ \ - unsigned long long __val; \ - \ - memcpy(&__val, (ptr), sizeof(unsigned long long)); \ - __tep_data2host8(pevent, __val); \ -})static inline int tep_host_bigendian (void ) {
@@ -475,8 +461,6 @@ enum tep_errno tep_parse_format(struct tep_handle *pevent,struct tep_event **eventp, const char *buf, unsigned long size, const char *sys); -void tep_free_event (struct tep_event *event); -void tep_free_format_field (struct tep_format_field *field); void *tep_get_field_raw(struct trace_seq *s, struct tep_event *event, const char *name, struct tep_record *record,
PATCH 8/9 tools/lib/traceevent: Introduce new libtracevent API: tep_override_comm()
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
This patch adds a new API of tracevent library: tep_override_comm() It registers a pid / command mapping. If a mapping with the same pid already exists, the entry is updated with the new command.
--- tools/lib/traceevent/event-parse.c | 69 +++++++++++++++++++++++------- tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 55 insertions(+), 15 deletions(-)
tools/lib/traceevent/event-parse.c +54 -15
@@ -232,11 +232,13 @@ int tep_pid_is_registered(struct tep_handle *pevent, int pid)* we must add this pid. This is much slower than when cmdlines * are added before the array is initialized. */ -static int add_new_comm (struct tep_handle *pevent,const char *comm,int pid) +static int add_new_comm (struct tep_handle *pevent, +const char *comm,int pid,bool override) {struct cmdline *cmdlines = pevent->cmdlines; -const struct cmdline *cmdline; +struct cmdline *cmdline;struct cmdline key; +char *new_comm;if (!pid)return 0 ;
@@ -247,8 +249,19 @@ static int add_new_comm(struct tep_handle *pevent, const char *comm, int pid) cmdline =bsearch (&key, pevent->cmdlines, pevent->cmdline_count,sizeof (*pevent->cmdlines), cmdline_cmp);if (cmdline) { - errno =EEXIST ; -return -1 ; +if (!override) { + errno =EEXIST ; +return -1 ; + } + new_comm =strdup (comm); +if (!new_comm) { + errno =ENOMEM ; +return -1 ; + } +free (cmdline->comm); + cmdline->comm = new_comm; + +return 0 ; } cmdlines =realloc (cmdlines,sizeof (*cmdlines) * (pevent->cmdline_count +1 ));
@@ -275,21 +288,13 @@ static int add_new_comm(struct tep_handle *pevent, const char *comm, int pid)return 0 ; } -/** -* tep_register_comm - register a pid / comm mapping -* @pevent: handle for the pevent -* @comm: the command line to register -* @pid: the pid to map the command line to -* -* This adds a mapping to search for command line names with -* a given pid. The comm is duplicated. -*/ -int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid) +static int _tep_register_comm (struct tep_handle *pevent, +const char *comm,int pid,bool override) {struct cmdline_list *item;if (pevent->cmdlines) -return add_new_comm (pevent, comm, pid); +return add_new_comm (pevent, comm, pid, override); item =malloc (sizeof (*item));if (!item)
@@ -312,6 +317,40 @@ int tep_register_comm(struct tep_handle *pevent, const char *comm, int pid)return 0 ; } +/** +* tep_register_comm - register a pid / comm mapping +* @pevent: handle for the pevent +* @comm: the command line to register +* @pid: the pid to map the command line to +* +* This adds a mapping to search for command line names with +* a given pid. The comm is duplicated. If a command with the same pid +* already exist, -1 is returned and errno is set to EEXIST +*/ +int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid) +{ +return _tep_register_comm (pevent, comm, pid, false); +} + +/** +* tep_override_comm - register a pid / comm mapping +* @pevent: handle for the pevent +* @comm: the command line to register +* @pid: the pid to map the command line to +* +* This adds a mapping to search for command line names with +* a given pid. The comm is duplicated. If a command with the same pid +* already exist, the command string is udapted with the new one +*/ +int tep_override_comm (struct tep_handle *pevent,const char *comm,int pid) +{ +if (!pevent->cmdlines &&cmdline_init (pevent)) { + errno =ENOMEM ; +return -1 ; + } +return _tep_register_comm (pevent, comm, pid, true); +} +int tep_register_trace_clock (struct tep_handle *pevent,const char *trace_clock) { pevent->trace_clock =strdup (trace_clock);
tools/lib/traceevent/event-parse.h +1 -0
@@ -432,6 +432,7 @@ int tep_set_function_resolver(struct tep_handle *pevent, tep_func_resolver_t *func, void *priv);void tep_reset_function_resolver (struct tep_handle *pevent);int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid); +int tep_override_comm (struct tep_handle *pevent,const char *comm,int pid);int tep_register_trace_clock (struct tep_handle *pevent,const char *trace_clock);int tep_register_function (struct tep_handle *pevent,char *name,unsigned long long addr,char *mod);
Signature · 1 line
2.19.1
Arnaldo Carvalho de Melo
maintainerRe: [PATCH 8/9] tools/lib/traceevent: Introduce new libtracevent API: tep_override_comm()
Em Fri, Nov 30, 2018 at 10:44:11AM -0500, Steven Rostedt escreveu:
Quoted 5 lines
From: Tzvetomir Stoyanov <[email protected]>
This patch adds a new API of tracevent library:
tep_override_comm()It registers a pid / command mapping. If a mapping with the same pid already exists, the entry is updated with the new command.
This one had fell thru the cracks, noticed that while processing the following patchkit, now its in and I'm processing the last one.
- Arnaldo
Quoted 130 lines
Signed-off-by Tzvetomir Stoyanov <[email protected]>Signed-off-by Steven Rostedt (VMware) <[email protected]>--- tools/lib/traceevent/event-parse.c | 69 +++++++++++++++++++++++------- tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 55 insertions(+), 15 deletions(-)tools/lib/traceevent/event-parse.c +54
-15@@ -232,11 +232,13 @@ int tep_pid_is_registered(struct tep_handle *pevent, int pid)* we must add this pid. This is much slower than when cmdlines * are added before the array is initialized. */ -static int add_new_comm (struct tep_handle *pevent,const char *comm,int pid) +static int add_new_comm (struct tep_handle *pevent, +const char *comm,int pid,bool override) {struct cmdline *cmdlines = pevent->cmdlines; -const struct cmdline *cmdline; +struct cmdline *cmdline;struct cmdline key; +char *new_comm;if (!pid)return 0 ;@@ -247,8 +249,19 @@ static int add_new_comm(struct tep_handle *pevent, const char *comm, int pid) cmdline =bsearch (&key, pevent->cmdlines, pevent->cmdline_count,sizeof (*pevent->cmdlines), cmdline_cmp);if (cmdline) { - errno =EEXIST ; -return -1 ; +if (!override) { + errno =EEXIST ; +return -1 ; + } + new_comm =strdup (comm); +if (!new_comm) { + errno =ENOMEM ; +return -1 ; + } +free (cmdline->comm); + cmdline->comm = new_comm; + +return 0 ; } cmdlines =realloc (cmdlines,sizeof (*cmdlines) * (pevent->cmdline_count +1 ));@@ -275,21 +288,13 @@ static int add_new_comm(struct tep_handle *pevent, const char *comm, int pid)return 0 ; } -/** -* tep_register_comm - register a pid / comm mapping -* @pevent: handle for the pevent -* @comm: the command line to register -* @pid: the pid to map the command line to -* -* This adds a mapping to search for command line names with -* a given pid. The comm is duplicated. -*/ -int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid) +static int _tep_register_comm (struct tep_handle *pevent, +const char *comm,int pid,bool override) {struct cmdline_list *item;if (pevent->cmdlines) -return add_new_comm (pevent, comm, pid); +return add_new_comm (pevent, comm, pid, override); item =malloc (sizeof (*item));if (!item)@@ -312,6 +317,40 @@ int tep_register_comm(struct tep_handle *pevent, const char *comm, int pid)return 0 ; } +/** +* tep_register_comm - register a pid / comm mapping +* @pevent: handle for the pevent +* @comm: the command line to register +* @pid: the pid to map the command line to +* +* This adds a mapping to search for command line names with +* a given pid. The comm is duplicated. If a command with the same pid +* already exist, -1 is returned and errno is set to EEXIST +*/ +int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid) +{ +return _tep_register_comm (pevent, comm, pid, false); +} + +/** +* tep_override_comm - register a pid / comm mapping +* @pevent: handle for the pevent +* @comm: the command line to register +* @pid: the pid to map the command line to +* +* This adds a mapping to search for command line names with +* a given pid. The comm is duplicated. If a command with the same pid +* already exist, the command string is udapted with the new one +*/ +int tep_override_comm (struct tep_handle *pevent,const char *comm,int pid) +{ +if (!pevent->cmdlines &&cmdline_init (pevent)) { + errno =ENOMEM ; +return -1 ; + } +return _tep_register_comm (pevent, comm, pid, true); +} +int tep_register_trace_clock (struct tep_handle *pevent,const char *trace_clock) { pevent->trace_clock =strdup (trace_clock);tools/lib/traceevent/event-parse.h +1
-0@@ -432,6 +432,7 @@ int tep_set_function_resolver(struct tep_handle *pevent, tep_func_resolver_t *func, void *priv);void tep_reset_function_resolver (struct tep_handle *pevent);int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid); +int tep_override_comm (struct tep_handle *pevent,const char *comm,int pid);int tep_register_trace_clock (struct tep_handle *pevent,const char *trace_clock);int tep_register_function (struct tep_handle *pevent,char *name,unsigned long long addr,char *mod);Signature · 1 line
2.19.1
Signature · 1 line
- Arnaldo
tip-bot for Tzvetomir Stoyanov
merge bot[tip:perf/urgent] tools lib traceevent: Introduce new libtracevent API: tep_override_comm()
In reply to Steven Rostedttools lib traceevent: Introduce new libtracevent API: tep_override_comm()
Commit-ID: ca3958b1c0968a6f3105e211355f128ce871e796 Gitweb: https://git.kernel.org/tip/ca3958b1c0968a6f3105e211355f128ce871e796 Author: Tzvetomir Stoyanov <[email protected]> AuthorDate: Fri, 30 Nov 2018 10:44:11 -0500 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Tue, 8 Jan 2019 13:28:13 -0300
tools lib traceevent: Introduce new libtracevent API: tep_override_comm()
This patch adds a new API of tracevent library: tep_override_comm() It registers a pid / command mapping. If a mapping with the same pid already exists, the entry is updated with the new command.
--- tools/lib/traceevent/event-parse.c | 69 +++++++++++++++++++++++++++++--------- tools/lib/traceevent/event-parse.h | 1 + 2 files changed, 55 insertions(+), 15 deletions(-)
tools/lib/traceevent/event-parse.c +54 -15
@@ -232,11 +232,13 @@ int tep_pid_is_registered(struct tep_handle *pevent, int pid)* we must add this pid. This is much slower than when cmdlines * are added before the array is initialized. */ -static int add_new_comm (struct tep_handle *pevent,const char *comm,int pid) +static int add_new_comm (struct tep_handle *pevent, +const char *comm,int pid,bool override) {struct cmdline *cmdlines = pevent->cmdlines; -const struct cmdline *cmdline; +struct cmdline *cmdline;struct cmdline key; +char *new_comm;if (!pid)return 0 ;
@@ -247,8 +249,19 @@ static int add_new_comm(struct tep_handle *pevent, const char *comm, int pid) cmdline =bsearch (&key, pevent->cmdlines, pevent->cmdline_count,sizeof (*pevent->cmdlines), cmdline_cmp);if (cmdline) { - errno =EEXIST ; -return -1 ; +if (!override) { + errno =EEXIST ; +return -1 ; + } + new_comm =strdup (comm); +if (!new_comm) { + errno =ENOMEM ; +return -1 ; + } +free (cmdline->comm); + cmdline->comm = new_comm; + +return 0 ; } cmdlines =realloc (cmdlines,sizeof (*cmdlines) * (pevent->cmdline_count +1 ));
@@ -275,21 +288,13 @@ static int add_new_comm(struct tep_handle *pevent, const char *comm, int pid)return 0 ; } -/** -* tep_register_comm - register a pid / comm mapping -* @pevent: handle for the pevent -* @comm: the command line to register -* @pid: the pid to map the command line to -* -* This adds a mapping to search for command line names with -* a given pid. The comm is duplicated. -*/ -int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid) +static int _tep_register_comm (struct tep_handle *pevent, +const char *comm,int pid,bool override) {struct cmdline_list *item;if (pevent->cmdlines) -return add_new_comm (pevent, comm, pid); +return add_new_comm (pevent, comm, pid, override); item =malloc (sizeof (*item));if (!item)
@@ -312,6 +317,40 @@ int tep_register_comm(struct tep_handle *pevent, const char *comm, int pid)return 0 ; } +/** +* tep_register_comm - register a pid / comm mapping +* @pevent: handle for the pevent +* @comm: the command line to register +* @pid: the pid to map the command line to +* +* This adds a mapping to search for command line names with +* a given pid. The comm is duplicated. If a command with the same pid +* already exist, -1 is returned and errno is set to EEXIST +*/ +int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid) +{ +return _tep_register_comm (pevent, comm, pid, false); +} + +/** +* tep_override_comm - register a pid / comm mapping +* @pevent: handle for the pevent +* @comm: the command line to register +* @pid: the pid to map the command line to +* +* This adds a mapping to search for command line names with +* a given pid. The comm is duplicated. If a command with the same pid +* already exist, the command string is udapted with the new one +*/ +int tep_override_comm (struct tep_handle *pevent,const char *comm,int pid) +{ +if (!pevent->cmdlines &&cmdline_init (pevent)) { + errno =ENOMEM ; +return -1 ; + } +return _tep_register_comm (pevent, comm, pid, true); +} +int tep_register_trace_clock (struct tep_handle *pevent,const char *trace_clock) { pevent->trace_clock =strdup (trace_clock);
tools/lib/traceevent/event-parse.h +1 -0
@@ -432,6 +432,7 @@ int tep_set_function_resolver(struct tep_handle *pevent, tep_func_resolver_t *func, void *priv);void tep_reset_function_resolver (struct tep_handle *pevent);int tep_register_comm (struct tep_handle *pevent,const char *comm,int pid); +int tep_override_comm (struct tep_handle *pevent,const char *comm,int pid);int tep_register_trace_clock (struct tep_handle *pevent,const char *trace_clock);int tep_register_function (struct tep_handle *pevent,char *name,unsigned long long addr,char *mod);
PATCH 9/9 tools/lib/traceevent: Add sanity check to is_timestamp_in_us()
In reply to Steven RostedtFrom: Tzvetomir Stoyanov <[email protected]>
This patch adds a sanity check to is_timestamp_in_us() input parameter trace_clock. It avoids a potential segfault in case trace_clock is NULL.
--- tools/lib/traceevent/event-parse.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/lib/traceevent/event-parse.c +1 -1
@@ -5451,7 +5451,7 @@ void tep_event_info(struct trace_seq *s, struct tep_event *event,static bool is_timestamp_in_us (char *trace_clock,bool use_trace_clock) { -if (!use_trace_clock) +if (!trace_clock || !use_trace_clock)return true; if (!strcmp(trace_clock, "local") || !strcmp(trace_clock, "global")
Signature · 1 line
2.19.1