[PATCH] libtracefs: Allow filters to use "COMM"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx>

COMM is a legitimate filter for events, histograms and synthetic events.
Allow it to be used in tracefs_sql().

Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
---
 src/tracefs-filter.c  | 14 +++++++++++++-
 src/tracefs-sqlhist.c |  5 +++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/tracefs-filter.c b/src/tracefs-filter.c
index b16dfadb3aa9..a3dd77b7c82c 100644
--- a/src/tracefs-filter.c
+++ b/src/tracefs-filter.c
@@ -35,6 +35,12 @@ static const struct tep_format_field common_timestamp_usecs = {
 	.size			= 8,
 };
 
+static const struct tep_format_field common_comm = {
+	.type			= "char *",
+	.name			= "common_comm",
+	.size			= 16,
+};
+
 /*
  * This also must be able to accept fields that are OK via the histograms,
  * such as common_timestamp.
@@ -42,13 +48,19 @@ static const struct tep_format_field common_timestamp_usecs = {
 static const struct tep_format_field *get_event_field(struct tep_event *event,
 					 const char *field_name)
 {
+	const struct tep_format_field *field;
+
 	if (!strcmp(field_name, TRACEFS_TIMESTAMP))
 		return &common_timestamp;
 
 	if (!strcmp(field_name, TRACEFS_TIMESTAMP_USECS))
 		return &common_timestamp_usecs;
 
-	return tep_find_any_field(event, field_name);
+	field = tep_find_any_field(event, field_name);
+	if (!field && (!strcmp(field_name, "COMM") || !strcmp(field_name, "comm")))
+		return &common_comm;
+
+	return field;
 }
 
 __hidden bool
diff --git a/src/tracefs-sqlhist.c b/src/tracefs-sqlhist.c
index fd0a4b390855..00207f9cd1e6 100644
--- a/src/tracefs-sqlhist.c
+++ b/src/tracefs-sqlhist.c
@@ -572,6 +572,11 @@ static int test_field_exists(struct tep_handle *tep,
 		tfield = tep_find_any_field(field->event, field_name);
 	free(field_name);
 
+	if (!tfield && (!strcmp(field->field, "COMM") || !strcmp(field->field, "comm"))) {
+		breakpoint();
+		tfield = (void *)1L;
+	}
+
 	if (tfield)
 		return 0;
 
-- 
2.35.1




[Index of Archives]     [Linux USB Development]     [Linux USB Development]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux