diff options
author | David Woodhouse <David.Woodhouse@intel.com> | 2008-08-10 06:21:57 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-10-09 02:56:01 -0400 |
commit | 27b29e86bf3d4b3cf6641a0efd78ed11a9b633b2 (patch) | |
tree | 0cfa20e8f07ee9d57e43a5371b4d97eeb8202081 /block | |
parent | fdc53971bce56d299cb5f1f06ecbff30b34cbaf2 (diff) |
blktrace: support discard requests
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/blktrace.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/block/blktrace.c b/block/blktrace.c index eb9651ccb241..7495a84353e4 100644 --- a/block/blktrace.c +++ b/block/blktrace.c | |||
@@ -114,7 +114,13 @@ static u32 ddir_act[2] __read_mostly = { BLK_TC_ACT(BLK_TC_READ), BLK_TC_ACT(BLK | |||
114 | /* | 114 | /* |
115 | * Bio action bits of interest | 115 | * Bio action bits of interest |
116 | */ | 116 | */ |
117 | 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) }; | 117 | static u32 bio_act[17] __read_mostly = { |
118 | [1] = BLK_TC_ACT(BLK_TC_BARRIER), | ||
119 | [2] = BLK_TC_ACT(BLK_TC_SYNC), | ||
120 | [4] = BLK_TC_ACT(BLK_TC_AHEAD), | ||
121 | [8] = BLK_TC_ACT(BLK_TC_META), | ||
122 | [16] = BLK_TC_ACT(BLK_TC_DISCARD) | ||
123 | }; | ||
118 | 124 | ||
119 | /* | 125 | /* |
120 | * More could be added as needed, taking care to increment the decrementer | 126 | * More could be added as needed, taking care to increment the decrementer |
@@ -128,6 +134,8 @@ static u32 bio_act[9] __read_mostly = { 0, BLK_TC_ACT(BLK_TC_BARRIER), BLK_TC_AC | |||
128 | (((rw) & (1 << BIO_RW_AHEAD)) << (2 - BIO_RW_AHEAD)) | 134 | (((rw) & (1 << BIO_RW_AHEAD)) << (2 - BIO_RW_AHEAD)) |
129 | #define trace_meta_bit(rw) \ | 135 | #define trace_meta_bit(rw) \ |
130 | (((rw) & (1 << BIO_RW_META)) >> (BIO_RW_META - 3)) | 136 | (((rw) & (1 << BIO_RW_META)) >> (BIO_RW_META - 3)) |
137 | #define trace_discard_bit(rw) \ | ||
138 | (((rw) & (1 << BIO_RW_DISCARD)) >> (BIO_RW_DISCARD - 4)) | ||
131 | 139 | ||
132 | /* | 140 | /* |
133 | * The worker for the various blk_add_trace*() types. Fills out a | 141 | * The worker for the various blk_add_trace*() types. Fills out a |
@@ -151,6 +159,7 @@ void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes, | |||
151 | what |= bio_act[trace_sync_bit(rw)]; | 159 | what |= bio_act[trace_sync_bit(rw)]; |
152 | what |= bio_act[trace_ahead_bit(rw)]; | 160 | what |= bio_act[trace_ahead_bit(rw)]; |
153 | what |= bio_act[trace_meta_bit(rw)]; | 161 | what |= bio_act[trace_meta_bit(rw)]; |
162 | what |= bio_act[trace_discard_bit(rw)]; | ||
154 | 163 | ||
155 | pid = tsk->pid; | 164 | pid = tsk->pid; |
156 | if (unlikely(act_log_check(bt, what, sector, pid))) | 165 | if (unlikely(act_log_check(bt, what, sector, pid))) |