blktrace: fix wrong calculation of RWBS
Impact: fix the output of IO type category characters Trace categories are the upper 16 bits, not the lower 16 bits. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Jens Axboe <jens.axboe@oracle.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> LKML-Reference: <49C89432.8010805@cn.fujitsu.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
e4955c9986
commit
65796348e0
@ -922,23 +922,24 @@ static void blk_unregister_tracepoints(void)
|
|||||||
static void fill_rwbs(char *rwbs, const struct blk_io_trace *t)
|
static void fill_rwbs(char *rwbs, const struct blk_io_trace *t)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
int tc = t->action >> BLK_TC_SHIFT;
|
||||||
|
|
||||||
if (t->action & BLK_TC_DISCARD)
|
if (tc & BLK_TC_DISCARD)
|
||||||
rwbs[i++] = 'D';
|
rwbs[i++] = 'D';
|
||||||
else if (t->action & BLK_TC_WRITE)
|
else if (tc & BLK_TC_WRITE)
|
||||||
rwbs[i++] = 'W';
|
rwbs[i++] = 'W';
|
||||||
else if (t->bytes)
|
else if (t->bytes)
|
||||||
rwbs[i++] = 'R';
|
rwbs[i++] = 'R';
|
||||||
else
|
else
|
||||||
rwbs[i++] = 'N';
|
rwbs[i++] = 'N';
|
||||||
|
|
||||||
if (t->action & BLK_TC_AHEAD)
|
if (tc & BLK_TC_AHEAD)
|
||||||
rwbs[i++] = 'A';
|
rwbs[i++] = 'A';
|
||||||
if (t->action & BLK_TC_BARRIER)
|
if (tc & BLK_TC_BARRIER)
|
||||||
rwbs[i++] = 'B';
|
rwbs[i++] = 'B';
|
||||||
if (t->action & BLK_TC_SYNC)
|
if (tc & BLK_TC_SYNC)
|
||||||
rwbs[i++] = 'S';
|
rwbs[i++] = 'S';
|
||||||
if (t->action & BLK_TC_META)
|
if (tc & BLK_TC_META)
|
||||||
rwbs[i++] = 'M';
|
rwbs[i++] = 'M';
|
||||||
|
|
||||||
rwbs[i] = '\0';
|
rwbs[i] = '\0';
|
||||||
|
Loading…
Reference in New Issue
Block a user