Skip to content

Commit

Permalink
blktrace: Remove blk_fill_rwbs_rq.
Browse files Browse the repository at this point in the history
If we enable trace events to trace block actions, We use
blk_fill_rwbs_rq to analyze the corresponding actions
in request's cmd_flags, but we only choose the minor 2 bits
from it, so most of other flags(e.g, REQ_SYNC) are missing.
For example, with a sync write we get:
write_test-2409  [001]   160.013869: block_rq_insert: 3,64 W 0 () 258135 + =
8 [write_test]

Since now we have integrated the flags of both bio and request,
it is safe to pass rq->cmd_flags directly to blk_fill_rwbs and
blk_fill_rwbs_rq isn't needed any more.

With this patch, after a sync write we get:
write_test-2417  [000]   226.603878: block_rq_insert: 3,64 WS 0 () 258135 +=
 8 [write_test]

Signed-off-by: Tao Ma <boyu.mt@taobao.com>
Acked-by: Jeff Moyer <jmoyer@redhat.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
  • Loading branch information
Tao Ma authored and Jens Axboe committed Mar 3, 2011
1 parent 255bb49 commit 2d3a849
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 20 deletions.
1 change: 0 additions & 1 deletion include/linux/blktrace_api.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,6 @@ static inline int blk_cmd_buf_len(struct request *rq)

extern void blk_dump_cmd(char *buf, struct request *rq);
extern void blk_fill_rwbs(char *rwbs, u32 rw, int bytes);
extern void blk_fill_rwbs_rq(char *rwbs, struct request *rq);

#endif /* CONFIG_EVENT_TRACING && CONFIG_BLOCK */

Expand Down
6 changes: 3 additions & 3 deletions include/trace/events/block.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ DECLARE_EVENT_CLASS(block_rq_with_error,
0 : blk_rq_sectors(rq);
__entry->errors = rq->errors;

blk_fill_rwbs_rq(__entry->rwbs, rq);
blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq));
blk_dump_cmd(__get_str(cmd), rq);
),

Expand Down Expand Up @@ -118,7 +118,7 @@ DECLARE_EVENT_CLASS(block_rq,
__entry->bytes = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ?
blk_rq_bytes(rq) : 0;

blk_fill_rwbs_rq(__entry->rwbs, rq);
blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq));
blk_dump_cmd(__get_str(cmd), rq);
memcpy(__entry->comm, current->comm, TASK_COMM_LEN);
),
Expand Down Expand Up @@ -563,7 +563,7 @@ TRACE_EVENT(block_rq_remap,
__entry->nr_sector = blk_rq_sectors(rq);
__entry->old_dev = dev;
__entry->old_sector = from;
blk_fill_rwbs_rq(__entry->rwbs, rq);
blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq));
),

TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu",
Expand Down
16 changes: 0 additions & 16 deletions kernel/trace/blktrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -1827,21 +1827,5 @@ void blk_fill_rwbs(char *rwbs, u32 rw, int bytes)
rwbs[i] = '\0';
}

void blk_fill_rwbs_rq(char *rwbs, struct request *rq)
{
int rw = rq->cmd_flags & 0x03;
int bytes;

if (rq->cmd_flags & REQ_DISCARD)
rw |= REQ_DISCARD;

if (rq->cmd_flags & REQ_SECURE)
rw |= REQ_SECURE;

bytes = blk_rq_bytes(rq);

blk_fill_rwbs(rwbs, rw, bytes);
}

#endif /* CONFIG_EVENT_TRACING */

0 comments on commit 2d3a849

Please sign in to comment.