[PATCH] blktrace: support for logging metadata reads
Signed-off-by: Jens Axboe <axboe@suse.de>
This commit is contained in:
parent
374f84ac39
commit
7457e6e2d7
|
@ -69,7 +69,7 @@ static u32 ddir_act[2] __read_mostly = { BLK_TC_ACT(BLK_TC_READ), BLK_TC_ACT(BLK
|
||||||
/*
|
/*
|
||||||
* Bio action bits of interest
|
* Bio action bits of interest
|
||||||
*/
|
*/
|
||||||
static u32 bio_act[5] __read_mostly = { 0, BLK_TC_ACT(BLK_TC_BARRIER), BLK_TC_ACT(BLK_TC_SYNC), 0, BLK_TC_ACT(BLK_TC_AHEAD) };
|
static u32 bio_act[9] __read_mostly = { 0, BLK_TC_ACT(BLK_TC_BARRIER), BLK_TC_ACT(BLK_TC_SYNC), 0, BLK_TC_ACT(BLK_TC_AHEAD), 0, 0, 0, BLK_TC_ACT(BLK_TC_META) };
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* More could be added as needed, taking care to increment the decrementer
|
* More could be added as needed, taking care to increment the decrementer
|
||||||
|
@ -81,6 +81,8 @@ static u32 bio_act[5] __read_mostly = { 0, BLK_TC_ACT(BLK_TC_BARRIER), BLK_TC_AC
|
||||||
(((rw) & (1 << BIO_RW_SYNC)) >> (BIO_RW_SYNC - 1))
|
(((rw) & (1 << BIO_RW_SYNC)) >> (BIO_RW_SYNC - 1))
|
||||||
#define trace_ahead_bit(rw) \
|
#define trace_ahead_bit(rw) \
|
||||||
(((rw) & (1 << BIO_RW_AHEAD)) << (2 - BIO_RW_AHEAD))
|
(((rw) & (1 << BIO_RW_AHEAD)) << (2 - BIO_RW_AHEAD))
|
||||||
|
#define trace_meta_bit(rw) \
|
||||||
|
(((rw) & (1 << BIO_RW_META)) >> (BIO_RW_META - 3))
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The worker for the various blk_add_trace*() types. Fills out a
|
* The worker for the various blk_add_trace*() types. Fills out a
|
||||||
|
@ -103,6 +105,7 @@ void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
|
||||||
what |= bio_act[trace_barrier_bit(rw)];
|
what |= bio_act[trace_barrier_bit(rw)];
|
||||||
what |= bio_act[trace_sync_bit(rw)];
|
what |= bio_act[trace_sync_bit(rw)];
|
||||||
what |= bio_act[trace_ahead_bit(rw)];
|
what |= bio_act[trace_ahead_bit(rw)];
|
||||||
|
what |= bio_act[trace_meta_bit(rw)];
|
||||||
|
|
||||||
pid = tsk->pid;
|
pid = tsk->pid;
|
||||||
if (unlikely(act_log_check(bt, what, sector, pid)))
|
if (unlikely(act_log_check(bt, what, sector, pid)))
|
||||||
|
|
|
@ -20,6 +20,7 @@ enum blktrace_cat {
|
||||||
BLK_TC_PC = 1 << 9, /* pc requests */
|
BLK_TC_PC = 1 << 9, /* pc requests */
|
||||||
BLK_TC_NOTIFY = 1 << 10, /* special message */
|
BLK_TC_NOTIFY = 1 << 10, /* special message */
|
||||||
BLK_TC_AHEAD = 1 << 11, /* readahead */
|
BLK_TC_AHEAD = 1 << 11, /* readahead */
|
||||||
|
BLK_TC_META = 1 << 12, /* metadata */
|
||||||
|
|
||||||
BLK_TC_END = 1 << 15, /* only 16-bits, reminder */
|
BLK_TC_END = 1 << 15, /* only 16-bits, reminder */
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue