Demonstrations of wqlat, the Linux eBPF/bcc version.

This tool traces  work's waiting on workqueue, and records the distribution
of work's queuing latency (time), printing this as a histogram when Ctrl-C 
is hit.

For example:

./wqlat 
Tracing work queue request latency time... Hit Ctrl-C to end.
^C
     usecs               : count     distribution
         0 -> 1          : 530      |***************************             |
         2 -> 3          : 775      |****************************************|
         4 -> 7          : 387      |*******************                     |
         8 -> 15         : 194      |**********                              |
        16 -> 31         : 62       |***                                     |
        32 -> 63         : 10       |                                        |
        64 -> 127        : 2        |                                        |
       128 -> 255        : 0        |                                        |
       256 -> 511        : 0        |                                        |
       512 -> 1023       : 0        |                                        |
      1024 -> 2047       : 0        |                                        |
      2048 -> 4095       : 0        |                                        |
      4096 -> 8191       : 1        |                                        |

This example shows all kernel's work waiting latlency on workqueue. The range
of latency is from 1 millisecond to 8192 milliseconds(8ms). The bulk of
waiting latency is between 1us and 32us.The highest latency seen while tracing
is between 4 and 8 ms:the last row printed, for which there is 1 work

We can also specify the per workqueue option (-W), along with interval
and count parameters. Eg, printing out every 1 second, and including 
timestamps(-T):

./wqlat -T -W 1 2
Tracing work queue request latency time... Hit Ctrl-C to end.

06:14:55

wqname = xfs-cil/dm-4
     usecs               : count     distribution
         0 -> 1          : 0        |                                        |
         2 -> 3          : 1        |****************************************|
         4 -> 7          : 1        |****************************************|
         8 -> 15         : 1        |****************************************|
[...]

06:14:56

wqname = events_power_efficient
     usecs               : count     distribution
         0 -> 1          : 0        |                                        |
         2 -> 3          : 0        |                                        |
         4 -> 7          : 2        |**************************              |
         8 -> 15         : 3        |****************************************|
        16 -> 31         : 1        |*************                           |
[...]

An tracing one workqueue (-w) can be specified, along with interval
and count. Eg, printing output every 1 second, and including Timestamps(-T)
and workqueue nvmet_tcp_wq:

./wqlat -T -w nvmet_tcp_wq 1 2 
Tracing work queue request latency time... Hit Ctrl-C to end.

06:18:03
     usecs               : count     distribution
         0 -> 1          : 245      |*************************               |
         2 -> 3          : 377      |****************************************|
         4 -> 7          : 76       |********                                |
         8 -> 15         : 29       |***                                     |
        16 -> 31         : 8        |                                        |
        32 -> 63         : 5        |                                        |

06:18:04
     usecs               : count     distribution
         0 -> 1          : 547      |**********************************      |
         2 -> 3          : 629      |****************************************|
         4 -> 7          : 83       |*****                                   |
         8 -> 15         : 23       |*                                       |
        16 -> 31         : 5        |                                        |
        32 -> 63         : 4        |                                        |

USAGE message:

./wqlat -h
usage: wqlat [-h] [-T] [-N] [-W] [-w WQNAME] [interval] [count]

Summarize workqueue request latency as histograms.

positional arguments:
  interval              output interval, in seconds
  count                 number of outputs

optional arguments:
  -h, --help            show this help message and exit
  -T, --timestamp       include timestamp on output
  -N, --nanoseconds     output in nanoseconds
  -W, --workqueues      print a histogram per work queue
  -w WQNAME, --wqname WQNAME
                        print this workqueue only

examples:
    ./wqlat                   # summarize workqueue latency as a histogram
    ./wqlat 1 10              # print 1 second summaries, 10 times
    ./wqlat -W 1 10           # print 1 second, 10 times per workqueue
    ./wqlat -NT 1             # 1s summaries, nanoseconds, and timestamps
    ./wqlat -w nvmet_tcp_wq 1 # 1s summaries for workqueue nvmet_tcp_wq
