xref: /plan9-contrib/sys/src/cmd/ptrace/guide (revision af198995f3f1f1d87a386835b2bcd15ca90a6fed)
1*af198995SDavid du ColombierExample from T.txt (mk all)
2*af198995SDavid du Colombiertrace for pid 195
3*af198995SDavid du Colombier>awk '$2 == 195'
4*af198995SDavid du Colombier
5*af198995SDavid du Colombiernumber of page faults
6*af198995SDavid du Colombier>awk '$2 == 195 && $6 == "pfault"' | wc -l
7*af198995SDavid du Colombier500
8*af198995SDavid du Colombier
9*af198995SDavid du Colombiernumber of sleeps
10*af198995SDavid du Colombier>awk '$2 == 195 && $5 == "Sleep"' | wc -l
11*af198995SDavid du Colombier197
12*af198995SDavid du Colombier
13*af198995SDavid du Colombiernumber of core switches
14*af198995SDavid du Colombierawk 'BEGIN{nsw = 0; last = -3;}
15*af198995SDavid du Colombier	$2 == 195 {if($3 != last) nsw++; last=$3}
16*af198995SDavid du Colombier	END{print nsw}' <T.txt
17*af198995SDavid du Colombier217
18*af198995SDavid du Colombier
19*af198995SDavid du Colombiernumber of acpi domain switches
20*af198995SDavid du Colombierawk 'BEGIN{nsw = 0; last = -3;}
21*af198995SDavid du Colombier	$2 == 195 {if($3%8 != last%8) nsw++; last=$3}
22*af198995SDavid du Colombier	END{print nsw}' <T.txt
23*af198995SDavid du Colombier188
24*af198995SDavid du Colombier
25*af198995SDavid du Colombiertimes from ready to run
26*af198995SDavid du Colombierawk 'BEGIN{nsw = 0; last = -3;}
27*af198995SDavid du Colombier	$2 != 195 {next}
28*af198995SDavid du Colombier	$6 == "Ready" {stime = $0; ln = NR}
29*af198995SDavid du Colombier	$6 == "Run" {if(stime) print $0 - stime, ln, NR; stime = 0} ' <ptrace.out |
30*af198995SDavid du Colombier sort -nr
31*af198995SDavid du Colombier69695 T.txt:918 930
32*af198995SDavid du Colombier43670 15110 15111
33*af198995SDavid du Colombier38796 324 325
34*af198995SDavid du Colombier36930 2172 2173
35*af198995SDavid du Colombier
36*af198995SDavid du Colombierwhich gives
37*af198995SDavid du Colombier  0s 287m 326µ 512n     195 00 mk   Ready  Ready     	4 287326512 0x0
38*af198995SDavid du Colombier  0s 287m 370µ 182n     195 21 mk   Run    Run       	3 287370182 0x0
39*af198995SDavid du Colombieras the top.
40*af198995SDavid du Colombieri.e. core 0 makes it ready, and core 21 picks it 69.695µs laters.
41*af198995SDavid du Colombier
42*af198995SDavid du Colombiertimes for sleeps, and line numbers in the trace for the sleep and wakeup
43*af198995SDavid du Colombiersorted
44*af198995SDavid du Colombierawk 'BEGIN{nsw = 0; last = -3;}
45*af198995SDavid du Colombier	$2 != 195 {next}
46*af198995SDavid du Colombier	$5 == "Sleep" {stime = $0; ln = NR}
47*af198995SDavid du Colombier	$5 == "Ready" {print $0 - stime, ln, NR} ' <T.txt | sort -nr
48*af198995SDavid du Colombier
49*af198995SDavid du ColombierThis gives:
50*af198995SDavid du Colombier381601037 15175 19811
51*af198995SDavid du Colombier140216350 10518 15064
52*af198995SDavid du Colombier58225471 6569 9619
53*af198995SDavid du Colombier...
54*af198995SDavid du Colombier
55*af198995SDavid du Colombierwhich is
56*af198995SDavid du Colombier  0s 288m 716µ 164n     195 03 mk   Sleep      await    ...
57*af198995SDavid du Colombier  0s 288m 717µ 848n     195 03 mk   Sleep      Wakeme pc 0xfffffff017e1ac ...
58*af198995SDavid du Colombier
59*af198995SDavid du ColombierThus most of the time it's waiting for children, as expected.
60