• Li Zefan's avatar
    blktrace: fix context-info when mixed-using blk tracer and trace events · f3948f88
    Li Zefan authored
    When current tracer is set to blk tracer, TRACE_ITER_CONTEXT_INFO is
    unset, but actually context-info is printed:
    
        pdflush-431   [000]   821.181576:   8,0    P   N [pdflush]
    
    And then if we enable TRACE_ITER_CONTEXT_INFO:
    
        # echo context-info > trace_options
    
    We'll see context-info printed twice. What's worse, when we use blk
    tracer and trace events at the same time, we'll see no context-info
    for trace events at all:
    
        jbd2_commit_logging: dev dm-0:8 transaction 333227
        jbd2_end_commit: dev dm-0:8 transaction 333227 head 332814
          rm-25433 [001]  9578.307485:   8,18   m   N cfq25433 slice expired t=0
          rm-25433 [001]  9578.307486:   8,18   m   N cfq25433 put_queue
    
    This patch adds blk_tracer->set_flags(), and context-info flag is unset
    only when we set the output to classic mode.
    
    Note after this patch, one should unset context-info explicitly if he
    wants to get binary output that can be parsed by blkparse:
    
        # echo nocontext-info > trace_options
        # echo bin > trace_options
        # echo blk > current_tracer
        # cat trace_pipe | blkparse -i -
    Reported-by: default avatarTheodore Ts'o <tytso@mit.edu>
    Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
    Cc: Jens Axboe <jens.axboe@oracle.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    LKML-Reference: <49E54E60.50408@cn.fujitsu.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    f3948f88
blktrace.c 38.6 KB