Commit a42aaa3b authored by Alan D. Brunelle's avatar Alan D. Brunelle Committed by Ingo Molnar

blktrace: correct remap names

This attempts to clarify names utilized during block I/O remap
operations (partition, volume manager). It correctly matches up the
/from/ information for both device & sector. This takes in the concept
from Kosaki Motohiro and extends it to include better naming for the
"device_from" field.

[ Impact: cleanup ]
Signed-off-by: default avatarAlan D. Brunelle <alan.brunelle@hp.com>
Reviewed-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
Reviewed-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <49FF4FAE.3000301@hp.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent de1d7286
...@@ -116,9 +116,9 @@ struct blk_io_trace { ...@@ -116,9 +116,9 @@ struct blk_io_trace {
* The remap event * The remap event
*/ */
struct blk_io_trace_remap { struct blk_io_trace_remap {
__be32 device;
__be32 device_from; __be32 device_from;
__be64 sector; __be32 device_to;
__be64 sector_from;
}; };
enum { enum {
......
...@@ -70,7 +70,7 @@ DECLARE_TRACE(block_split, ...@@ -70,7 +70,7 @@ DECLARE_TRACE(block_split,
DECLARE_TRACE(block_remap, DECLARE_TRACE(block_remap,
TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev,
sector_t from, sector_t to), sector_t to, sector_t from),
TP_ARGS(q, bio, dev, from, to)); TP_ARGS(q, bio, dev, to, from));
#endif #endif
...@@ -830,8 +830,8 @@ static void blk_add_trace_split(struct request_queue *q, struct bio *bio, ...@@ -830,8 +830,8 @@ static void blk_add_trace_split(struct request_queue *q, struct bio *bio,
* @q: queue the io is for * @q: queue the io is for
* @bio: the source bio * @bio: the source bio
* @dev: target device * @dev: target device
* @from: source sector
* @to: target sector * @to: target sector
* @from: source sector
* *
* Description: * Description:
* Device mapper or raid target sometimes need to split a bio because * Device mapper or raid target sometimes need to split a bio because
...@@ -839,7 +839,7 @@ static void blk_add_trace_split(struct request_queue *q, struct bio *bio, ...@@ -839,7 +839,7 @@ static void blk_add_trace_split(struct request_queue *q, struct bio *bio,
* *
**/ **/
static void blk_add_trace_remap(struct request_queue *q, struct bio *bio, static void blk_add_trace_remap(struct request_queue *q, struct bio *bio,
dev_t dev, sector_t from, sector_t to) dev_t dev, sector_t to, sector_t from)
{ {
struct blk_trace *bt = q->blk_trace; struct blk_trace *bt = q->blk_trace;
struct blk_io_trace_remap r; struct blk_io_trace_remap r;
...@@ -847,9 +847,9 @@ static void blk_add_trace_remap(struct request_queue *q, struct bio *bio, ...@@ -847,9 +847,9 @@ static void blk_add_trace_remap(struct request_queue *q, struct bio *bio,
if (likely(!bt)) if (likely(!bt))
return; return;
r.device = cpu_to_be32(dev); r.device_from = cpu_to_be32(dev);
r.device_from = cpu_to_be32(bio->bi_bdev->bd_dev); r.device_to = cpu_to_be32(bio->bi_bdev->bd_dev);
r.sector = cpu_to_be64(to); r.sector_from = cpu_to_be64(from);
__blk_add_trace(bt, from, bio->bi_size, bio->bi_rw, BLK_TA_REMAP, __blk_add_trace(bt, from, bio->bi_size, bio->bi_rw, BLK_TA_REMAP,
!bio_flagged(bio, BIO_UPTODATE), sizeof(r), &r); !bio_flagged(bio, BIO_UPTODATE), sizeof(r), &r);
...@@ -1028,11 +1028,11 @@ static void get_pdu_remap(const struct trace_entry *ent, ...@@ -1028,11 +1028,11 @@ static void get_pdu_remap(const struct trace_entry *ent,
struct blk_io_trace_remap *r) struct blk_io_trace_remap *r)
{ {
const struct blk_io_trace_remap *__r = pdu_start(ent); const struct blk_io_trace_remap *__r = pdu_start(ent);
__u64 sector = __r->sector; __u64 sector_from = __r->sector_from;
r->device = be32_to_cpu(__r->device);
r->device_from = be32_to_cpu(__r->device_from); r->device_from = be32_to_cpu(__r->device_from);
r->sector = be64_to_cpu(sector); r->device_to = be32_to_cpu(__r->device_to);
r->sector_from = be64_to_cpu(sector_from);
} }
typedef int (blk_log_action_t) (struct trace_iterator *iter, const char *act); typedef int (blk_log_action_t) (struct trace_iterator *iter, const char *act);
...@@ -1148,13 +1148,13 @@ static int blk_log_with_error(struct trace_seq *s, ...@@ -1148,13 +1148,13 @@ static int blk_log_with_error(struct trace_seq *s,
static int blk_log_remap(struct trace_seq *s, const struct trace_entry *ent) static int blk_log_remap(struct trace_seq *s, const struct trace_entry *ent)
{ {
struct blk_io_trace_remap r = { .device = 0, }; struct blk_io_trace_remap r = { .device_from = 0, };
get_pdu_remap(ent, &r); get_pdu_remap(ent, &r);
return trace_seq_printf(s, "%llu + %u <- (%d,%d) %llu\n", return trace_seq_printf(s, "%llu + %u <- (%d,%d) %llu\n",
t_sector(ent), t_sector(ent), t_sec(ent),
t_sec(ent), MAJOR(r.device), MINOR(r.device), MAJOR(r.device_from), MINOR(r.device_from),
(unsigned long long)r.sector); (unsigned long long)r.sector_from);
} }
static int blk_log_plug(struct trace_seq *s, const struct trace_entry *ent) static int blk_log_plug(struct trace_seq *s, const struct trace_entry *ent)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment