linux-trace-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/4] relayfs: misc changes
@ 2025-05-18  2:57 Jason Xing
  2025-05-18  2:57 ` [PATCH v3 1/4] relayfs: support a counter tracking if per-cpu buffers is full Jason Xing
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-18  2:57 UTC (permalink / raw)
  To: axboe, rostedt, mhiramat, mathieu.desnoyers, akpm
  Cc: linux-kernel, linux-block, linux-trace-kernel, Jason Xing

From: Jason Xing <kernelxing@tencent.com>

The series mostly focuses on the error counters which helps every user
debug their own kernel module.

---
Note: this series is made on top of this cleanup[1] and unmerged commit[2]
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/log/?h=mm-nonmm-unstable
[2]: https://lore.kernel.org/all/20250507134225.63248-1-kerneljasonxing@gmail.com/

Jason Xing (4):
  relayfs: support a counter tracking if per-cpu buffers is full
  relayfs: introduce getting relayfs statistics function
  blktrace: use rbuf->stats.full as a drop indicator in relayfs
  relayfs: support a counter tracking if data is too big to write

 include/linux/relay.h   | 19 ++++++++++++++-
 kernel/relay.c          | 52 +++++++++++++++++++++++++++++++++++------
 kernel/trace/blktrace.c | 22 ++---------------
 3 files changed, 65 insertions(+), 28 deletions(-)

-- 
2.43.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v3 1/4] relayfs: support a counter tracking if per-cpu buffers is full
  2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
@ 2025-05-18  2:57 ` Jason Xing
  2025-05-18  2:57 ` [PATCH v3 2/4] relayfs: introduce getting relayfs statistics function Jason Xing
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-18  2:57 UTC (permalink / raw)
  To: axboe, rostedt, mhiramat, mathieu.desnoyers, akpm
  Cc: linux-kernel, linux-block, linux-trace-kernel, Jason Xing,
	Yushan Zhou

From: Jason Xing <kernelxing@tencent.com>

When using relay mechanism, we often encounter the case where new data
are lost or old unconsumed data are overwritten because of slow reader.

Add 'full' field in per-cpu buffer structure to detect if the above case
is happening.  Relay has two modes: 1) non-overwrite mode, 2) overwrite
mode. So buffer being full here respectively means: 1) relayfs doesn't
intend to accept new data and then simply drop them, or 2) relayfs is
going to start over again and overwrite old unread data with new data.

Note: this counter doesn't need any explicit lock to protect from being
modified by different threads for the better performance consideration.
Writers calling __relay_write/relay_write should consider how to use
the lock and ensure it performs under the lock protection, thus it's
not necessary to add a new small lock here.

Reviewed-by: Yushan Zhou <katrinzhou@tencent.com>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Jason Xing <kernelxing@tencent.com>
---
v3
1. add Jens reviewed-by tag

v2
1. rename full member
2. revise the commit log
I still chose to keep struct rchan_buf_stats to help later patches
implementing relay_dump() to dump more statistics from buffer. It means
more fields can/will be added. But I have to say, I have no strong favor
on this kind of organization. If you don't like it, I will remove in the
next re-spin :)
---
 include/linux/relay.h | 9 +++++++++
 kernel/relay.c        | 8 +++++++-
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/include/linux/relay.h b/include/linux/relay.h
index e10a0fdf4325..cd77eb285a48 100644
--- a/include/linux/relay.h
+++ b/include/linux/relay.h
@@ -28,6 +28,14 @@
  */
 #define RELAYFS_CHANNEL_VERSION		7
 
+/*
+ * Relay buffer statistics
+ */
+struct rchan_buf_stats
+{
+	unsigned int full_count;	/* counter for buffer full */
+};
+
 /*
  * Per-cpu relay channel buffer
  */
@@ -43,6 +51,7 @@ struct rchan_buf
 	struct irq_work wakeup_work;	/* reader wakeup */
 	struct dentry *dentry;		/* channel file dentry */
 	struct kref kref;		/* channel buffer refcount */
+	struct rchan_buf_stats stats;	/* buffer stats */
 	struct page **page_array;	/* array of current buffer pages */
 	unsigned int page_count;	/* number of current buffer pages */
 	unsigned int finalized;		/* buffer has been finalized */
diff --git a/kernel/relay.c b/kernel/relay.c
index 94f79f52d826..eb3f630f3896 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -252,8 +252,13 @@ EXPORT_SYMBOL_GPL(relay_buf_full);
 static int relay_subbuf_start(struct rchan_buf *buf, void *subbuf,
 			      void *prev_subbuf)
 {
+	int full = relay_buf_full(buf);
+
+	if (full)
+		buf->stats.full_count++;
+
 	if (!buf->chan->cb->subbuf_start)
-		return !relay_buf_full(buf);
+		return !full;
 
 	return buf->chan->cb->subbuf_start(buf, subbuf,
 					   prev_subbuf);
@@ -298,6 +303,7 @@ static void __relay_reset(struct rchan_buf *buf, unsigned int init)
 	buf->finalized = 0;
 	buf->data = buf->start;
 	buf->offset = 0;
+	buf->stats.full_count = 0;
 
 	for (i = 0; i < buf->chan->n_subbufs; i++)
 		buf->padding[i] = 0;
-- 
2.43.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v3 2/4] relayfs: introduce getting relayfs statistics function
  2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
  2025-05-18  2:57 ` [PATCH v3 1/4] relayfs: support a counter tracking if per-cpu buffers is full Jason Xing
@ 2025-05-18  2:57 ` Jason Xing
  2025-05-18  2:57 ` [PATCH v3 3/4] blktrace: use rbuf->stats.full as a drop indicator in relayfs Jason Xing
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-18  2:57 UTC (permalink / raw)
  To: axboe, rostedt, mhiramat, mathieu.desnoyers, akpm
  Cc: linux-kernel, linux-block, linux-trace-kernel, Jason Xing,
	Yushan Zhou

From: Jason Xing <kernelxing@tencent.com>

In this version, only support getting the counter for buffer full and
implement the framework of how it works.

Users can pass certain flag to fetch what field/statistics they expect
to know. Each time it only returns one result. So do not pass multiple
flags.

Reviewed-by: Yushan Zhou <katrinzhou@tencent.com>
Signed-off-by: Jason Xing <kernelxing@tencent.com>
---
v3
1. rename and adjust relay_stats()
2. move rbuf init out of if statement

v2
1. refactor relay_dump() and make it only return a pure size_t result
of the value that users specifies.
2. revise the commit log.
---
 include/linux/relay.h |  7 +++++++
 kernel/relay.c        | 30 ++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)

diff --git a/include/linux/relay.h b/include/linux/relay.h
index cd77eb285a48..5310967f9d74 100644
--- a/include/linux/relay.h
+++ b/include/linux/relay.h
@@ -31,6 +31,12 @@
 /*
  * Relay buffer statistics
  */
+enum {
+	RELAY_STATS_BUF_FULL = (1 << 0),
+
+	RELAY_STATS_LAST = RELAY_STATS_BUF_FULL,
+};
+
 struct rchan_buf_stats
 {
 	unsigned int full_count;	/* counter for buffer full */
@@ -167,6 +173,7 @@ struct rchan *relay_open(const char *base_filename,
 			 void *private_data);
 extern void relay_close(struct rchan *chan);
 extern void relay_flush(struct rchan *chan);
+size_t relay_stats(struct rchan *chan, int flags);
 extern void relay_subbufs_consumed(struct rchan *chan,
 				   unsigned int cpu,
 				   size_t consumed);
diff --git a/kernel/relay.c b/kernel/relay.c
index eb3f630f3896..fd70d0e03216 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -701,6 +701,36 @@ void relay_flush(struct rchan *chan)
 }
 EXPORT_SYMBOL_GPL(relay_flush);
 
+/**
+ *	relay_stats - get channel buffer statistics
+ *	@chan: the channel
+ *	@flags: select particular information to get
+ *
+ *	Returns the count of certain field that caller specifies.
+ */
+size_t relay_stats(struct rchan *chan, int flags)
+{
+	unsigned int i, count = 0;
+	struct rchan_buf *rbuf;
+
+	if (!chan || flags > RELAY_STATS_LAST)
+		return 0;
+
+	if (chan->is_global) {
+		rbuf = *per_cpu_ptr(chan->buf, 0);
+		if (flags & RELAY_STATS_BUF_FULL)
+			count = rbuf->stats.full_count;
+	} else {
+		for_each_online_cpu(i) {
+			rbuf = *per_cpu_ptr(chan->buf, i);
+			if (rbuf && flags & RELAY_STATS_BUF_FULL)
+				count += rbuf->stats.full_count;
+		}
+	}
+
+	return count;
+}
+
 /**
  *	relay_file_open - open file op for relay files
  *	@inode: the inode
-- 
2.43.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v3 3/4] blktrace: use rbuf->stats.full as a drop indicator in relayfs
  2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
  2025-05-18  2:57 ` [PATCH v3 1/4] relayfs: support a counter tracking if per-cpu buffers is full Jason Xing
  2025-05-18  2:57 ` [PATCH v3 2/4] relayfs: introduce getting relayfs statistics function Jason Xing
@ 2025-05-18  2:57 ` Jason Xing
  2025-05-18  2:57 ` [PATCH v3 4/4] relayfs: support a counter tracking if data is too big to write Jason Xing
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-18  2:57 UTC (permalink / raw)
  To: axboe, rostedt, mhiramat, mathieu.desnoyers, akpm
  Cc: linux-kernel, linux-block, linux-trace-kernel, Jason Xing,
	Yushan Zhou

From: Jason Xing <kernelxing@tencent.com>

Replace internal subbuf_start in blktrace with the default policy
in relayfs.

Remove dropped field from struct blktrace. Correspondingly, call the
common helper in relay. By incrementing full_count to keep track of how
many times we encountered a full buffer issue, user space will know how
many events were lost.

Reviewed-by: Yushan Zhou <katrinzhou@tencent.com>
Reviewed-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Jason Xing <kernelxing@tencent.com>
---
v3
1. add Jens tag
2. refine the commit log

v2
1. adjust accordingly together with patch 2.
---
 kernel/trace/blktrace.c | 22 ++--------------------
 1 file changed, 2 insertions(+), 20 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index d1a89714e805..545e6063f451 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -415,9 +415,10 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
 				size_t count, loff_t *ppos)
 {
 	struct blk_trace *bt = filp->private_data;
+	size_t dropped = relay_stats(bt->rchan, RELAY_STATS_BUF_FULL);
 	char buf[16];
 
-	snprintf(buf, sizeof(buf), "%u\n", atomic_read(&bt->dropped));
+	snprintf(buf, sizeof(buf), "%lu\n", dropped);
 
 	return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
 }
@@ -456,23 +457,6 @@ static const struct file_operations blk_msg_fops = {
 	.llseek =	noop_llseek,
 };
 
-/*
- * Keep track of how many times we encountered a full subbuffer, to aid
- * the user space app in telling how many lost events there were.
- */
-static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
-				     void *prev_subbuf)
-{
-	struct blk_trace *bt;
-
-	if (!relay_buf_full(buf))
-		return 1;
-
-	bt = buf->chan->private_data;
-	atomic_inc(&bt->dropped);
-	return 0;
-}
-
 static int blk_remove_buf_file_callback(struct dentry *dentry)
 {
 	debugfs_remove(dentry);
@@ -491,7 +475,6 @@ static struct dentry *blk_create_buf_file_callback(const char *filename,
 }
 
 static const struct rchan_callbacks blk_relay_callbacks = {
-	.subbuf_start		= blk_subbuf_start_callback,
 	.create_buf_file	= blk_create_buf_file_callback,
 	.remove_buf_file	= blk_remove_buf_file_callback,
 };
@@ -580,7 +563,6 @@ static int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
 	}
 
 	bt->dev = dev;
-	atomic_set(&bt->dropped, 0);
 	INIT_LIST_HEAD(&bt->running_list);
 
 	ret = -EIO;
-- 
2.43.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v3 4/4] relayfs: support a counter tracking if data is too big to write
  2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
                   ` (2 preceding siblings ...)
  2025-05-18  2:57 ` [PATCH v3 3/4] blktrace: use rbuf->stats.full as a drop indicator in relayfs Jason Xing
@ 2025-05-18  2:57 ` Jason Xing
  2025-05-22 23:16 ` [PATCH v3 0/4] relayfs: misc changes Jason Xing
  2025-05-23  2:39 ` Masami Hiramatsu
  5 siblings, 0 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-18  2:57 UTC (permalink / raw)
  To: axboe, rostedt, mhiramat, mathieu.desnoyers, akpm
  Cc: linux-kernel, linux-block, linux-trace-kernel, Jason Xing,
	Yushan Zhou

From: Jason Xing <kernelxing@tencent.com>

It really doesn't matter if the user/admin knows what the last too
big value is. Record how many times this case is triggered would be
helpful.

Solve the existing issue where relay_reset() doesn't restore
the value.

Store the counter in the per-cpu buffer structure instead of the global
buffer structure. It also solves the racy condition which is likely
to happen when a few of per-cpu buffers encounter the too big data case
and then access the global field last_toobig without lock protection.

Remove the printk in relay_close() since kernel module can directly call
relay_stats() as they want.

Reviewed-by: Yushan Zhou <katrinzhou@tencent.com>
Signed-off-by: Jason Xing <kernelxing@tencent.com>
---
 include/linux/relay.h |  5 +++--
 kernel/relay.c        | 18 ++++++++++--------
 2 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/include/linux/relay.h b/include/linux/relay.h
index 5310967f9d74..6772a7075840 100644
--- a/include/linux/relay.h
+++ b/include/linux/relay.h
@@ -33,13 +33,15 @@
  */
 enum {
 	RELAY_STATS_BUF_FULL = (1 << 0),
+	RELAY_STATS_WRT_BIG = (1 << 1),
 
-	RELAY_STATS_LAST = RELAY_STATS_BUF_FULL,
+	RELAY_STATS_LAST = RELAY_STATS_WRT_BIG,
 };
 
 struct rchan_buf_stats
 {
 	unsigned int full_count;	/* counter for buffer full */
+	unsigned int big_count;		/* counter for too big to write */
 };
 
 /*
@@ -79,7 +81,6 @@ struct rchan
 	const struct rchan_callbacks *cb; /* client callbacks */
 	struct kref kref;		/* channel refcount */
 	void *private_data;		/* for user-defined data */
-	size_t last_toobig;		/* tried to log event > subbuf size */
 	struct rchan_buf * __percpu *buf; /* per-cpu channel buffers */
 	int is_global;			/* One global buffer ? */
 	struct list_head list;		/* for channel list */
diff --git a/kernel/relay.c b/kernel/relay.c
index fd70d0e03216..bcc889dc0970 100644
--- a/kernel/relay.c
+++ b/kernel/relay.c
@@ -304,6 +304,7 @@ static void __relay_reset(struct rchan_buf *buf, unsigned int init)
 	buf->data = buf->start;
 	buf->offset = 0;
 	buf->stats.full_count = 0;
+	buf->stats.big_count = 0;
 
 	for (i = 0; i < buf->chan->n_subbufs; i++)
 		buf->padding[i] = 0;
@@ -603,7 +604,7 @@ size_t relay_switch_subbuf(struct rchan_buf *buf, size_t length)
 	return length;
 
 toobig:
-	buf->chan->last_toobig = length;
+	buf->stats.big_count++;
 	return 0;
 }
 EXPORT_SYMBOL_GPL(relay_switch_subbuf);
@@ -663,11 +664,6 @@ void relay_close(struct rchan *chan)
 			if ((buf = *per_cpu_ptr(chan->buf, i)))
 				relay_close_buf(buf);
 
-	if (chan->last_toobig)
-		printk(KERN_WARNING "relay: one or more items not logged "
-		       "[item size (%zd) > sub-buffer size (%zd)]\n",
-		       chan->last_toobig, chan->subbuf_size);
-
 	list_del(&chan->list);
 	kref_put(&chan->kref, relay_destroy_channel);
 	mutex_unlock(&relay_channels_mutex);
@@ -720,11 +716,17 @@ size_t relay_stats(struct rchan *chan, int flags)
 		rbuf = *per_cpu_ptr(chan->buf, 0);
 		if (flags & RELAY_STATS_BUF_FULL)
 			count = rbuf->stats.full_count;
+		else if (flags & RELAY_STATS_WRT_BIG)
+			count = rbuf->stats.big_count;
 	} else {
 		for_each_online_cpu(i) {
 			rbuf = *per_cpu_ptr(chan->buf, i);
-			if (rbuf && flags & RELAY_STATS_BUF_FULL)
-				count += rbuf->stats.full_count;
+			if (rbuf) {
+				if (flags & RELAY_STATS_BUF_FULL)
+					count += rbuf->stats.full_count;
+				else if (flags & RELAY_STATS_WRT_BIG)
+					count += rbuf->stats.big_count;
+			}
 		}
 	}
 
-- 
2.43.5


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v3 0/4] relayfs: misc changes
  2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
                   ` (3 preceding siblings ...)
  2025-05-18  2:57 ` [PATCH v3 4/4] relayfs: support a counter tracking if data is too big to write Jason Xing
@ 2025-05-22 23:16 ` Jason Xing
  2025-05-22 23:34   ` Andrew Morton
  2025-05-23  2:39 ` Masami Hiramatsu
  5 siblings, 1 reply; 10+ messages in thread
From: Jason Xing @ 2025-05-22 23:16 UTC (permalink / raw)
  To: axboe, rostedt, mhiramat, mathieu.desnoyers, akpm
  Cc: linux-kernel, linux-block, linux-trace-kernel, Jason Xing

On Sun, May 18, 2025 at 10:57 AM Jason Xing <kerneljasonxing@gmail.com> wrote:
>
> From: Jason Xing <kernelxing@tencent.com>
>
> The series mostly focuses on the error counters which helps every user
> debug their own kernel module.
>
> ---
> Note: this series is made on top of this cleanup[1] and unmerged commit[2]
> [1]: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/log/?h=mm-nonmm-unstable
> [2]: https://lore.kernel.org/all/20250507134225.63248-1-kerneljasonxing@gmail.com/
>
> Jason Xing (4):
>   relayfs: support a counter tracking if per-cpu buffers is full
>   relayfs: introduce getting relayfs statistics function
>   blktrace: use rbuf->stats.full as a drop indicator in relayfs
>   relayfs: support a counter tracking if data is too big to write
>
>  include/linux/relay.h   | 19 ++++++++++++++-
>  kernel/relay.c          | 52 +++++++++++++++++++++++++++++++++++------
>  kernel/trace/blktrace.c | 22 ++---------------
>  3 files changed, 65 insertions(+), 28 deletions(-)

Hi Andrew,

Any comments on the series?

Thanks,
Jason

>
> --
> 2.43.5
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v3 0/4] relayfs: misc changes
  2025-05-22 23:16 ` [PATCH v3 0/4] relayfs: misc changes Jason Xing
@ 2025-05-22 23:34   ` Andrew Morton
  2025-05-22 23:42     ` Jason Xing
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew Morton @ 2025-05-22 23:34 UTC (permalink / raw)
  To: Jason Xing
  Cc: axboe, rostedt, mhiramat, mathieu.desnoyers, linux-kernel,
	linux-block, linux-trace-kernel, Jason Xing

On Fri, 23 May 2025 07:16:35 +0800 Jason Xing <kerneljasonxing@gmail.com> wrote:

> On Sun, May 18, 2025 at 10:57 AM Jason Xing <kerneljasonxing@gmail.com> wrote:
> >
> > From: Jason Xing <kernelxing@tencent.com>
> >
> > The series mostly focuses on the error counters which helps every user
> > debug their own kernel module.
> >
> > ---
> > Note: this series is made on top of this cleanup[1] and unmerged commit[2]
> > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/log/?h=mm-nonmm-unstable
> > [2]: https://lore.kernel.org/all/20250507134225.63248-1-kerneljasonxing@gmail.com/
> >
> > Jason Xing (4):
> >   relayfs: support a counter tracking if per-cpu buffers is full
> >   relayfs: introduce getting relayfs statistics function
> >   blktrace: use rbuf->stats.full as a drop indicator in relayfs
> >   relayfs: support a counter tracking if data is too big to write
> >
> >  include/linux/relay.h   | 19 ++++++++++++++-
> >  kernel/relay.c          | 52 +++++++++++++++++++++++++++++++++++------
> >  kernel/trace/blktrace.c | 22 ++---------------
> >  3 files changed, 65 insertions(+), 28 deletions(-)
> 
> Hi Andrew,
> 
> Any comments on the series?
> 

We're at -rc7 now, so I'll park this for consideration for -rc1.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v3 0/4] relayfs: misc changes
  2025-05-22 23:34   ` Andrew Morton
@ 2025-05-22 23:42     ` Jason Xing
  0 siblings, 0 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-22 23:42 UTC (permalink / raw)
  To: Andrew Morton
  Cc: axboe, rostedt, mhiramat, mathieu.desnoyers, linux-kernel,
	linux-block, linux-trace-kernel, Jason Xing

On Fri, May 23, 2025 at 7:34 AM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Fri, 23 May 2025 07:16:35 +0800 Jason Xing <kerneljasonxing@gmail.com> wrote:
>
> > On Sun, May 18, 2025 at 10:57 AM Jason Xing <kerneljasonxing@gmail.com> wrote:
> > >
> > > From: Jason Xing <kernelxing@tencent.com>
> > >
> > > The series mostly focuses on the error counters which helps every user
> > > debug their own kernel module.
> > >
> > > ---
> > > Note: this series is made on top of this cleanup[1] and unmerged commit[2]
> > > [1]: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/log/?h=mm-nonmm-unstable
> > > [2]: https://lore.kernel.org/all/20250507134225.63248-1-kerneljasonxing@gmail.com/
> > >
> > > Jason Xing (4):
> > >   relayfs: support a counter tracking if per-cpu buffers is full
> > >   relayfs: introduce getting relayfs statistics function
> > >   blktrace: use rbuf->stats.full as a drop indicator in relayfs
> > >   relayfs: support a counter tracking if data is too big to write
> > >
> > >  include/linux/relay.h   | 19 ++++++++++++++-
> > >  kernel/relay.c          | 52 +++++++++++++++++++++++++++++++++++------
> > >  kernel/trace/blktrace.c | 22 ++---------------
> > >  3 files changed, 65 insertions(+), 28 deletions(-)
> >
> > Hi Andrew,
> >
> > Any comments on the series?
> >
>
> We're at -rc7 now, so I'll park this for consideration for -rc1.

Okay. IIUC, it seems probably two or three weeks later. I think I'll
keep track of the series and remind you at that time just in case you
might forget it :)

Thanks,
Jason

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v3 0/4] relayfs: misc changes
  2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
                   ` (4 preceding siblings ...)
  2025-05-22 23:16 ` [PATCH v3 0/4] relayfs: misc changes Jason Xing
@ 2025-05-23  2:39 ` Masami Hiramatsu
  2025-05-23  2:44   ` Jason Xing
  5 siblings, 1 reply; 10+ messages in thread
From: Masami Hiramatsu @ 2025-05-23  2:39 UTC (permalink / raw)
  To: Jason Xing
  Cc: axboe, rostedt, mathieu.desnoyers, akpm, linux-kernel,
	linux-block, linux-trace-kernel, Jason Xing

On Sun, 18 May 2025 10:57:30 +0800
Jason Xing <kerneljasonxing@gmail.com> wrote:

> From: Jason Xing <kernelxing@tencent.com>
> 
> The series mostly focuses on the error counters which helps every user
> debug their own kernel module.
> 

The series looks good to me.

Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

Thanks,

> ---
> Note: this series is made on top of this cleanup[1] and unmerged commit[2]
> [1]: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/log/?h=mm-nonmm-unstable
> [2]: https://lore.kernel.org/all/20250507134225.63248-1-kerneljasonxing@gmail.com/
> 
> Jason Xing (4):
>   relayfs: support a counter tracking if per-cpu buffers is full
>   relayfs: introduce getting relayfs statistics function
>   blktrace: use rbuf->stats.full as a drop indicator in relayfs
>   relayfs: support a counter tracking if data is too big to write
> 
>  include/linux/relay.h   | 19 ++++++++++++++-
>  kernel/relay.c          | 52 +++++++++++++++++++++++++++++++++++------
>  kernel/trace/blktrace.c | 22 ++---------------
>  3 files changed, 65 insertions(+), 28 deletions(-)
> 
> -- 
> 2.43.5
> 


-- 
Masami Hiramatsu (Google) <mhiramat@kernel.org>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v3 0/4] relayfs: misc changes
  2025-05-23  2:39 ` Masami Hiramatsu
@ 2025-05-23  2:44   ` Jason Xing
  0 siblings, 0 replies; 10+ messages in thread
From: Jason Xing @ 2025-05-23  2:44 UTC (permalink / raw)
  To: Masami Hiramatsu
  Cc: axboe, rostedt, mathieu.desnoyers, akpm, linux-kernel,
	linux-block, linux-trace-kernel, Jason Xing

On Fri, May 23, 2025 at 10:39 AM Masami Hiramatsu <mhiramat@kernel.org> wrote:
>
> On Sun, 18 May 2025 10:57:30 +0800
> Jason Xing <kerneljasonxing@gmail.com> wrote:
>
> > From: Jason Xing <kernelxing@tencent.com>
> >
> > The series mostly focuses on the error counters which helps every user
> > debug their own kernel module.
> >
>
> The series looks good to me.
>
> Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>

Thanks for the review.

Thanks,
Jason

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-05-23  2:44 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-18  2:57 [PATCH v3 0/4] relayfs: misc changes Jason Xing
2025-05-18  2:57 ` [PATCH v3 1/4] relayfs: support a counter tracking if per-cpu buffers is full Jason Xing
2025-05-18  2:57 ` [PATCH v3 2/4] relayfs: introduce getting relayfs statistics function Jason Xing
2025-05-18  2:57 ` [PATCH v3 3/4] blktrace: use rbuf->stats.full as a drop indicator in relayfs Jason Xing
2025-05-18  2:57 ` [PATCH v3 4/4] relayfs: support a counter tracking if data is too big to write Jason Xing
2025-05-22 23:16 ` [PATCH v3 0/4] relayfs: misc changes Jason Xing
2025-05-22 23:34   ` Andrew Morton
2025-05-22 23:42     ` Jason Xing
2025-05-23  2:39 ` Masami Hiramatsu
2025-05-23  2:44   ` Jason Xing

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).