From: tip-bot for Tzvetomir Stoyanov <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, akpm@linux-foundation.org,
namhyung@kernel.org, hpa@zytor.com, rostedt@goodmis.org,
tstoyanov@vmware.com, acme@redhat.com, mingo@kernel.org,
linux-kernel@vger.kernel.org, jolsa@redhat.com
Subject: [tip:perf/core] tools lib traceevent: Remove tep filter trivial APIs
Date: Fri, 5 Apr 2019 04:47:03 -0700 [thread overview]
Message-ID: <tip-a634b278ec2504fdd2acd694f5158ae79016fb70@git.kernel.org> (raw)
In-Reply-To: <20190401164343.968458918@goodmis.org>
Commit-ID: a634b278ec2504fdd2acd694f5158ae79016fb70
Gitweb: https://git.kernel.org/tip/a634b278ec2504fdd2acd694f5158ae79016fb70
Author: Tzvetomir Stoyanov <tstoyanov@vmware.com>
AuthorDate: Mon, 1 Apr 2019 12:43:14 -0400
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 1 Apr 2019 15:18:09 -0300
tools lib traceevent: Remove tep filter trivial APIs
This patch removes trivial filter tep APIs:
enum tep_filter_trivial_type
tep_filter_event_has_trivial()
tep_update_trivial()
tep_filter_clear_trivial()
Trivial filters is an optimization, used only in the first version of
KernelShark. The API is deprecated, the next KernelShark release does
not use it.
Signed-off-by: Tzvetomir Stoyanov <tstoyanov@vmware.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/20190326154328.28718-4-tstoyanov@vmware.com
Link: http://lkml.kernel.org/r/20190401164343.968458918@goodmis.org
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/lib/traceevent/event-parse.h | 16 ----
tools/lib/traceevent/parse-filter.c | 169 ------------------------------------
2 files changed, 185 deletions(-)
diff --git a/tools/lib/traceevent/event-parse.h b/tools/lib/traceevent/event-parse.h
index be082f9692f1..3833d1384599 100644
--- a/tools/lib/traceevent/event-parse.h
+++ b/tools/lib/traceevent/event-parse.h
@@ -732,12 +732,6 @@ struct tep_event_filter *tep_filter_alloc(struct tep_handle *pevent);
#define FILTER_MISS TEP_ERRNO__FILTER_MISS
#define FILTER_MATCH TEP_ERRNO__FILTER_MATCH
-enum tep_filter_trivial_type {
- TEP_FILTER_TRIVIAL_FALSE,
- TEP_FILTER_TRIVIAL_TRUE,
- TEP_FILTER_TRIVIAL_BOTH,
-};
-
enum tep_errno tep_filter_add_filter_str(struct tep_event_filter *filter,
const char *filter_str);
@@ -752,9 +746,6 @@ int tep_event_filtered(struct tep_event_filter *filter,
void tep_filter_reset(struct tep_event_filter *filter);
-int tep_filter_clear_trivial(struct tep_event_filter *filter,
- enum tep_filter_trivial_type type);
-
void tep_filter_free(struct tep_event_filter *filter);
char *tep_filter_make_string(struct tep_event_filter *filter, int event_id);
@@ -762,15 +753,8 @@ char *tep_filter_make_string(struct tep_event_filter *filter, int event_id);
int tep_filter_remove_event(struct tep_event_filter *filter,
int event_id);
-int tep_filter_event_has_trivial(struct tep_event_filter *filter,
- int event_id,
- enum tep_filter_trivial_type type);
-
int tep_filter_copy(struct tep_event_filter *dest, struct tep_event_filter *source);
-int tep_update_trivial(struct tep_event_filter *dest, struct tep_event_filter *source,
- enum tep_filter_trivial_type type);
-
int tep_filter_compare(struct tep_event_filter *filter1, struct tep_event_filter *filter2);
#endif /* _PARSE_EVENTS_H */
diff --git a/tools/lib/traceevent/parse-filter.c b/tools/lib/traceevent/parse-filter.c
index cb5ce66dab6e..4ffd8b25a852 100644
--- a/tools/lib/traceevent/parse-filter.c
+++ b/tools/lib/traceevent/parse-filter.c
@@ -1522,167 +1522,6 @@ int tep_filter_copy(struct tep_event_filter *dest, struct tep_event_filter *sour
return ret;
}
-
-/**
- * tep_update_trivial - update the trivial filters with the given filter
- * @dest - the filter to update
- * @source - the filter as the source of the update
- * @type - the type of trivial filter to update.
- *
- * Scan dest for trivial events matching @type to replace with the source.
- *
- * Returns 0 on success and -1 if there was a problem updating, but
- * events may have still been updated on error.
- */
-int tep_update_trivial(struct tep_event_filter *dest, struct tep_event_filter *source,
- enum tep_filter_trivial_type type)
-{
- struct tep_handle *src_pevent;
- struct tep_handle *dest_pevent;
- struct tep_event *event;
- struct tep_filter_type *filter_type;
- struct tep_filter_arg *arg;
- char *str;
- int i;
-
- src_pevent = source->pevent;
- dest_pevent = dest->pevent;
-
- /* Do nothing if either of the filters has nothing to filter */
- if (!dest->filters || !source->filters)
- return 0;
-
- for (i = 0; i < dest->filters; i++) {
- filter_type = &dest->event_filters[i];
- arg = filter_type->filter;
- if (arg->type != TEP_FILTER_ARG_BOOLEAN)
- continue;
- if ((arg->boolean.value && type == TEP_FILTER_TRIVIAL_FALSE) ||
- (!arg->boolean.value && type == TEP_FILTER_TRIVIAL_TRUE))
- continue;
-
- event = filter_type->event;
-
- if (src_pevent != dest_pevent) {
- /* do a look up */
- event = tep_find_event_by_name(src_pevent,
- event->system,
- event->name);
- if (!event)
- return -1;
- }
-
- str = tep_filter_make_string(source, event->id);
- if (!str)
- continue;
-
- /* Don't bother if the filter is trivial too */
- if (strcmp(str, "TRUE") != 0 && strcmp(str, "FALSE") != 0)
- filter_event(dest, event, str, NULL);
- free(str);
- }
- return 0;
-}
-
-/**
- * tep_filter_clear_trivial - clear TRUE and FALSE filters
- * @filter: the filter to remove trivial filters from
- * @type: remove only true, false, or both
- *
- * Removes filters that only contain a TRUE or FALES boolean arg.
- *
- * Returns 0 on success and -1 if there was a problem.
- */
-int tep_filter_clear_trivial(struct tep_event_filter *filter,
- enum tep_filter_trivial_type type)
-{
- struct tep_filter_type *filter_type;
- int count = 0;
- int *ids = NULL;
- int i;
-
- if (!filter->filters)
- return 0;
-
- /*
- * Two steps, first get all ids with trivial filters.
- * then remove those ids.
- */
- for (i = 0; i < filter->filters; i++) {
- int *new_ids;
-
- filter_type = &filter->event_filters[i];
- if (filter_type->filter->type != TEP_FILTER_ARG_BOOLEAN)
- continue;
- switch (type) {
- case TEP_FILTER_TRIVIAL_FALSE:
- if (filter_type->filter->boolean.value)
- continue;
- break;
- case TEP_FILTER_TRIVIAL_TRUE:
- if (!filter_type->filter->boolean.value)
- continue;
- default:
- break;
- }
-
- new_ids = realloc(ids, sizeof(*ids) * (count + 1));
- if (!new_ids) {
- free(ids);
- return -1;
- }
-
- ids = new_ids;
- ids[count++] = filter_type->event_id;
- }
-
- if (!count)
- return 0;
-
- for (i = 0; i < count; i++)
- tep_filter_remove_event(filter, ids[i]);
-
- free(ids);
- return 0;
-}
-
-/**
- * tep_filter_event_has_trivial - return true event contains trivial filter
- * @filter: the filter with the information
- * @event_id: the id of the event to test
- * @type: trivial type to test for (TRUE, FALSE, EITHER)
- *
- * Returns 1 if the event contains a matching trivial type
- * otherwise 0.
- */
-int tep_filter_event_has_trivial(struct tep_event_filter *filter,
- int event_id,
- enum tep_filter_trivial_type type)
-{
- struct tep_filter_type *filter_type;
-
- if (!filter->filters)
- return 0;
-
- filter_type = find_filter_type(filter, event_id);
-
- if (!filter_type)
- return 0;
-
- if (filter_type->filter->type != TEP_FILTER_ARG_BOOLEAN)
- return 0;
-
- switch (type) {
- case TEP_FILTER_TRIVIAL_FALSE:
- return !filter_type->filter->boolean.value;
-
- case TEP_FILTER_TRIVIAL_TRUE:
- return filter_type->filter->boolean.value;
- default:
- return 1;
- }
-}
-
static int test_filter(struct tep_event *event, struct tep_filter_arg *arg,
struct tep_record *record, enum tep_errno *err);
@@ -2409,14 +2248,6 @@ int tep_filter_compare(struct tep_event_filter *filter1, struct tep_event_filter
break;
if (filter_type1->filter->type != filter_type2->filter->type)
break;
- switch (filter_type1->filter->type) {
- case TEP_FILTER_TRIVIAL_FALSE:
- case TEP_FILTER_TRIVIAL_TRUE:
- /* trivial types just need the type compared */
- continue;
- default:
- break;
- }
/* The best way to compare complex filters is with strings */
str1 = arg_to_str(filter1, filter_type1->filter);
str2 = arg_to_str(filter2, filter_type2->filter);
next prev parent reply other threads:[~2019-04-05 11:47 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-01 16:43 [PATCH 00/15] tools/lib/traceevent: Continuing on the path to a stand alone library Steven Rostedt
2019-04-01 16:43 ` [PATCH 01/15] tools lib traceevent: Handle trace_printk() "%px" Steven Rostedt
2019-04-05 11:41 ` [tip:perf/core] " tip-bot for Steven Rostedt (VMware)
2019-04-01 16:43 ` [PATCH 02/15] tools/lib/traceevent: Add mono clocks to be parsed in seconds Steven Rostedt
2019-04-05 11:42 ` [tip:perf/core] tools lib traceevent: " tip-bot for Steven Rostedt (VMware)
2019-04-01 16:43 ` [PATCH 03/15] tools lib traceevent: Implement a new API, tep_list_events_copy() Steven Rostedt
2019-04-05 11:42 ` [tip:perf/core] " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 04/15] tools/lib/traceevent: Add more debugging to see various internal ring buffer entries Steven Rostedt
2019-04-05 11:43 ` [tip:perf/core] tools lib traceevent: " tip-bot for Steven Rostedt (Red Hat)
2019-04-01 16:43 ` [PATCH 05/15] tools/lib/traceevent: Change description of few APIs Steven Rostedt
2019-04-05 11:44 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 06/15] tools/lib/traceevent: Coding style fixes Steven Rostedt
2019-04-05 11:44 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 07/15] tools/lib/traceevent: Implement new traceevent APIs for accessing struct tep_handler fields Steven Rostedt
2019-04-05 11:45 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 08/15] tools/lib/traceevent: Removed unneeded !! and return parenthesis Steven Rostedt
2019-04-05 11:46 ` [tip:perf/core] tools lib traceevent: " tip-bot for Steven Rostedt (VMware)
2019-04-01 16:43 ` [PATCH 09/15] tools/lib/traceevent: Remove tep filter trivial APIs Steven Rostedt
2019-04-05 11:47 ` tip-bot for Tzvetomir Stoyanov [this message]
2019-04-01 16:43 ` [PATCH 10/15] tools/lib/traceevent: Remove call to exit() from tep_filter_add_filter_str() Steven Rostedt
2019-04-05 11:47 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 11/15] tools/perf,tools/lib/traceevent: Make traceevent APIs more consistent Steven Rostedt
2019-04-05 11:48 ` [tip:perf/core] tools tools, tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 12/15] tools/lib/traceevent: Rename input arguments of libtraceevent APIs from pevent to tep Steven Rostedt
2019-04-05 11:49 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 13/15] tools/perf,tools/lib/traceevent: Rename "pevent" member of struct tep_event to "tep" Steven Rostedt
2019-04-05 11:49 ` [tip:perf/core] perf tools, tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 14/15] tools/perf,tools/lib/traceevent: Rename "pevent" member of struct tep_event_filter " Steven Rostedt
2019-04-05 11:50 ` [tip:perf/core] perf tools, tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 16:43 ` [PATCH 15/15] tools/lib/traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep Steven Rostedt
2019-04-05 11:51 ` [tip:perf/core] tools lib traceevent: " tip-bot for Tzvetomir Stoyanov
2019-04-01 18:17 ` [PATCH 00/15] tools/lib/traceevent: Continuing on the path to a stand alone library Arnaldo Carvalho de Melo
-- strict thread matches above, loose matches on Subject: below --
2019-03-27 14:19 [PATCH v2 0/5] Cleanup traceevent API and make it more consistent Tzvetomir Stoyanov
2019-03-27 14:19 ` [PATCH v2 1/5] tools/perf,tools/lib/traceevent: Make traceevent APIs " Tzvetomir Stoyanov
2019-03-27 14:41 ` Steven Rostedt
2019-03-27 14:19 ` [PATCH v2 2/5] tools/lib/traceevent: Rename input arguments of libtraceevent APIs from pevent to tep Tzvetomir Stoyanov
2019-03-27 15:06 ` Steven Rostedt
2019-03-27 14:19 ` [PATCH v2 3/5] tools/perf,tools/lib/traceevent: Rename "pevent" member of struct tep_event to "tep" Tzvetomir Stoyanov
2019-03-27 14:19 ` [PATCH v2 4/5] tools/perf,tools/lib/traceevent: Rename "pevent" member of struct tep_event_filter " Tzvetomir Stoyanov
2019-03-27 14:19 ` [PATCH v2 5/5] tools/lib/traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep Tzvetomir Stoyanov
2019-03-26 15:43 [PATCH 0/8] Cleanup traceevent API and make it more consistent Tzvetomir Stoyanov
2019-03-26 15:43 ` [PATCH 1/8] tools/perf,tools/lib/traceevent: Make traceevent APIs " Tzvetomir Stoyanov
2019-03-26 19:43 ` Steven Rostedt
2019-03-26 15:43 ` [PATCH 2/8] tools/lib/traceevent: Add counter to track parsing failures Tzvetomir Stoyanov
2019-03-26 19:48 ` Steven Rostedt
2019-03-26 15:43 ` [PATCH 3/8] tools/lib/traceevent: Remove tep filter trivial APIs Tzvetomir Stoyanov
2019-03-26 19:50 ` Steven Rostedt
2019-03-26 15:43 ` [PATCH 4/8] tools/lib/traceevent: rename input arguments of libtraceevent APIs from pevent to tep Tzvetomir Stoyanov
2019-03-26 19:57 ` Steven Rostedt
2019-03-26 19:58 ` Steven Rostedt
2019-03-26 15:43 ` [PATCH 5/8] tools/perf,tools/lib/traceevent: rename "pevent" member of struct tep_event to "tep" Tzvetomir Stoyanov
2019-03-26 15:43 ` [PATCH 6/8] tools/perf,tools/lib/traceevent: rename "pevent" member of struct tep_event_filter " Tzvetomir Stoyanov
2019-03-26 15:43 ` [PATCH 7/8] tools/lib/traceevent: rename input arguments and local variables of libtraceevent from pevent to tep Tzvetomir Stoyanov
2019-03-26 15:43 ` [PATCH 8/8] tools/lib/traceevent: remove call to exit() from tep_filter_add_filter_str() Tzvetomir Stoyanov
2019-03-26 20:02 ` Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-a634b278ec2504fdd2acd694f5158ae79016fb70@git.kernel.org \
--to=tipbot@zytor.com \
--cc=acme@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tstoyanov@vmware.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome