@@ -4619,6 +4619,7 @@ F: mm/damon.c
F: mm/damon-test.h
F: tools/damon/*
F: Documentation/admin-guide/mm/data_access_monitor.rst
+F: include/trace/events/damon.h
DAVICOM FAST ETHERNET (DMFE) NETWORK DRIVER
L: netdev@vger.kernel.org
new file mode 100644
@@ -0,0 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM damon
+
+#if !defined(_TRACE_DAMON_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_DAMON_H
+
+#include <linux/types.h>
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(damon_write_rbuf,
+
+ TP_PROTO(void *buf, const ssize_t sz),
+
+ TP_ARGS(buf, sz),
+
+ TP_STRUCT__entry(
+ __dynamic_array(char, buf, sz)
+ ),
+
+ TP_fast_assign(
+ memcpy(__get_dynamic_array(buf), buf, sz);
+ ),
+
+ TP_printk("dat=%s", __print_hex(__get_dynamic_array(buf),
+ __get_dynamic_array_len(buf)))
+);
+
+#endif /* _TRACE_DAMON_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
@@ -9,6 +9,8 @@
#define pr_fmt(fmt) "damon: " fmt
+#define CREATE_TRACE_POINTS
+
#include <linux/debugfs.h>
#include <linux/delay.h>
#include <linux/kthread.h>
@@ -19,6 +21,7 @@
#include <linux/sched/mm.h>
#include <linux/sched/task.h>
#include <linux/slab.h>
+#include <trace/events/damon.h>
#define damon_get_task_struct(t) \
(get_pid_task(find_vpid(t->pid), PIDTYPE_PID))
@@ -587,6 +590,7 @@ static void damon_write_rbuf(void *data, ssize_t size)
damon_flush_rbuffer();
memcpy(&damon_rbuf[damon_rbuf_offset], data, size);
+ trace_damon_write_rbuf(data, size);
damon_rbuf_offset += size;
}