blktrace: support discard requests
authorDavid Woodhouse <dwmw2@infradead.org>
Fri, 15 Aug 2008 08:44:39 +0000 (10:44 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 15 Aug 2008 08:44:39 +0000 (10:44 +0200)
Add support for discard requests to blktrace userspace tools.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
act_mask.c
blkparse_fmt.c
blkrawverify.c
blktrace_api.h

index 40a4050cecfbb201a6e286e22d156e870a618266..6632320a3ca4a2c6eb2a59bd6136b5cbaed0cb2e 100644 (file)
@@ -25,6 +25,7 @@ static struct mask_map mask_maps[] = {
        DECLARE_MASK_MAP(PC),
        DECLARE_MASK_MAP(AHEAD),
        DECLARE_MASK_MAP(META),
+       DECLARE_MASK_MAP(DISCARD),
 };
 
 int find_mask_map(char *string)
index 364f27c50f7f96d051a9e151869d7d9dcc127e02..83a85049e8d9308918bb9104cd8b1ab927b4bcef 100644 (file)
@@ -57,9 +57,12 @@ static inline void fill_rwbs(char *rwbs, struct blk_io_trace *t)
        int b = t->action & BLK_TC_ACT(BLK_TC_BARRIER);
        int s = t->action & BLK_TC_ACT(BLK_TC_SYNC);
        int m = t->action & BLK_TC_ACT(BLK_TC_META);
+       int d = t->action & BLK_TC_ACT(BLK_TC_DISCARD);
        int i = 0;
 
-       if (w)
+       if (d)
+               rwbs[i++] = 'D';
+       else if (w)
                rwbs[i++] = 'W';
        else if (t->bytes)
                rwbs[i++] = 'R';
index 82a435ed1bf942086bd41e883f1b0e93b7a77e5d..984dbffcddf66bc191154360fc323f4f2efaadec 100644 (file)
@@ -49,6 +49,7 @@ static struct trace_info traces[] = {
        TRACE_TO_STRING( BLK_TC_PC ),
        TRACE_TO_STRING( BLK_TC_AHEAD ),
        TRACE_TO_STRING( BLK_TC_META ),
+       TRACE_TO_STRING( BLK_TC_DISCARD ),
 };
 #define N_TRACES (sizeof(traces) / sizeof(struct trace_info))
 
index 67720deedf47a973d36210efd28f88ce7808be12..992850c06e76542980708040d83f7428bf7d7acb 100644 (file)
@@ -20,6 +20,7 @@ enum {
        BLK_TC_NOTIFY   = 1 << 10,      /* special message */
        BLK_TC_AHEAD    = 1 << 11,      /* readahead */
        BLK_TC_META     = 1 << 12,      /* metadata */
+       BLK_TC_DISCARD  = 1 << 13,      /* discard requests */
 
        BLK_TC_END      = 1 << 15,      /* only 16-bits, reminder */
 };