[PATCH 09/16] blktrace: remove struct blk_io_trace from __blk_add_trace

Johannes Thumshirn posted 16 patches 3 weeks, 2 days ago
There is a newer version of this series
[PATCH 09/16] blktrace: remove struct blk_io_trace from __blk_add_trace
Posted by Johannes Thumshirn 3 weeks, 2 days ago
Now that relaying the blktrace protocol information via relayfs has been
removed from __blk_add_trace(), it only uses 'struct blk_io_trace' for the
ftrace portion of the function.

Directly pass in the reserved area of the ftrace ring buffer to
record_blktrace_event().

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
---
 kernel/trace/blktrace.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index 5b97dc5e2cfd..14fb4e7296cf 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -258,7 +258,6 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 	struct task_struct *tsk = current;
 	struct ring_buffer_event *event = NULL;
 	struct trace_buffer *buffer = NULL;
-	struct blk_io_trace *t;
 	unsigned long flags = 0;
 	unsigned long *sequence;
 	unsigned int trace_ctx = 0;
@@ -290,19 +289,19 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 		return;
 	cpu = raw_smp_processor_id();
 
-	trace_len = sizeof(*t) + pdu_len + cgid_len;
 	if (blk_tracer) {
 		tracing_record_cmdline(current);
 
 		buffer = blk_tr->array_buffer.buffer;
 		trace_ctx = tracing_gen_ctx_flags(0);
+		trace_len = sizeof(struct blk_io_trace) + pdu_len + cgid_len;
 		event = trace_buffer_lock_reserve(buffer, TRACE_BLK,
 						  trace_len, trace_ctx);
 		if (!event)
 			return;
-		t = ring_buffer_event_data(event);
 
-		record_blktrace_event(t, pid, cpu, sector, bytes,
+		record_blktrace_event(ring_buffer_event_data(event),
+				      pid, cpu, sector, bytes,
 				      lower_32_bits(what), bt->dev, error,
 				      cgid, cgid_len, pdu_data, pdu_len);
 
-- 
2.51.0
Re: [PATCH 09/16] blktrace: remove struct blk_io_trace from __blk_add_trace
Posted by Christoph Hellwig 1 week, 6 days ago
On Tue, Sep 09, 2025 at 01:06:04PM +0200, Johannes Thumshirn wrote:
> Now that relaying the blktrace protocol information via relayfs has been
> removed from __blk_add_trace(), it only uses 'struct blk_io_trace' for the
> ftrace portion of the function.
> 
> Directly pass in the reserved area of the ftrace ring buffer to
> record_blktrace_event().

Shouldn't this be part of the patch splitting out record_blktrace_event?

>