[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20180416180601.52119e2c@gandalf.local.home>
Date: Mon, 16 Apr 2018 18:06:01 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Bart Van Assche <Bart.VanAssche@....com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
"beanhuo@...ron.com" <beanhuo@...ron.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"axboe@...nel.dk" <axboe@...nel.dk>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"mingo@...had.com" <mingo@...had.com>,
"rajatja@...gle.com" <rajatja@...gle.com>,
"jejb@...ux.vnet.ibm.com" <jejb@...ux.vnet.ibm.com>
Subject: Re: [RESEND PATCH v1 1/2] trace: events: scsi: Add tag in SCSI
trace events
On Mon, 16 Apr 2018 21:30:54 +0000
Bart Van Assche <Bart.VanAssche@....com> wrote:
> Hello Steve,
>
> The tool I'm most concerned about is blktrace. I'm not sure though how this
> tool receives event data from the block layer core.
Yeah, blktrace is "special", it looks like it registers its callbacks
from the tracepoints, and writes the data to its own relay buffer. As
it's not relying on the output from the tracing directory, additional
fields being added shouldn't affect it.
Looking at the trace event "block_rq_requeue" we have in the blktrace
kernel code:
static void blk_register_tracepoints(void)
{
int ret;
ret = register_trace_block_rq_insert(blk_add_trace_rq_insert, NULL);
Where the callback blk_add_trace_rq_insert() gets called when the
trace event is hit.
static void blk_add_trace_rq_insert(void *ignore,
struct request_queue *q, struct request *rq)
{
blk_add_trace_rq(rq, 0, blk_rq_bytes(rq), BLK_TA_INSERT,
blk_trace_request_get_cgid(q, rq));
}
Where:
static void blk_add_trace_rq(struct request *rq, int error,
unsigned int nr_bytes, u32 what,
union kernfs_node_id *cgid)
{
calls
__blk_add_trace(bt, blk_rq_trace_sector(rq), nr_bytes, req_op(rq),
rq->cmd_flags, what, error, 0, NULL, cgid);
Which calls either the ftrace tracing file or its own relay buffer.
Looking at the code from
git://git.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git
It appears that it does not rely on the ftrace ring buffers.
So I'm guessing blktrace is not affected by this patch.
-- Steve
Powered by blists - more mailing lists