From: Tao Ma <tm@tao.ma>
To: linux-kernel@vger.kernel.org
Cc: Jens Axboe <jaxboe@fusionio.com>, Jeff Moyer <jmoyer@redhat.com>
Subject: Re: [PATCH] blktrace: Use rq->cmd_flags directly in blk_add_trace_rq.
Date: Wed, 09 Mar 2011 22:06:04 +0800 [thread overview]
Message-ID: <4D77894C.8010703@tao.ma> (raw)
In-Reply-To: <1299219358-17507-1-git-send-email-tm@tao.ma>
Hi Jens and Jeff,
any comment for this?
It should be similar as patch 2d3a8497, but a fix to the real blktrace.
Regards,
Tao
On 03/04/2011 02:15 PM, Tao Ma wrote:
> From: Tao Ma<boyu.mt@taobao.com>
>
> In blk_add_trace_rq, we only chose the minor 2 bits from
> request's cmd_flags and did some check for discard.
> so most of other flags(e.g, REQ_SYNC) are missing.
>
> For example, with a sync write after blkparse we get:
> 8,16 1 1 0.001776503 7509 A WS 1349632 + 1024<- (8,17) 1347584
> 8,16 1 2 0.001776813 7509 Q WS 1349632 + 1024 [dd]
> 8,16 1 3 0.001780395 7509 G WS 1349632 + 1024 [dd]
> 8,16 1 5 0.001783186 7509 I W 1349632 + 1024 [dd]
> 8,16 1 11 0.001816987 7509 D W 1349632 + 1024 [dd]
> 8,16 0 2 0.006218192 0 C W 1349632 + 1024 [0]
>
> Since now we have integrated the flags of both bio and request,
> it is safe to pass rq->cmd_flags directly to __blk_add_trace.
>
> With this patch, after a sync write we get:
> 8,16 1 1 0.001776900 5425 A WS 1189888 + 1024<- (8,17) 1187840
> 8,16 1 2 0.001777179 5425 Q WS 1189888 + 1024 [dd]
> 8,16 1 3 0.001780797 5425 G WS 1189888 + 1024 [dd]
> 8,16 1 5 0.001783402 5425 I WS 1189888 + 1024 [dd]
> 8,16 1 11 0.001817468 5425 D WS 1189888 + 1024 [dd]
> 8,16 0 2 0.005640709 0 C WS 1189888 + 1024 [0]
>
> Cc: Jens Axboe<jaxboe@fusionio.com>
> Signed-off-by: Tao Ma<boyu.mt@taobao.com>
> ---
> kernel/trace/blktrace.c | 15 ++++-----------
> 1 files changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
> index cbafed7..7aa40f8 100644
> --- a/kernel/trace/blktrace.c
> +++ b/kernel/trace/blktrace.c
> @@ -703,28 +703,21 @@ void blk_trace_shutdown(struct request_queue *q)
> *
> **/
> static void blk_add_trace_rq(struct request_queue *q, struct request *rq,
> - u32 what)
> + u32 what)
> {
> struct blk_trace *bt = q->blk_trace;
> - int rw = rq->cmd_flags& 0x03;
>
> if (likely(!bt))
> return;
>
> - if (rq->cmd_flags& REQ_DISCARD)
> - rw |= REQ_DISCARD;
> -
> - if (rq->cmd_flags& REQ_SECURE)
> - rw |= REQ_SECURE;
> -
> if (rq->cmd_type == REQ_TYPE_BLOCK_PC) {
> what |= BLK_TC_ACT(BLK_TC_PC);
> - __blk_add_trace(bt, 0, blk_rq_bytes(rq), rw,
> + __blk_add_trace(bt, 0, blk_rq_bytes(rq), rq->cmd_flags,
> what, rq->errors, rq->cmd_len, rq->cmd);
> } else {
> what |= BLK_TC_ACT(BLK_TC_FS);
> - __blk_add_trace(bt, blk_rq_pos(rq), blk_rq_bytes(rq), rw,
> - what, rq->errors, 0, NULL);
> + __blk_add_trace(bt, blk_rq_pos(rq), blk_rq_bytes(rq),
> + rq->cmd_flags, what, rq->errors, 0, NULL);
> }
> }
>
next prev parent reply other threads:[~2011-03-09 14:06 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-04 6:15 [PATCH] blktrace: Use rq->cmd_flags directly in blk_add_trace_rq Tao Ma
2011-03-09 14:06 ` Tao Ma [this message]
2011-03-09 14:31 ` Jeff Moyer
2011-03-11 19:12 ` Jens Axboe
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=4D77894C.8010703@tao.ma \
--to=tm@tao.ma \
--cc=jaxboe@fusionio.com \
--cc=jmoyer@redhat.com \
--cc=linux-kernel@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.