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

The following is an example of running php_calltime.d and tracing the elapsed
times for functions.

We run php_calltime.d while running the program Code/Php/func_abc.php.  We can
see that there are three sections in the DTrace output

# php_calltime.d
Tracing... Hit Ctrl-C to end.
^C

Count,
   FILE                 TYPE       NAME                                COUNT
   func_abc.php         func       func_a                                  1
   func_abc.php         func       func_b                                  1
   func_abc.php         func       func_c                                  1
   func_abc.php         func       sleep                                   3
   -                    total      -                                       6

Exclusive function elapsed times (us),
   FILE                 TYPE       NAME                                TOTAL
   func_abc.php         func       func_c                                330
   func_abc.php         func       func_b                                367
   func_abc.php         func       func_a                                418
   func_abc.php         func       sleep                             3025644
   -                    total      -                                 3026761

Inclusive function elapsed times (us),
   FILE                 TYPE       NAME                                TOTAL
   func_abc.php         func       func_c                            1010119
   func_abc.php         func       func_b                            2020118
   func_abc.php         func       sleep                             3025644
   func_abc.php         func       func_a                            3026761

Section 1 - Count shows us how many times each function was called in the
Code/Php/func_abc.php program, with the last line giving us a total number of
functions called (in this case, six).

Section 2 - These elapsed times shows us how many microseconds the program 
spends in each function.  This does not include the time spent in any 
sub-functions called by that particular function.  Again the last line gives
us the total time in microseconds.

Section 3 - These elapsed times are the absolute time from when the function began to
when it completed - which includes off-CPU time due to other system events
such as I/O, scheduling, interrupts, etc. In particular, for this case it has
included the time waiting for the sleep commands.

Elapsed times are useful for identifying where latencies are.
See Notes/ALLelapsed_notes.txt for more details. Also see
Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
detailed explanation of exclusive vs inclusive function time.