@@ -11,71 +11,78 @@ string reasons[int];
1111
1212dtrace :::BEGIN
1313{
14- reasons [0 ] = "EXCEPTION" ;
15- reasons [1 ] = "EXT_INTR" ;
16- reasons [2 ] = "TRIPLE_FAULT" ;
17- reasons [3 ] = "INIT" ;
18- reasons [4 ] = "SIPI" ;
19- reasons [5 ] = "IO_SMI" ;
20- reasons [6 ] = "SMI" ;
21- reasons [7 ] = "INTR_WINDOW" ;
22- reasons [8 ] = "NMI_WINDOW" ;
23- reasons [9 ] = "TASK_SWITCH" ;
24- reasons [10 ] = "CPUID" ;
25- reasons [11 ] = "GETSEC" ;
26- reasons [12 ] = "HLT" ;
27- reasons [13 ] = "INVD" ;
28- reasons [14 ] = "INVLPG" ;
29- reasons [15 ] = "RDPMC" ;
30- reasons [16 ] = "RDTSC" ;
31- reasons [17 ] = "RSM" ;
32- reasons [18 ] = "VMCALL" ;
33- reasons [19 ] = "VMCLEAR" ;
34- reasons [20 ] = "VMLAUNCH" ;
35- reasons [21 ] = "VMPTRLD" ;
36- reasons [22 ] = "VMPTRST" ;
37- reasons [23 ] = "VMREAD" ;
38- reasons [24 ] = "VMRESUME" ;
39- reasons [25 ] = "VMWRITE" ;
40- reasons [26 ] = "VMXOFF" ;
41- reasons [27 ] = "VMXON" ;
42- reasons [28 ] = "CR_ACCESS" ;
43- reasons [29 ] = "DR_ACCESS" ;
44- reasons [30 ] = "INOUT" ;
45- reasons [31 ] = "RDMSR" ;
46- reasons [32 ] = "WRMSR" ;
47- reasons [33 ] = "INVAL_VMCS" ;
48- reasons [34 ] = "INVAL_MSR" ;
49- reasons [36 ] = "MWAIT" ;
50- reasons [37 ] = "MTF" ;
51- reasons [39 ] = "MONITOR" ;
52- reasons [40 ] = "PAUSE" ;
53- reasons [41 ] = "MCE_DURING_ENTRY" ;
54- reasons [43 ] = "TPR" ;
55- reasons [44 ] = "APIC_ACCESS" ;
56- reasons [45 ] = "VIRTUALIZED_EOI" ;
57- reasons [46 ] = "GDTR_IDTR" ;
58- reasons [47 ] = "LDTR_TR" ;
59- reasons [48 ] = "EPT_FAULT" ;
60- reasons [49 ] = "EPT_MISCONFIG" ;
61- reasons [50 ] = "INVEPT" ;
62- reasons [51 ] = "RDTSCP" ;
63- reasons [52 ] = "VMX_PREEMPT" ;
64- reasons [53 ] = "INVVPID" ;
65- reasons [54 ] = "WBINVD" ;
66- reasons [55 ] = "XSETBV" ;
67- reasons [56 ] = "APIC_WRITE" ;
14+ start = timestamp ;
6815
69- printf ("Tracing... Hit Ctrl-C to end.\n" );
16+ reasons [0 ] = "EXCEPTION" ;
17+ reasons [1 ] = "EXT_INTR" ;
18+ reasons [2 ] = "TRIPLE_FAULT" ;
19+ reasons [3 ] = "INIT" ;
20+ reasons [4 ] = "SIPI" ;
21+ reasons [5 ] = "IO_SMI" ;
22+ reasons [6 ] = "SMI" ;
23+ reasons [7 ] = "INTR_WINDOW" ;
24+ reasons [8 ] = "NMI_WINDOW" ;
25+ reasons [9 ] = "TASK_SWITCH" ;
26+ reasons [10 ] = "CPUID" ;
27+ reasons [11 ] = "GETSEC" ;
28+ reasons [12 ] = "HLT" ;
29+ reasons [13 ] = "INVD" ;
30+ reasons [14 ] = "INVLPG" ;
31+ reasons [15 ] = "RDPMC" ;
32+ reasons [16 ] = "RDTSC" ;
33+ reasons [17 ] = "RSM" ;
34+ reasons [18 ] = "VMCALL" ;
35+ reasons [19 ] = "VMCLEAR" ;
36+ reasons [20 ] = "VMLAUNCH" ;
37+ reasons [21 ] = "VMPTRLD" ;
38+ reasons [22 ] = "VMPTRST" ;
39+ reasons [23 ] = "VMREAD" ;
40+ reasons [24 ] = "VMRESUME" ;
41+ reasons [25 ] = "VMWRITE" ;
42+ reasons [26 ] = "VMXOFF" ;
43+ reasons [27 ] = "VMXON" ;
44+ reasons [28 ] = "CR_ACCESS" ;
45+ reasons [29 ] = "DR_ACCESS" ;
46+ reasons [30 ] = "INOUT" ;
47+ reasons [31 ] = "RDMSR" ;
48+ reasons [32 ] = "WRMSR" ;
49+ reasons [33 ] = "INVAL_VMCS" ;
50+ reasons [34 ] = "INVAL_MSR" ;
51+ reasons [36 ] = "MWAIT" ;
52+ reasons [37 ] = "MTF" ;
53+ reasons [39 ] = "MONITOR" ;
54+ reasons [40 ] = "PAUSE" ;
55+ reasons [41 ] = "MCE_DURING_ENTRY" ;
56+ reasons [43 ] = "TPR" ;
57+ reasons [44 ] = "APIC_ACCESS" ;
58+ reasons [45 ] = "VIRTUALIZED_EOI" ;
59+ reasons [46 ] = "GDTR_IDTR" ;
60+ reasons [47 ] = "LDTR_TR" ;
61+ reasons [48 ] = "EPT_FAULT" ;
62+ reasons [49 ] = "EPT_MISCONFIG" ;
63+ reasons [50 ] = "INVEPT" ;
64+ reasons [51 ] = "RDTSCP" ;
65+ reasons [52 ] = "VMX_PREEMPT" ;
66+ reasons [53 ] = "INVVPID" ;
67+ reasons [54 ] = "WBINVD" ;
68+ reasons [55 ] = "XSETBV" ;
69+ reasons [56 ] = "APIC_WRITE" ;
70+
71+ printf ("Tracing... Hit Ctrl-C to end.\n" );
7072}
7173
7274hyperkit$target :::vmx - exit
7375{
74- @num [reasons [arg1 ], arg0 ] = count ();
76+ @num [reasons [arg1 ], arg0 ] = count ();
7577}
7678
7779dtrace :::END
7880{
79- printf ("%16s %-4s %8s\n" , "REASON" , "vCPU" , "COUNT" );
80- printa ("%16s %-4d %@8d\n" , @num );
81+ #ifdef TOTAL
82+ printf ("%16s %-4s %8s\n" , "REASON" , "vCPU" , "COUNT" );
83+ #else
84+ printf ("%16s %-4s %8s\n" , "REASON" , "vCPU" , "RATE (1/s)" );
85+ normalize (@num , (timestamp - start ) / 1000000000 );
86+ #endif
87+ printa ("%16s %-4d %@8d\n" , @num );
8188}
0 commit comments