summaryrefslogtreecommitdiffstats
path: root/testsuite/systemtap.examples/thread-times.stp
blob: 1aeb2037aa31b36b62ecd5ef450a574254aba817 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#! /usr/bin/stap

probe timer.profile {
   tid=tid()
   if (!user_mode())
      kticks[tid] <<< 1
   else
      uticks[tid] <<< 1
   ticks <<< 1
   tids[tid] <<< 1
}

global uticks, kticks, ticks

global tids

probe timer.s(5), end {
   allticks = @count(ticks)
   printf ("%5s %7s %7s (of %d ticks)\n", "tid", "%user", "%kernel", allticks)
   foreach (tid in tids- limit 20) {
     uscaled = @count(uticks[tid])*10000/allticks
     kscaled = @count(kticks[tid])*10000/allticks
     printf ("%5d %3d.%02d%% %3d.%02d%%\n",
       tid, uscaled/100, uscaled%100, kscaled/100, kscaled%100)
   }
   printf("\n")

   delete uticks
   delete kticks
   delete ticks
   delete tids
}