DECLARE_MASK_MAP(COMPLETE),
DECLARE_MASK_MAP(FS),
DECLARE_MASK_MAP(PC),
+ DECLARE_MASK_MAP(AHEAD),
};
int find_mask_map(char *string)
static inline void fill_rwbs(char *rwbs, struct blk_io_trace *t)
{
int w = t->action & BLK_TC_ACT(BLK_TC_WRITE);
+ int a = t->action & BLK_TC_ACT(BLK_TC_AHEAD);
int b = t->action & BLK_TC_ACT(BLK_TC_BARRIER);
int s = t->action & BLK_TC_ACT(BLK_TC_SYNC);
int i = 0;
rwbs[i++] = 'W';
else
rwbs[i++] = 'R';
+ if (a)
+ rwbs[i++] = 'A';
if (b)
rwbs[i++] = 'B';
if (s)
TRACE_TO_STRING( BLK_TC_ISSUE ),
TRACE_TO_STRING( BLK_TC_COMPLETE ),
TRACE_TO_STRING( BLK_TC_FS ),
- TRACE_TO_STRING( BLK_TC_PC )
+ TRACE_TO_STRING( BLK_TC_PC ),
+ TRACE_TO_STRING( BLK_TC_AHEAD ),
};
#define N_TRACES (sizeof(traces) / sizeof(struct trace_info))
BLK_TC_READ = 1 << 0, /* reads */
BLK_TC_WRITE = 1 << 1, /* writes */
BLK_TC_BARRIER = 1 << 2, /* barrier */
- BLK_TC_SYNC = 1 << 3, /* barrier */
+ BLK_TC_SYNC = 1 << 3, /* sync */
BLK_TC_QUEUE = 1 << 4, /* queueing/merging */
BLK_TC_REQUEUE = 1 << 5, /* requeueing */
BLK_TC_ISSUE = 1 << 6, /* issue */
BLK_TC_FS = 1 << 8, /* fs requests */
BLK_TC_PC = 1 << 9, /* pc requests */
BLK_TC_NOTIFY = 1 << 10, /* special message */
+ BLK_TC_AHEAD = 1 << 11, /* readahead */
BLK_TC_END = 1 << 15, /* only 16-bits, reminder */
};