@@ -197,3 +197,24 @@ int cxl_parse_events(struct tracefs_instance *inst, struct event_ctx *ectx)
tep_free(tep);
return rc;
}
+
+int cxl_event_tracing_enable(struct tracefs_instance *inst, const char *system)
+{
+ int rc;
+ char *path;
+
+ rc = asprintf(&path, "events/%s/enable", system);
+ if (rc == -1)
+ return -errno;
+
+ rc = tracefs_instance_file_write(inst, path, "1");
+ free(path);
+ if (rc == -1)
+ return -errno;
+
+ if (tracefs_trace_is_on(inst))
+ return 0;
+
+ tracefs_trace_on(inst);
+ return 0;
+}
@@ -17,5 +17,6 @@ struct event_ctx {
};
int cxl_parse_events(struct tracefs_instance *inst, struct event_ctx *ectx);
+int cxl_event_tracing_enable(struct tracefs_instance *inst, const char *system);
#endif
Add a common function for cxl command to enable event tracing for the instance created. The interested "systems" will be enabled for tracing as well. Signed-off-by: Dave Jiang <dave.jiang@intel.com> --- cxl/event_trace.c | 21 +++++++++++++++++++++ cxl/event_trace.h | 1 + 2 files changed, 22 insertions(+)