[PATCH v8 04/12] Optimize default filtering

Nikolay Marchuk marchuk.nikolay.a at gmail.com
Tue Aug 22 06:01:45 UTC 2017


* filter_action.c (default_flags): Add default flags variable.
(add_action): Update default flags.
(filter_syscall): Add default_flags to qual_flg.
(filtering_parse_finish): Init trace action for pathtracing.
* strace.c (init): Remove default filters.
---
 filter_action.c | 6 ++++++
 strace.c        | 3 ---
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/filter_action.c b/filter_action.c
index 90e2d6eb..eae501ba 100644
--- a/filter_action.c
+++ b/filter_action.c
@@ -90,6 +90,7 @@ struct filter_action {
 	void *_priv_data;
 };

+static int default_flags = DEFAULT_QUAL_FLAGS;
 static struct filter_action *filter_actions;
 static unsigned int nfilter_actions;

@@ -169,6 +170,10 @@ add_action(const struct filter_action_type *type)
 {
 	struct filter_action *action;

+	/* Update default_flags */
+	if (default_flags & type->qual_flg)
+		default_flags &= ~type->qual_flg;
+
 	filter_actions = xreallocarray(filter_actions, ++nfilter_actions,
 				       sizeof(struct filter_action));
 	action = &filter_actions[nfilter_actions - 1];
@@ -228,6 +233,7 @@ filter_syscall(struct tcb *tcp)
 {
 	unsigned int i;

+	tcp->qual_flg |= default_flags;
 	for (i = 0; i < nfilter_actions; ++i)
 		run_filter_action(tcp, &filter_actions[i]);
 }
diff --git a/strace.c b/strace.c
index 88f7168e..6162d3b3 100644
--- a/strace.c
+++ b/strace.c
@@ -1577,9 +1577,6 @@ init(int argc, char *argv[])
 	shared_log = stderr;
 	set_sortby(DEFAULT_SORTBY);
 	set_personality(DEFAULT_PERSONALITY);
-	parse_qualify_filter("trace=all");
-	parse_qualify_filter("abbrev=all");
-	parse_qualify_filter("verbose=all");
 #if DEFAULT_QUAL_FLAGS != (QUAL_TRACE | QUAL_ABBREV | QUAL_VERBOSE)
 # error Bug in DEFAULT_QUAL_FLAGS
 #endif
--
2.11.0




More information about the Strace-devel mailing list