Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

This is a demonstration of the dispqlen.d script,


Here we run it on a single CPU desktop,

   # dispqlen.d
   Sampling... Hit Ctrl-C to end.
   ^C
    CPU 0
              value  ------------- Distribution ------------- count
                < 0 |                                         0
                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@    1790
                  1 |@@@                                      160
                  2 |                                         10
                  3 |                                         0

The output shows the length of the dispatcher queue is mostly 0. This is
evidence that the CPU is not very saturated. It does not indicate that the
CPU is idle - as we are measuring the length of the queue, not what is
on the CPU.



Here it is run on a multi CPU server,

   # dispqlen.d
   Sampling... Hit Ctrl-C to end.
   ^C
    CPU 1
              value  ------------- Distribution ------------- count
                < 0 |                                         0
                  0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1573
                  1 |@@@@@@@@@                                436
                  2 |                                         4
                  3 |                                         0
   
    CPU 4
              value  ------------- Distribution ------------- count
                < 0 |                                         0
                  0 |@@@@@@@@@@@@@@@@@@@@@@                   1100
                  1 |@@@@@@@@@@@@@@@@@@                       912
                  2 |                                         1
                  3 |                                         0
   
    CPU 0
              value  ------------- Distribution ------------- count
                < 0 |                                         0
                  0 |@@@@@@@@@@@@@@@@@                        846
                  1 |@@@@@@@@@@@@@@@@@@@@@@@                  1167
                  2 |                                         0
   
    CPU 5
              value  ------------- Distribution ------------- count
                < 0 |                                         0
                  0 |@@@@@@@@                                 397
                  1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@          1537
                  2 |@@                                       79
                  3 |                                         0

The above output shows that threads are queueing up on CPU 5 much more than
CPU 0.