• Tao Ma's avatar
    blktrace: Don't output messages if NOTIFY isn't set. · 490da40d
    Tao Ma authored
    Now if we enable blktrace, cfq has too many messages output to the
    trace buffer. It is fine if we don't specify any action mask.
    But if I do like this:
    blktrace /dev/sdb -a issue -a complete -o - | blkparse -i -
    I only want to see 'D' and 'C', while with the following command
    dd if=/mnt/ocfs2/test of=/dev/null bs=4k count=1 iflag=direct
    
    I will get(with a 2.6.37 vanilla kernel):
      8,16   0        0     0.000000000     0  m   N cfq3805 alloced
      8,16   0        0     0.000004126     0  m   N cfq3805 insert_request
      8,16   0        0     0.000004884     0  m   N cfq3805 add_to_rr
      8,16   0        0     0.000008417     0  m   N cfq workload slice:300
      8,16   0        0     0.000009557     0  m   N cfq3805 set_active wl_prio:0 wl_type:2
      8,16   0        0     0.000010640     0  m   N cfq3805 fifo=          (null)
      8,16   0        0     0.000011193     0  m   N cfq3805 dispatch_insert
      8,16   0        0     0.000012221     0  m   N cfq3805 dispatched a request
      8,16   0        0     0.000012802     0  m   N cfq3805 activate rq, drv=1
      8,16   0        1     0.000013181  3805  D   R 114759 + 8 [dd]
      8,16   0        2     0.000164244     0  C   R 114759 + 8 [0]
      8,16   0        0     0.000167997     0  m   N cfq3805 complete rqnoidle 0
      8,16   0        0     0.000168782     0  m   N cfq3805 set_slice=100
      8,16   0        0     0.000169874     0  m   N cfq3805 arm_idle: 8 group_idle: 0
      8,16   0        0     0.000170189     0  m   N cfq schedule dispatch
      8,16   0        0     0.000397938     0  m   N cfq3805 slice expired t=0
      8,16   0        0     0.000399763     0  m   N cfq3805 sl_used=1 disp=1 charge=1 iops=0 sect=8
      8,16   0        0     0.000400227     0  m   N cfq3805 del_from_rr
      8,16   0        0     0.000400882     0  m   N cfq3805 put_queue
    
    See, there are 19 lines while I only need 2. I don't think it is
    appropriate for a user.
    
    So this patch will disable any messages if the BLK_TC_NOTIFY isn't set.
    Now the output for the same command will look like:
      8,16   0        1     0.000000000  4908  D   R 114759 + 8 [dd]
      8,16   0        2     0.000146827     0  C   R 114759 + 8 [0]
    
    Yes, it is what I want to see.
    
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Jeff Moyer <jmoyer@redhat.com>
    Signed-off-by: default avatarTao Ma <boyu.mt@taobao.com>
    Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
    490da40d
blktrace.c 42.7 KB