linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: sj38.park@gmail.com
To: akpm@linux-foundation.org
Cc: SeongJae Park <sjpark@amazon.de>,
	acme@kernel.org, alexander.shishkin@linux.intel.com,
	amit@kernel.org, brendan.d.gregg@gmail.com,
	brendanhiggins@google.com, cai@lca.pw, colin.king@canonical.com,
	corbet@lwn.net, dwmw@amazon.com, jolsa@redhat.com,
	kirill@shutemov.name, mark.rutland@arm.com, mgorman@suse.de,
	minchan@kernel.org, mingo@redhat.com, namhyung@kernel.org,
	peterz@infradead.org, rdunlap@infradead.org, rostedt@goodmis.org,
	sj38.park@gmail.com, vdavydov.dev@gmail.com, linux-mm@kvack.org,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH v3 07/11] mm/damon: Add a tracepoint for result writing
Date: Tue,  4 Feb 2020 06:23:08 +0000	[thread overview]
Message-ID: <20200204062312.19913-8-sj38.park@gmail.com> (raw)
In-Reply-To: <20200204062312.19913-1-sj38.park@gmail.com>

From: SeongJae Park <sjpark@amazon.de>

This commit adds a tracepoint for DAMON's result buffer writing.  It is
called for each writing of the DAMON results and print the result data.
Therefore, it would be used to easily integrated with other tracepoint
supporting tracers such as perf.

Signed-off-by: SeongJae Park <sjpark@amazon.de>
---
 include/trace/events/damon.h | 32 ++++++++++++++++++++++++++++++++
 mm/damon.c                   |  4 ++++
 2 files changed, 36 insertions(+)
 create mode 100644 include/trace/events/damon.h

diff --git a/include/trace/events/damon.h b/include/trace/events/damon.h
new file mode 100644
index 000000000000..fb33993620ce
--- /dev/null
+++ b/include/trace/events/damon.h
@@ -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>
diff --git a/mm/damon.c b/mm/damon.c
index f1d7200f3936..c2a098843936 100644
--- a/mm/damon.c
+++ b/mm/damon.c
@@ -9,6 +9,8 @@
 
 #define pr_fmt(fmt) "damon: " fmt
 
+#define CREATE_TRACE_POINTS
+
 #include <linux/damon.h>
 #include <linux/debugfs.h>
 #include <linux/delay.h>
@@ -20,6 +22,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))
@@ -553,6 +556,7 @@ static void damon_flush_rbuffer(struct damon_ctx *ctx)
  */
 static void damon_write_rbuf(struct damon_ctx *ctx, void *data, ssize_t size)
 {
+	trace_damon_write_rbuf(data, size);
 	if (!ctx->rbuf_len || !ctx->rbuf)
 		return;
 	if (ctx->rbuf_offset + size > ctx->rbuf_len)
-- 
2.17.1



  parent reply	other threads:[~2020-02-04  6:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-04  6:23 [PATCH v3 00/11] Introduce Data Access MONitor (DAMON) sj38.park
2020-02-04  6:23 ` [PATCH v3 01/11] " sj38.park
2020-02-04  6:23 ` [PATCH v3 02/11] mm/damon: Implement region based sampling sj38.park
2020-02-04  6:23 ` [PATCH v3 03/11] mm/damon: Adaptively adjust regions sj38.park
2020-02-04  6:23 ` [PATCH v3 04/11] mm/damon: Apply dynamic memory mapping changes sj38.park
2020-02-04  6:23 ` [PATCH v3 05/11] mm/damon: Implement kernel space API sj38.park
2020-02-04  6:23 ` [PATCH v3 06/11] mm/damon: Add debugfs interface sj38.park
2020-02-04  6:23 ` sj38.park [this message]
2020-02-04  6:23 ` [PATCH v3 08/11] mm/damon: Add minimal user-space tools sj38.park
2020-02-04  6:23 ` [PATCH v3 09/11] Documentation/admin-guide/mm: Add a document for DAMON sj38.park
2020-02-04  6:23 ` [PATCH v3 10/11] mm/damon: Add kunit tests sj38.park
2020-02-05 10:38   ` kbuild test robot
2020-02-05 16:47     ` SeongJae Park
2020-02-04  6:23 ` [PATCH v3 11/11] MAINTAINERS: Update for DAMON sj38.park

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=20200204062312.19913-8-sj38.park@gmail.com \
    --to=sj38.park@gmail.com \
    --cc=acme@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=amit@kernel.org \
    --cc=brendan.d.gregg@gmail.com \
    --cc=brendanhiggins@google.com \
    --cc=cai@lca.pw \
    --cc=colin.king@canonical.com \
    --cc=corbet@lwn.net \
    --cc=dwmw@amazon.com \
    --cc=jolsa@redhat.com \
    --cc=kirill@shutemov.name \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mark.rutland@arm.com \
    --cc=mgorman@suse.de \
    --cc=minchan@kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=sjpark@amazon.de \
    --cc=vdavydov.dev@gmail.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;
as well as URLs for NNTP newsgroup(s).