aboutsummaryrefslogtreecommitdiff
path: root/cddl/contrib/dtracetoolkit/Examples
diff options
context:
space:
mode:
Diffstat (limited to 'cddl/contrib/dtracetoolkit/Examples')
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/Copyright1
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/Readme21
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt73
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt74
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/connections_example.txt23
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt276
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt210
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt40
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt85
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/crash_example.txt68
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt23
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt25
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt71
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt215
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt95
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt107
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt62
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt47
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt88
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt40
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt120
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt91
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt90
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt78
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/fddist_example.txt38
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt27
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt32
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt129
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/guess_example.txt39
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt153
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt34
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt107
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt36
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt29
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt11
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt93
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt18
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/iofile_example.txt35
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt23
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt57
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/iopending_example.txt126
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt39
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/iotop_example.txt142
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt247
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt137
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt67
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt89
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt252
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt75
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_events_example.txt134
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt1292
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt1287
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt999
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt1460
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_package_example.txt44
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt209
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt33
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt165
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt1550
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt20
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/j_who_example.txt17
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt110
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt312
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt60
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt112
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt69
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt15
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt41
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt42
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt42
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt317
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt230
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt100
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt35
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/js_who_example.txt59
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/kill_example.txt12
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt1358
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt81
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/loads_example.txt19
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt114
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt42
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt20
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt14
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt109
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt47
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/newproc_example.txt19
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt67
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt307
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt110
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt32
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt200
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt14
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt13
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt84
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt51
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt84
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt58
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt36
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt40
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt41
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt17
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt23
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt22
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt63
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/php_who_example.txt10
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt33
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt456
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt150
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt470
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt151
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt179
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt188
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt199
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt79
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt53
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt50
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt183
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt41
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/priclass_example.txt82
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/pridist_example.txt238
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt149
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt520
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt966
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt255
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt966
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt262
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt485
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt485
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt487
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt89
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt508
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt314
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt399
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt129
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt584
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/py_who_example.txt34
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt153
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt29
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt77
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt199
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt81
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt54
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt54
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt56
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt25
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt30
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt120
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt51
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt21
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt22
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt54
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt331
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt20
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt22
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/readdist_example.txt35
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt94
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt82
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/runocc_example.txt53
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt26
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt19
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt37
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt98
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt59
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt62
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt55
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt197
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/setuids_example.txt28
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt309
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt60
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt144
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt92
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt131
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt129
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt242
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt131
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt32
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt574
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt44
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt59
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt328
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt45
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt45
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt112
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt57
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt18
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt87
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt94
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt22
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt45
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt50
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt17
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt24
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt166
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt41
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt61
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt164
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt67
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt195
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt197
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt46
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt997
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt17
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt29
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt24
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt66
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt563
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt17
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt41
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt61
l---------cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt1
l---------cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt1
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt22
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt28
l---------cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt1
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt70
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/threaded_example.txt108
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt65
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt56
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt39
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt15
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt32
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt51
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt45
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt89
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt127
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt18
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/woof_example.txt28
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/wpm_example.txt57
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt26
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/writedist_example.txt38
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt17
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt44
-rw-r--r--cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt34
233 files changed, 34002 insertions, 0 deletions
diff --git a/cddl/contrib/dtracetoolkit/Examples/Copyright b/cddl/contrib/dtracetoolkit/Examples/Copyright
new file mode 100644
index 000000000000..d802fe9086b4
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/Copyright
@@ -0,0 +1 @@
+The examples in this directory are copyright to their author.
diff --git a/cddl/contrib/dtracetoolkit/Examples/Readme b/cddl/contrib/dtracetoolkit/Examples/Readme
new file mode 100644
index 000000000000..762a3312abf8
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/Readme
@@ -0,0 +1,21 @@
+Examples - Script demos, screenshots, and how to read the output
+
+ This directory contains an example file per script in the DTraceToolkit.
+
+ When I hear of a new performance tool or what not, the first thing I want
+ to see are screenshots. They illustrate,
+
+ - generally what the tool is for
+ - many details and features, since the output is (supposed to be)
+ as intuitive as possible
+ - how to use the tool (command line usage)
+
+ It is a rapid way to get a handle on what a tool generally is, and how
+ to start using it. The files in this directory serve that purpose.
+
+ These are especially important now that the DTraceToolkit has over 200
+ scripts. Flicking through these files and seeing the screenshots may
+ be the quickest way to find what you are after.
+
+ Of course, don't forget to read the man pages and notes files too :)
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt b/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt
new file mode 100644
index 000000000000..b505f3d1596f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt
@@ -0,0 +1,73 @@
+The following is a demonstration of the anonpgpid.d script,
+
+
+Here we run it on a system that is implementing memory caps using the
+resource capping daemon, "rcapd",
+
+ # anonpgpid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD D BYTES
+ 6215 bash R 8192
+ 6215 bash W 126976
+ 5809 rcapd R 245760
+ 6222 memleak.pl R 974848
+ 6222 memleak.pl W 3055616
+
+The "memleak.pl" process consumes memory, and we can see above that it has
+encountered both reads and writes to the physical swap device - it is being
+paged out. A bash shell was also effected (which was in the same project that
+rcapd was monitoring).
+
+
+
+The following is an ordinary system that is very low on memory,
+
+ # anonpgpid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD D BYTES
+ 18885 sendmail R 4096
+ 18600 automountd R 4096
+ 1 init R 4096
+ 2456 inetd R 8192
+ 18546 nscd R 8192
+ 2400 bash R 12288
+ 217 utmpd R 28672
+ 221 ttymon R 32768
+ 210 sac R 36864
+ 18777 snmpd R 49152
+ 18440 init R 49152
+ 89 nscd R 61440
+ 318 syslogd R 73728
+ 487 snmpd R 81920
+ 2453 inetd R 102400
+ 165 in.routed R 131072
+ 294 automountd R 135168
+ 215 inetd R 135168
+ 187 rpcbind R 204800
+ 86 kcfd R 290816
+ 7 svc.startd R 1015808
+ 9 svc.configd R 1478656
+ 2 pageout W 23453696
+
+The "pageout" process is responsible for writing all the anonymous memory
+pages to the physical swap device, and we can see from the above that it
+has written 23 Mb. When processes access anonymous memory that has been
+swapped out, a major fault occurs and the memory is paged back in; in this
+case we can trace the process that was effected, and from the above we can
+see that several processes have been effected by the memory pressure.
+The most is "svc.configd", which needed to page back in 1.4 Mb of anonymous
+memory.
+
+
+
+Sometimes anonpgpid.d doesn't help too much. Here we only have pageouts
+to the physical swap device and no pageins,
+
+ # anonpgpid.d
+ ^C
+ PID CMD D BYTES
+ 2 pageout W 61083648
+
+Only pageout is identified.
diff --git a/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt b/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt
new file mode 100644
index 000000000000..dcc697d5070d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt
@@ -0,0 +1,74 @@
+In this example, bitesize.d was run for several seconds then Ctrl-C was hit.
+As bitesize.d runs it records how processes on the system are accessing the
+disks - in particular the size of the I/O operation. It is usually desirable
+for processes to be requesting large I/O operations rather than taking many
+small "bites".
+
+The final report highlights how processes performed. The find command mostly
+read 1K blocks while the tar command was reading large blocks - both as
+expected.
+
+ # bitesize.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ PID CMD
+ 7110 -bash\0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ 7110 sync\0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@ 1
+ 2048 |@@@@@@@@@@ 2
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 16384 | 0
+
+ 0 sched\0
+
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@ 1
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 16384 | 0
+
+ 7109 find /\0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1452
+ 2048 |@@ 91
+ 4096 | 33
+ 8192 |@@ 97
+ 16384 | 0
+
+ 3 fsflush\0
+
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 449
+ 16384 | 0
+
+ 7108 tar cf /dev/null /\0
+
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 | 70
+ 1024 |@@@@@@@@@@ 1306
+ 2048 |@@@@ 569
+ 4096 |@@@@@@@@@ 1286
+ 8192 |@@@@@@@@@@ 1403
+ 16384 |@ 190
+ 32768 |@@@ 396
+ 65536 | 0
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/connections_example.txt b/cddl/contrib/dtracetoolkit/Examples/connections_example.txt
new file mode 100644
index 000000000000..e39d063113a8
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/connections_example.txt
@@ -0,0 +1,23 @@
+The following is an example of connections. As inbound TCP connections are
+established their details are printed out. This includes the UID, PID and
+CMD of the server process that is listening on that port,
+
+ # connections
+ UID PID CMD TYPE PORT IP_SOURCE
+ 0 242 inetd tcp 79 192.168.1.1
+ 0 359 sshd tcp 22 192.168.1.1
+ 100 1532 Xorg tcp 6000 192.168.1.1
+ ^C
+
+
+In another window snoop was running for comparison,
+
+ # snoop 'tcp[13:1] = 0x02'
+ Using device /dev/rtls0 (promiscuous mode)
+ mars -> jupiter FINGER C port=56760
+ mars -> jupiter TCP D=22 S=56761 Syn Seq=3264782212 Len=0 ...
+ mars -> jupiter XWIN C port=56763
+
+snoop can already tell me that these connections are happening - but does not
+print out details of the server that accepted the connection.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt b/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt
new file mode 100644
index 000000000000..aa8256b7b7a9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt
@@ -0,0 +1,276 @@
+The following demonstrates the cpudists program. It prints distributions
+of CPU time consumed by the Kernel, Idle thread, or Processes.
+
+Here we run cpudists for 5 seconds once,
+
+# ./cpudists 5 1
+2005 Apr 28 00:08:42,
+ KERNEL
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1134
+ 16384 |@@@@@@@@@ 344
+ 32768 |@@@ 104
+ 65536 | 3
+ 131072 | 0
+ 262144 | 1
+ 524288 | 0
+ 1048576 | 11
+ 2097152 | 0
+
+ PROCESS
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@ 170
+ 32768 |@@@@@@@@@@@@@@@@@@ 331
+ 65536 |@@@@@@@@ 152
+ 131072 |@ 17
+ 262144 |@ 25
+ 524288 |@ 13
+ 1048576 | 4
+ 2097152 | 9
+ 4194304 | 0
+
+ IDLE
+ value ------------- Distribution ------------- count
+ 2097152 | 0
+ 4194304 |@ 9
+ 8388608 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 418
+ 16777216 |@@@ 31
+ 33554432 | 0
+
+The value indicates the time in nanoseconds, the count the number of
+runs for this length.
+
+From the above, we can see the kernel has run many times - but for short
+intervals each time. Processes have taken fom 10 to 60 microseconds;
+and when the idle thread runs it runs for some time - around 8 milliseconds
+for each.
+
+
+
+
+cpudists has a "-a" option for all processes,
+
+# ./cpudists -a 5 1
+2005 Apr 28 00:17:34,
+ mapping-daemon
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 |@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ sendmail
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@ 1
+ 131072 | 0
+
+ nautilus
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@ 1
+ 131072 | 0
+
+ fmd
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@ 1
+ 131072 | 0
+
+ in.routed
+ value ------------- Distribution ------------- count
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 262144 | 0
+
+ miniserv.pl
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 | 0
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@ 1
+ 262144 | 0
+
+ xscreensaver
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@ 2
+ 131072 | 0
+
+gnome-vfs-daemon
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@ 2
+ 131072 | 0
+
+ gnome-panel
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@ 1
+ 32768 |@@@@@@@@@@@@@@@@ 2
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@@@@ 2
+ 262144 | 0
+
+ svc.startd
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 32768 |@@@@@@@@@@@ 4
+ 65536 |@@@ 1
+ 131072 | 0
+
+ nscd
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 25
+ 32768 |@ 1
+ 65536 | 0
+ 131072 |@ 1
+ 262144 | 0
+
+gnome-netstatus-
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 | 0
+ 65536 | 0
+ 131072 | 0
+ 262144 | 0
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ mixer_applet2
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@ 10
+ 32768 |@@@@@@@@@@@@@@@@@ 19
+ 65536 |@@@@@@@@@@@@@@ 16
+ 131072 | 0
+
+ soffice.bin
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@ 7
+ 32768 |@@@@@@@@@@@@@@@@@@@ 14
+ 65536 |@@@@@@@@ 6
+ 131072 | 0
+ 262144 |@@@ 2
+ 524288 | 0
+ 1048576 | 0
+ 2097152 |@ 1
+ 4194304 | 0
+
+ dtrace
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 32768 | 0
+ 65536 | 0
+ 131072 | 0
+ 262144 |@@@ 1
+ 524288 |@@@@@@@@@ 3
+ 1048576 | 0
+ 2097152 |@@@ 1
+ 4194304 | 0
+
+ Xorg
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@ 15
+ 131072 |@@@@@@@@ 6
+ 262144 |@@@@@@@@@@@@ 9
+ 524288 | 0
+
+ java_vm
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@ 101
+ 32768 |@@@@@@@@@@@@@@@@ 84
+ 65536 |@@@@ 20
+ 131072 | 0
+
+ gnome-terminal
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@ 12
+ 65536 |@@@@@@@@@@@ 8
+ 131072 |@ 1
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@ 9
+ 1048576 | 0
+
+ acroread
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 | 1
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 188
+ 65536 |@@@@@@@@ 47
+ 131072 |@@ 10
+ 262144 | 0
+
+ mozilla-bin
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@ 21
+ 32768 |@@@@@ 13
+ 65536 |@@@@@@@@@@@@@ 36
+ 131072 |@@@@@@@ 19
+ 262144 |@@@ 9
+ 524288 |@@ 5
+ 1048576 |@ 2
+ 2097152 |@@ 5
+ 4194304 | 0
+
+ KERNEL
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 1085
+ 16384 |@@@@@@@@@@@ 443
+ 32768 |@@ 98
+ 65536 | 5
+ 131072 | 1
+ 262144 | 1
+ 524288 | 0
+ 1048576 | 11
+ 2097152 | 0
+
+ fsflush
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@ 1
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 2097152 | 0
+ 4194304 | 0
+ 8388608 | 0
+ 16777216 | 0
+ 33554432 |@@@@@@@ 1
+ 67108864 | 0
+
+ IDLE
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 | 1
+ 2097152 | 0
+ 4194304 |@ 13
+ 8388608 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 411
+ 16777216 |@@@ 31
+ 33554432 | 0
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt b/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt
new file mode 100644
index 000000000000..253a7a34bd6e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt
@@ -0,0 +1,210 @@
+The following demonstrates running the cputimes program on an idle system.
+We use an interval of 1 second and a count of 3,
+
+ # ./cputimes 1 3
+ 2005 Apr 27 23:37:58,
+ THREADS TIME (ns)
+ KERNEL 10795499
+ PROCESS 20941091
+ IDLE 970707443
+ 2005 Apr 27 23:37:59,
+ THREADS TIME (ns)
+ KERNEL 8919418
+ PROCESS 77446789
+ IDLE 910555040
+ 2005 Apr 27 23:38:00,
+ THREADS TIME (ns)
+ KERNEL 8615123
+ PROCESS 78314246
+ IDLE 810100417
+
+In the above output, we can see a breakdown of CPU time into the catagories
+KERNEL, PROCESS and IDLE. The time is measured in nanoseconds. Most of the
+time is in the IDLE category, as the system is idle. Very little time
+was spent serving the kernel.
+
+
+
+
+In the following example, several programs are run to hog the CPUs,
+
+ # ./cputimes 1 3
+ 2005 Apr 27 23:40:58,
+ THREADS TIME (ns)
+ KERNEL 11398807
+ PROCESS 992254664
+ 2005 Apr 27 23:40:59,
+ THREADS TIME (ns)
+ KERNEL 9205260
+ PROCESS 987561182
+ 2005 Apr 27 23:41:00,
+ THREADS TIME (ns)
+ KERNEL 9196669
+ PROCESS 877850474
+
+Now there is no IDLE category, as the system is 100% utilised.
+The programs were the following,
+
+ while :; do :; done &
+
+which keeps the CPU busy.
+
+
+
+
+In the following example a different style of program is run to hog the CPUs,
+
+ while :; do date; done
+
+This causes many processes to be created and destroyed in a hurry, and can
+be difficult to troubleshoot (tools like prstat cannot sample quick enough
+to easily identify what is going on). The following is the cputimes output,
+
+ # ./cputimes 1 3
+ 2005 Apr 27 23:45:30,
+ THREADS TIME (ns)
+ KERNEL 192647392
+ PROCESS 835397568
+ 2005 Apr 27 23:45:31,
+ THREADS TIME (ns)
+ KERNEL 168773713
+ PROCESS 810825730
+ 2005 Apr 27 23:45:32,
+ THREADS TIME (ns)
+ KERNEL 151676122
+ PROCESS 728477272
+
+Now the kernel is doing a substantial amount of work to create and destroy
+these processes.
+
+
+
+
+In the following example, a large amount of network activity occurs while
+cputimes is running,
+
+ # ./cputimes 1 6
+ 2005 Apr 27 23:49:29,
+ THREADS TIME (ns)
+ KERNEL 10596399
+ PROCESS 21793920
+ IDLE 974395713
+ 2005 Apr 27 23:49:30,
+ THREADS TIME (ns)
+ KERNEL 251465759
+ IDLE 357436576
+ PROCESS 508986422
+ 2005 Apr 27 23:49:31,
+ THREADS TIME (ns)
+ IDLE 9758227
+ KERNEL 367645318
+ PROCESS 385427847
+ 2005 Apr 27 23:49:32,
+ THREADS TIME (ns)
+ IDLE 28351679
+ KERNEL 436022725
+ PROCESS 451304688
+ 2005 Apr 27 23:49:33,
+ THREADS TIME (ns)
+ KERNEL 262586158
+ PROCESS 325238896
+ IDLE 358243503
+ 2005 Apr 27 23:49:34,
+ THREADS TIME (ns)
+ KERNEL 10075578
+ PROCESS 238170506
+ IDLE 647956998
+
+Initially the system is idle. A command is run to cause heavy network
+activity, which peaks during the fourth sample - during which the kernel
+is using around 40% of the CPU. The Solaris 10 command "intrstat" can
+help to analyse this activity further.
+
+
+
+
+Longer samples are possible. The following is a 60 second sample,
+
+ # ./cputimes 60 1
+ 2005 Apr 27 23:53:02,
+ THREADS TIME (ns)
+ KERNEL 689808449
+ PROCESS 8529562214
+ IDLE 50406951876
+ #
+
+
+
+
+cputimes has a "-a" option to print all processes. The following is a
+single 1 second sample with -a,
+
+ # ./cputimes -a 1 1
+ 2005 Apr 28 00:00:32,
+ THREADS TIME (ns)
+ svc.startd 51042
+ nautilus 130645
+ in.routed 131823
+ fmd 152822
+ nscd 307042
+ dsdm 415799
+ mixer_applet2 551066
+ gnome-smproxy 587234
+ xscreensaver 672270
+ fsflush 1060196
+ java_vm 1552988
+ wnck-applet 2060870
+ dtrace 2398658
+ acroread 2614687
+ soffice.bin 2825117
+ mozilla-bin 5497488
+ KERNEL 13541120
+ metacity 28924204
+ gnome-terminal 74304348
+ Xorg 289631407
+ IDLE 465054209
+
+The times are in nanoseconds, and multiple processes with the same name
+have their times aggregated. The above output is at an amazing resolution -
+svc.startd ran for 51 microseconds, and soffice.bin ran for 28 milliseconds.
+
+
+
+
+The following is a 10 second sample on an idle desktop,
+
+ # ./cputimes -a 10 1
+ 2005 Apr 28 00:03:57,
+ THREADS TIME (ns)
+ snmpd 127859
+ fmd 171897
+ inetd 177134
+ svc.configd 185006
+ mapping-daemon 197674
+ miniserv.pl 305603
+ gconfd-2 330511
+ xscreensaver 443207
+ sendmail 473434
+ nautilus 506799
+ gnome-vfs-daemon 549037
+ gnome-panel 770631
+ nscd 885353
+ svc.startd 1181286
+ gnome-netstatus- 4329671
+ mixer_applet2 4833519
+ dtrace 6244366
+ in.routed 6556075
+ fsflush 9553155
+ soffice.bin 13954327
+ java_vm 16285243
+ acroread 32126193
+ gnome-terminal 34891991
+ Xorg 35553412
+ mozilla-bin 67855629
+ KERNEL 94834997
+ IDLE 9540941846
+
+Wow, maybe not as idle as I thought!
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt b/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt
new file mode 100644
index 000000000000..158a43f15875
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt
@@ -0,0 +1,40 @@
+The following are demonstrations of the cputypes.d script,
+
+
+This is running cputypes.d on a desktop,
+
+ # cputypes.d
+ CPU CHIP PSET LGRP CLOCK TYPE FPU
+ 0 0 0 0 867 i386 i387 compatible
+
+fairly boring.
+
+
+
+The following is a multi CPU x86 server,
+
+ # cputypes.d
+ CPU CHIP PSET LGRP CLOCK TYPE FPU
+ 0 0 0 0 2791 i386 i387 compatible
+ 1 3 1 0 2791 i386 i387 compatible
+ 2 0 0 0 2791 i386 i387 compatible
+ 3 3 0 0 2791 i386 i387 compatible
+
+Much more interesting! We can see from the CHIP field that there is actually
+two CPUs, each with two cores. There is also two processor sets (0, 1).
+
+The CPUs were printed in CPU id order by mere chance.
+
+
+
+Here is a multi CPU SPARC server,
+
+ # cputypes.d
+ CPU CHIP PSET LGRP CLOCK TYPE FPU
+ 0 0 0 0 400 sparcv9 sparcv9
+ 1 1 0 0 400 sparcv9 sparcv9
+ 4 4 0 0 400 sparcv9 sparcv9
+ 5 5 0 0 400 sparcv9 sparcv9
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt b/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt
new file mode 100644
index 000000000000..34afa959815e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt
@@ -0,0 +1,85 @@
+The following is a demonstration of the cpuwalk.d script,
+
+
+cpuwalk.d is not that useful on a single CPU server,
+
+ # cpuwalk.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+
+ PID: 18843 CMD: bash
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+ 1 | 0
+
+ PID: 8079 CMD: mozilla-bin
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 1 | 0
+
+The output above shows that PID 18843, "bash", was sampled on CPU 0 a total
+of 30 times (we sample at 1000 hz).
+
+
+
+The following is a demonstration of running cpuwalk.d with a 5 second
+duration. This is on a 4 CPU server running a multithreaded CPU bound
+application called "cputhread",
+
+ # cpuwalk.d 5
+ Sampling...
+
+ PID: 3 CMD: fsflush
+
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+ 3 | 0
+
+ PID: 12186 CMD: cputhread
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@ 4900
+ 1 |@@@@@@@@@@ 4900
+ 2 |@@@@@@@@@@ 4860
+ 3 |@@@@@@@@@@ 4890
+ 4 | 0
+
+As we are sampling at 1000 hz, the application cputhread is indeed running
+concurrently across all available CPUs. We measured the applicaiton on
+CPU 0 a total of 4900 times, on CPU 1 a total of 4900 times, etc. As there
+are around 5000 samples per CPU available in this 5 second 1000 hz sample,
+the application is using almost all the CPU capacity in this server well.
+
+
+
+The following is a similar demonstration, this time running a multithreaded
+CPU bound application called "cpuserial" that has a poor use of locking
+such that the threads "serialise",
+
+
+ # cpuwalk.d 5
+ Sampling...
+
+ PID: 12194 CMD: cpuserial
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@ 470
+ 1 |@@@@@@ 920
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@ 3840
+ 3 |@@@@@@ 850
+ 4 | 0
+
+In the above, we can see that this CPU bound application is not making
+efficient use of the CPU resources available, only reaching 3840 samples
+on CPU 2 out of a potential 5000. This problem was caused by a poor use
+of locks.
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/crash_example.txt b/cddl/contrib/dtracetoolkit/Examples/crash_example.txt
new file mode 100644
index 000000000000..f0034d3b74d9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/crash_example.txt
@@ -0,0 +1,68 @@
+The following is an example of the crashed application script, crash.d
+This demonstration is for version 0.80 of crash.d, newer versions may
+produce enhanced output.
+
+Here is the report generated as crash.d catches a crashing procmail process,
+
+# ./crash.d
+Waiting for crashing applications...
+
+-----------------------------------------------------
+CRASH DETECTED at 2005 May 30 19:41:34
+-----------------------------------------------------
+Type: SIGSEGV
+Program: procmail
+Args: procmail -m\0
+PID: 2877
+TID: 1
+LWPs: 1
+PPID: 1778
+UID: 100
+GID: 1
+TaskID: 76
+ProjID: 3
+PoolID: 0
+ZoneID: 0
+zone: global
+CWD: /usr/include/sys
+errno: 0
+
+User Stack Backtrace,
+ procmail`sendcomsat+0x24
+ procmail`Terminate+0x76
+ procmail`0x805a2b0
+ procmail`0x805a40f
+ libc.so.1`__sighndlr+0xf
+ libc.so.1`call_user_handler+0x22b
+ libc.so.1`sigacthandler+0xbb
+ 0xffffffff
+ procmail`rread+0x1d
+ procmail`0x805bcb4
+ procmail`read2blk+0x6b
+ procmail`readdyn+0x1f
+ procmail`readmail+0x181
+ procmail`main+0x532
+ procmail`_start+0x5d
+
+Kernel Stack Backtrace,
+ genunix`sigaddqa+0x3f
+ genunix`trapsig+0xdb
+ unix`trap+0xc2b
+ unix`_cmntrap+0x83
+
+Ansestors,
+ 2877 procmail -m\0
+ 1778 bash\0
+ 1777 xterm -bg black -fg grey70 -sl 500 -vb\0
+ 1 /sbin/init\0
+ 0 sched\0
+
+Times,
+ User: 0 ticks
+ Sys: 1 ticks
+ Elapsed: 3307 ms
+
+Sizes,
+ Heap: 16388 bytes
+ Stack: 8192 bytes
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt
new file mode 100644
index 000000000000..295e07ff2fbb
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt
@@ -0,0 +1,23 @@
+The following is an example of the creatbyproc.d script,
+
+
+Here we run creatbyproc.d for several seconds,
+
+ # ./creatbyproc.d
+ dtrace: script './creatbyproc.d' matched 2 probes
+ CPU ID FUNCTION:NAME
+ 0 5438 creat64:entry touch /tmp/newfile
+ 0 5438 creat64:entry sh /tmp/mpLaaOik
+ 0 5438 creat64:entry sh /dev/null
+ ^C
+
+In another window, the following commands were run,
+
+ touch /tmp/newfile
+ man ls
+
+The file creation activity caused by these commands can be seen in the
+output by creatbyproc.d
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt
new file mode 100644
index 000000000000..d45347c64f33
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt
@@ -0,0 +1,25 @@
+The following is an example of the cswstat.d script,
+
+ # cswstat.d
+ TIME NUM CSWTIME AVGTIME
+ 2005 May 17 01:57:21 276 2407 8
+ 2005 May 17 01:57:22 283 2251 7
+ 2005 May 17 01:57:23 259 2098 8
+ 2005 May 17 01:57:24 268 2169 8
+ 2005 May 17 01:57:25 1248 10864 8
+ 2005 May 17 01:57:26 2421 21263 8
+ 2005 May 17 01:57:27 2183 19804 9
+ 2005 May 17 01:57:28 1980 18640 9
+ 2005 May 17 01:57:29 794 7422 9
+ 2005 May 17 01:57:30 275 2233 8
+ 2005 May 17 01:57:31 288 2338 8
+ 2005 May 17 01:57:32 545 4154 7
+ 2005 May 17 01:57:33 264 2149 8
+ ^C
+
+In the above output, the average context switch time is 8 microseconds.
+During the sample there was a burst of activity, increasing the number
+of context switches per second from around 270 to over 2000. The time
+consumed by all of these context switches in total is printed, peaking
+at 21 ms.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt b/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt
new file mode 100644
index 000000000000..a2c3935939c2
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt
@@ -0,0 +1,71 @@
+The following is a demonstration of the dappprof command,
+
+This is the usage for version 0.60,
+
+ # dappprof -h
+ USAGE: dappprof [-cehoTU] [-u lib] { -p PID | command }
+
+ -p PID # examine this PID
+ -a # print all details
+ -c # print syscall counts
+ -e # print elapsed times (us)
+ -o # print on cpu times
+ -T # print totals
+ -u lib # trace this library instead
+ -U # trace all libraries + user funcs
+ -b bufsize # dynamic variable buf size
+ eg,
+ dappprof df -h # run and examine "df -h"
+ dappprof -p 1871 # examine PID 1871
+ dappprof -ap 1871 # print all data
+
+
+
+The following shows running dappprof with the "banner hello" command.
+Elapsed and on-cpu times are printed (-eo), as well as counts (-c) and
+totals (-T),
+
+ # dappprof -eocT banner hello
+
+ # # ###### # # ####
+ # # # # # # #
+ ###### ##### # # # #
+ # # # # # # #
+ # # # # # # #
+ # # ###### ###### ###### ####
+
+
+ CALL COUNT
+ __fsr 1
+ main 1
+ banprt 1
+ banner 1
+ banset 1
+ convert 5
+ banfil 5
+ TOTAL: 15
+
+ CALL ELAPSED
+ banset 37363
+ banfil 147407
+ convert 149606
+ banprt 423507
+ banner 891088
+ __fsr 1694349
+ TOTAL: 3343320
+
+ CALL CPU
+ banset 7532
+ convert 8805
+ banfil 11092
+ __fsr 15708
+ banner 48696
+ banprt 388853
+ TOTAL: 480686
+
+The above output has analysed user functions (the default). It makes it
+easy to identify which function is being called the most (COUNT), which
+is taking the most time (ELAPSED), and which is consuming the most CPU (CPU).
+These times are totals for all the functions called.
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt b/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt
new file mode 100644
index 000000000000..f19606ceca51
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt
@@ -0,0 +1,215 @@
+The following is a demonstration of the dapptrace command,
+
+This is the usage for version 0.60,
+
+ # dapptrace -h
+ USAGE: dapptrace [-acdeholFLU] [-u lib] { -p PID | command }
+
+ -p PID # examine this PID
+ -a # print all details
+ -c # print syscall counts
+ -d # print relative times (us)
+ -e # print elapsed times (us)
+ -F # print flow indentation
+ -l # print pid/lwpid
+ -o # print CPU on cpu times
+ -u lib # trace this library instead
+ -U # trace all libraries + user funcs
+ -b bufsize # dynamic variable buf size
+ eg,
+ dapptrace df -h # run and examine "df -h"
+ dapptrace -p 1871 # examine PID 1871
+ dapptrace -Fp 1871 # print using flow indents
+ dapptrace -eop 1871 # print elapsed and CPU times
+
+
+
+The following is an example of the default output. We run dapptrace with
+the "banner hello" command,
+
+ # dapptrace banner hi
+
+ # # #
+ # # #
+ ###### #
+ # # #
+ # # #
+ # # #
+
+ CALL(args) = return
+ -> __fsr(0x2, 0x8047D7C, 0x8047D88)
+ <- __fsr = 122
+ -> main(0x2, 0x8047D7C, 0x8047D88)
+ -> banner(0x8047E3B, 0x80614C2, 0x8047D38)
+ -> banset(0x20, 0x80614C2, 0x8047DCC)
+ <- banset = 36
+ -> convert(0x68, 0x8047DCC, 0x2)
+ <- convert = 319
+ -> banfil(0x8061412, 0x80614C2, 0x8047DCC)
+ <- banfil = 57
+ -> convert(0x69, 0x8047DCC, 0x2)
+ <- convert = 319
+ -> banfil(0x8061419, 0x80614CA, 0x8047DCC)
+ <- banfil = 57
+ <- banner = 118
+ -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)
+ <- banprt = 74
+
+The default output shows user function calls. An entry is prefixed
+with a "->", and the return has a "<-".
+
+
+
+Here we run dapptrace with the -F for flow indent option,
+
+ # dapptrace -F banner hi
+
+ # # #
+ # # #
+ ###### #
+ # # #
+ # # #
+ # # #
+
+ CALL(args) = return
+ -> __fsr(0x2, 0x8047D7C, 0x8047D88)
+ <- __fsr = 122
+ -> main(0x2, 0x8047D7C, 0x8047D88)
+ -> banner(0x8047E3B, 0x80614C2, 0x8047D38)
+ -> banset(0x20, 0x80614C2, 0x8047DCC)
+ <- banset = 36
+ -> convert(0x68, 0x8047DCC, 0x2)
+ <- convert = 319
+ -> banfil(0x8061412, 0x80614C2, 0x8047DCC)
+ <- banfil = 57
+ -> convert(0x69, 0x8047DCC, 0x2)
+ <- convert = 319
+ -> banfil(0x8061419, 0x80614CA, 0x8047DCC)
+ <- banfil = 57
+ <- banner = 118
+ -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)
+ <- banprt = 74
+
+The above output illustrates the flow of the program, which functions
+call which other functions.
+
+
+
+Now the same command is run with -d to display relative timestamps,
+
+ # dapptrace -dF banner hi
+
+ # # #
+ # # #
+ ###### #
+ # # #
+ # # #
+ # # #
+
+ RELATIVE CALL(args) = return
+ 2512 -> __fsr(0x2, 0x8047D7C, 0x8047D88)
+ 2516 <- __fsr = 122
+ 2518 -> main(0x2, 0x8047D7C, 0x8047D88)
+ 2863 -> banner(0x8047E3B, 0x80614C2, 0x8047D38)
+ 2865 -> banset(0x20, 0x80614C2, 0x8047DCC)
+ 2872 <- banset = 36
+ 2874 -> convert(0x68, 0x8047DCC, 0x2)
+ 2877 <- convert = 319
+ 2879 -> banfil(0x8061412, 0x80614C2, 0x8047DCC)
+ 2882 <- banfil = 57
+ 2883 -> convert(0x69, 0x8047DCC, 0x2)
+ 2885 <- convert = 319
+ 2886 -> banfil(0x8061419, 0x80614CA, 0x8047DCC)
+ 2888 <- banfil = 57
+ 2890 <- banner = 118
+ 2892 -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)
+ 3214 <- banprt = 74
+
+The relative times are in microseconds since the program's invocation. Great!
+
+
+
+Even better is if we use the -eo options, to print elapsed times and on-cpu
+times,
+
+ # dapptrace -eoF banner hi
+
+ # # #
+ # # #
+ ###### #
+ # # #
+ # # #
+ # # #
+
+ ELAPSD CPU CALL(args) = return
+ . . -> __fsr(0x2, 0x8047D7C, 0x8047D88)
+ 41 4 <- __fsr = 122
+ . . -> main(0x2, 0x8047D7C, 0x8047D88)
+ . . -> banner(0x8047E3B, 0x80614C2, 0x8047D38)
+ . . -> banset(0x20, 0x80614C2, 0x8047DCC)
+ 29 6 <- banset = 36
+ . . -> convert(0x68, 0x8047DCC, 0x2)
+ 26 3 <- convert = 319
+ . . -> banfil(0x8061412, 0x80614C2, 0x8047DCC)
+ 25 2 <- banfil = 57
+ . . -> convert(0x69, 0x8047DCC, 0x2)
+ 23 1 <- convert = 319
+ . . -> banfil(0x8061419, 0x80614CA, 0x8047DCC)
+ 23 1 <- banfil = 57
+ 309 28 <- banner = 118
+ . . -> banprt(0x80614C2, 0x8047D38, 0xD27FB824)
+ 349 322 <- banprt = 74
+
+Now it is easy to see which functions take the longest (elapsed), and
+which consume the most CPU cycles.
+
+
+
+The following demonstrates the -U option, to trace all libraries,
+
+ # dapptrace -U banner hi
+
+ # # #
+ # # #
+ ###### #
+ # # #
+ # # #
+ # # #
+
+ CALL(args) = return
+ -> ld.so.1:_rt_boot(0x8047E34, 0x8047E3B, 0x0)
+ -> ld.so.1:_setup(0x8047D38, 0x20AE4, 0x3)
+ -> ld.so.1:setup(0x8047D88, 0x8047DCC, 0x0)
+ -> ld.so.1:fmap_setup(0x0, 0xD27FB2E4, 0xD27FB824)
+ <- ld.so.1:fmap_setup = 125
+ -> ld.so.1:addfree(0xD27FD3C0, 0xC40, 0x0)
+ <- ld.so.1:addfree = 65
+ -> ld.so.1:security(0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF)
+ <- ld.so.1:security = 142
+ -> ld.so.1:readenv_user(0x8047D88, 0xD27FB204, 0xD27FB220)
+ -> ld.so.1:ld_str_env(0x8047E3E, 0xD27FB204, 0xD27FB220)
+ <- ld.so.1:ld_str_env = 389
+ -> ld.so.1:ld_str_env(0x8047E45, 0xD27FB204, 0xD27FB220)
+ <- ld.so.1:ld_str_env = 389
+ -> ld.so.1:ld_str_env(0x8047E49, 0xD27FB204, 0xD27FB220)
+ <- ld.so.1:ld_str_env = 389
+ -> ld.so.1:ld_str_env(0x8047E50, 0xD27FB204, 0xD27FB220)
+ -> ld.so.1:strncmp(0x8047E53, 0xD27F7BEB, 0x4)
+ <- ld.so.1:strncmp = 113
+ -> ld.so.1:rd_event(0xD27FB1F8, 0x3, 0x0)
+ [...4486 lines deleted...]
+ -> ld.so.1:_lwp_mutex_unlock(0xD27FD380, 0xD27FB824, 0x8047C04)
+ <- ld.so.1:_lwp_mutex_unlock = 47
+ <- ld.so.1:rt_mutex_unlock = 34
+ -> ld.so.1:rt_bind_clear(0x1, 0xD279ECC0, 0xD27FDB2C)
+ <- ld.so.1:rt_bind_clear = 34
+ <- ld.so.1:leave = 210
+ <- ld.so.1:elf_bndr = 803
+ <- ld.so.1:elf_rtbndr = 35
+
+The output was huge, around 4500 lines long. Function names are prefixed
+with their library name, eg "ld.so.1".
+
+This full output should be used with caution, as it enables so many probes
+it could well be a burden on the system.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt b/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt
new file mode 100644
index 000000000000..cba6171c350e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt
@@ -0,0 +1,95 @@
+The following is a demonstration of the dexplorer program.
+
+
+Here we run dexplorer with no arguments. By default it will sample various
+system activities using DTrace at 5 seconds per sample. It creates an
+output tar.gz file containing all the DTrace output,
+
+ # dexplorer
+ Output dir will be the current dir (/export/home/root/DTrace/Dexplorer).
+ Hit enter for yes, or type path:
+ Starting dexplorer ver 0.70.
+ Sample interval is 5 seconds. Total run is > 100 seconds.
+ 0% Interrupts by CPU...
+ 5% Interrupt counts...
+ 10% Dispatcher queue length by CPU...
+ 15% Sdt counts...
+ 20% Pages paged in by process name...
+ 25% Files opened count...
+ 30% Disk I/O size distribution by process name...
+ 35% Minor faults by process name...
+ 40% Vminfo data by process name...
+ 45% Mib data by mib statistic...
+ 50% TCP write bytes by process...
+ 55% Sample process @ 1000 Hz...
+ 60% Syscall count by process name...
+ 65% Syscall count by syscall...
+ 70% Read bytes by process name...
+ 75% Write bytes by process name...
+ 80% Sysinfo counts by process name...
+ 85% New process counts with arguments...
+ 90% Signal counts...
+ 95% Syscall error counts...
+ 100% Done.
+ File is de_jupiter_200506271803.tar.gz
+
+As each sample is taken, a line of output is printed above. The above example
+is for version 0.70, newer versions of dexplorer are likely to print more
+lines as they take more samples.
+
+The final line states which file all the output is now in.
+
+
+
+
+The following displays the contents of a dexplorer file,
+
+ # gunzip de_jupiter_200506271803.tar.gz
+ # tar xf de_jupiter_200506271803.tar
+ de_jupiter_200506271803
+ de_jupiter_200506271803/Cpu
+ de_jupiter_200506271803/Cpu/interrupt_by_cpu
+ de_jupiter_200506271803/Cpu/interrupt_time
+ de_jupiter_200506271803/Cpu/dispqlen_by_cpu
+ de_jupiter_200506271803/Cpu/sdt_count
+ de_jupiter_200506271803/Disk
+ de_jupiter_200506271803/Disk/pgpgin_by_processname
+ de_jupiter_200506271803/Disk/fileopen_count
+ de_jupiter_200506271803/Disk/sizedist_by_processname
+ de_jupiter_200506271803/Mem
+ de_jupiter_200506271803/Mem/minf_by_processname
+ de_jupiter_200506271803/Mem/vminfo_by_processname
+ de_jupiter_200506271803/Net
+ de_jupiter_200506271803/Net/mib_data
+ de_jupiter_200506271803/Net/tcpw_by_process
+ de_jupiter_200506271803/Proc
+ de_jupiter_200506271803/Proc/sample_process
+ de_jupiter_200506271803/Proc/syscall_by_processname
+ de_jupiter_200506271803/Proc/syscall_count
+ de_jupiter_200506271803/Proc/readb_by_processname
+ de_jupiter_200506271803/Proc/writeb_by_processname
+ de_jupiter_200506271803/Proc/sysinfo_by_processname
+ de_jupiter_200506271803/Proc/newprocess_count
+ de_jupiter_200506271803/Proc/signal_count
+ de_jupiter_200506271803/Proc/syscall_errors
+ de_jupiter_200506271803/Info
+ de_jupiter_200506271803/Info/uname-a
+ de_jupiter_200506271803/Info/psrinfo-v
+ de_jupiter_200506271803/Info/prtconf
+ de_jupiter_200506271803/Info/df-k
+ de_jupiter_200506271803/Info/ifconfig-a
+ de_jupiter_200506271803/Info/ps-o
+ de_jupiter_200506271803/Info/uptime
+ de_jupiter_200506271803/log
+
+
+
+The following demonstrates running dexplorer in full quiet mode,
+
+ # dexplorer -qy -d /var/tmp
+ #
+
+No text is written to the screen (-qy). The output file will have been
+put in /var/tmp (-d).
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt b/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt
new file mode 100644
index 000000000000..6fe3a859a972
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt
@@ -0,0 +1,107 @@
+The following is a demonstration of the diskhits command.
+
+
+Here we run diskhits on a large file, /extra1/contents with is 46 Mb, and
+currently hasn't been accessed (so isn't in any cache).
+
+While diskhits is running, the file is grep'd in another window. This causes
+the entire file to be read,
+
+ # ./diskhits /extra1/contents
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ Location (KB),
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@ 47
+ 2303 |@@ 41
+ 4606 |@@ 41
+ 6909 |@@ 42
+ 9212 |@@ 41
+ 11515 |@@ 41
+ 13818 |@@ 42
+ 16121 |@@ 43
+ 18424 |@@ 42
+ 20727 |@@ 41
+ 23030 |@@ 41
+ 25333 |@@ 41
+ 27636 |@@ 41
+ 29939 |@@ 42
+ 32242 |@@ 44
+ 34545 |@@ 41
+ 36848 |@@ 41
+ 39151 |@@ 41
+ 41454 |@@ 41
+ 43757 |@@ 40
+ >= 46060 | 0
+
+ Size (KB),
+
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 | 6
+ 16 | 10
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 818
+ 64 | 0
+
+ Total RW: 46064 KB
+
+Ok, so the file was read evently with each access around 32 to 63 Kb in size,
+and a total of 46 Mb read. This all makes sense, as it is reading the file
+for the first time.
+
+
+
+Now the same file is grep'd with diskhits running, this time we can see what
+effect caching the file has made,
+
+ # ./diskhits /extra1/contents
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ Location (KB),
+
+ value ------------- Distribution ------------- count
+ 2303 | 0
+ 4606 | 5
+ 6909 |@ 67
+ 9212 |@@@@ 170
+ 11515 |@@@@@ 216
+ 13818 |@@@@@ 224
+ 16121 |@@@@@@ 287
+ 18424 |@@@@@ 227
+ 20727 |@@@ 144
+ 23030 |@@ 75
+ 25333 |@ 59
+ 27636 |@ 42
+ 29939 |@ 41
+ 32242 |@ 44
+ 34545 |@ 41
+ 36848 |@ 41
+ 39151 |@ 41
+ 41454 |@ 41
+ 43757 |@ 39
+ >= 46060 | 0
+
+ Size (KB),
+
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@ 1137
+ 8 |@@@@@ 211
+ 16 |@@ 111
+ 32 |@@@@@@@@ 345
+ 64 | 0
+
+ Total RW: 29392 KB
+
+The difference is dramatic. This time only 29 Mb is read, leaving around
+17 Mb that was read from the cache. The way the file is read differs -
+in the later half of the file it looks the same, but in the first half there
+are many more events; oddly enough, this is because the early part of the
+file is cached more, the extra events are likely to be much smaller in size -
+as indicated in the difference in the size distribution.
+
+It appears that everything less that 4606 Kb has remained in the cache, with
+zero hits for that range.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt b/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt
new file mode 100644
index 000000000000..f3542c00ea82
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt
@@ -0,0 +1,62 @@
+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.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt b/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt
new file mode 100644
index 000000000000..eed35b41f70a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt
@@ -0,0 +1,47 @@
+The following is a demonstration of the dnlcps.d script.
+
+
+Here we run dnlcps.d for o few seconds, then hit Ctrl-C,
+
+ # dnlcps.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ CMD: bash PID: 12508
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@ 2
+ >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@ 3
+
+ CMD: nscd PID: 109
+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+
+ CMD: in.routed PID: 143
+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12
+
+ CMD: ls PID: 12508
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@ 2
+ >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22
+
+ CMD: find PID: 12507
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@ 5768
+ >= 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 11263
+
+A "find" command was running at the time, which had 11,263 hits on the DNLC
+and 5768 misses. An "ls" command scored 22 hits.
+
+The above distribution output can help us identify if procesess
+are both using the DNLC a lot, and what hit rate they are scoring.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt
new file mode 100644
index 000000000000..45915f1088b4
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt
@@ -0,0 +1,88 @@
+The following is a demonstration of the dnlcsnoop.d script.
+
+
+Here we run dnlcsnoop.d, while in another window a "find /etc/default"
+command is executed,
+
+ # dnlcsnoop.d
+ PID CMD TIME HIT PATH
+ 9185 bash 9 Y /etc
+ 9185 bash 3 Y /etc
+ 12293 bash 9 Y /usr
+ 12293 bash 3 Y /usr/bin
+ 12293 bash 4 Y /usr/bin/find
+ 12293 bash 7 Y /lib
+ 12293 bash 3 Y /lib/ld.so.1
+ 12293 find 6 Y /usr
+ 12293 find 3 Y /usr/bin
+ 12293 find 3 Y /usr/bin/find
+ 12293 find 3 Y /usr
+ 12293 find 3 Y /usr/lib
+ 12293 find 3 Y /usr/lib/ld.so.1
+ 12293 find 3 Y /usr/lib/..
+ 12293 find 3 Y /usr/..
+ 12293 find 3 Y /lib
+ 12293 find 3 Y /lib/ld.so.1
+ 12293 find 3 Y /usr
+ 12293 find 3 Y /usr/bin
+ 12293 find 2 Y /usr/bin/find
+ 12293 find 4 Y /var
+ 12293 find 3 Y /var/ld
+ 12293 find 3 Y /var/ld/ld.config
+ 12293 find 3 Y /lib
+ 12293 find 3 Y /lib/libc.so.1
+ 12293 find 3 Y /lib
+ 12293 find 3 Y /lib/libc.so.1
+ 12293 find 3 Y /lib
+ 12293 find 3 Y /lib/libc.so.1
+ 12293 find 8 Y /export
+ 12293 find 4 Y /export/home
+ 12293 find 3 Y /export/home/root
+ 12293 find 4 Y /export/home/root/CacheKit-0.93
+ 12293 find 3 Y /export
+ 12293 find 3 Y /export/home
+ 12293 find 3 Y /export/home/root
+ 12293 find 3 Y /export/home/root/CacheKit-0.93
+ 12293 find 3 Y /etc
+ 12293 find 3 Y /etc/default
+ 12293 find 3 Y /etc
+ 12293 find 3 Y /etc/default
+ 12293 find 5 N /etc/default/cron
+ 12293 find 3 N /etc/default/devfsadm
+ 12293 find 4 N /etc/default/fs
+ 12293 find 4 N /etc/default/kbd
+ 12293 find 3 N /etc/default/keyserv
+ 12293 find 4 N /etc/default/nss
+ 12293 find 3 N /etc/default/syslogd
+ 12293 find 3 N /etc/default/tar
+ 12293 find 4 N /etc/default/utmpd
+ 12293 find 5 N /etc/default/init
+ 12293 find 4 Y /etc/default/login
+ 12293 find 4 Y /etc/default/su
+ 12293 find 3 N /etc/default/passwd
+ 12293 find 3 N /etc/default/dhcpagent
+ 12293 find 4 N /etc/default/inetinit
+ 12293 find 3 N /etc/default/ipsec
+ 12293 find 3 N /etc/default/mpathd
+ 12293 find 3 N /etc/default/telnetd
+ 12293 find 3 Y /etc/default/nfs
+ 12293 find 3 N /etc/default/autofs
+ 12293 find 9 Y /etc/default/ftp
+ 12293 find 5 N /etc/default/rpc.nisd
+ 12293 find 5 N /etc/default/nfslogd
+ 12293 find 4 N /etc/default/lu
+ 12293 find 6 N /etc/default/power
+ 12293 find 5 N /etc/default/sys-suspend
+ 12293 find 6 N /etc/default/metassist.xml
+ 12293 find 5 N /etc/default/yppasswdd
+ 12293 find 4 N /etc/default/webconsole
+ 12293 find 5 Y /export
+ 12293 find 4 Y /export/home
+ 12293 find 4 Y /export/home/root
+ 12293 find 4 Y /export/home/root/CacheKit-0.93
+
+The DNLC is the Directory Name Lookup Cache. Here we can see name lookups,
+and whether the cache returned a hit. "/export/home/root/CacheKit-0.93" was
+looked up a few times - this was the current directory that the find
+command was executed from.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt
new file mode 100644
index 000000000000..a6ce1d6ec3d5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt
@@ -0,0 +1,40 @@
+The following is a demonstration of the dnlcstat command.
+
+
+Here we run dnlcstat with no options. It prints a line every second,
+
+ # dnlcstat
+ dnlc %hit hit miss
+ 0 0 0
+ 0 0 0
+ 93 95 7
+ 89 1920 231
+ 89 2130 243
+ 91 2358 232
+ 92 1476 124
+ 92 1953 159
+ 94 2416 134
+ 94 1962 114
+ 95 2113 101
+ 97 1969 54
+ 98 1489 26
+ 41 564 786
+ 40 622 913
+ 35 520 952
+ 27 937 2503
+ 22 1696 5806
+ 22 955 3281
+ 21 1377 5059
+ 31 2043 4516
+ 22 1423 4968
+ 13 550 3438
+ 2 95 3810
+ 0 58 6410
+ 4 223 4433
+ 4 198 4491
+ 7 339 4383
+
+In another window, a "find /" was run. We can see the DNLC activity above,
+initially there are high hit rates in the DNLC - over 90%. Eventually
+the find command exhausts the DNLC, and the hit rate drops to below 10%.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt b/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt
new file mode 100644
index 000000000000..107fc1978426
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt
@@ -0,0 +1,120 @@
+The following demonstrates the dtruss command - a DTrace version of truss.
+This version is designed to be less intrusive and safer than running truss.
+
+dtruss has many options. Here is the help for version 0.70,
+
+ USAGE: dtruss [-acdefholL] [-t syscall] { -p PID | -n name | command }
+
+ -p PID # examine this PID
+ -n name # examine this process name
+ -t syscall # examine this syscall only
+ -a # print all details
+ -c # print syscall counts
+ -d # print relative times (us)
+ -e # print elapsed times (us)
+ -f # follow children
+ -l # force printing pid/lwpid
+ -o # print on cpu times
+ -L # don't print pid/lwpid
+ -b bufsize # dynamic variable buf size
+ eg,
+ dtruss df -h # run and examine "df -h"
+ dtruss -p 1871 # examine PID 1871
+ dtruss -n tar # examine all processes called "tar"
+ dtruss -f test.sh # run test.sh and follow children
+
+
+
+For example, here we dtruss any process with the name "ksh" - the Korn shell,
+
+ # dtruss -n ksh
+ PID/LWP SYSCALL(args) = return
+ 27547/1: llseek(0x3F, 0xE4E, 0x0) = 3662 0
+ 27547/1: read(0x3F, "\0", 0x400) = 0 0
+ 27547/1: llseek(0x3F, 0x0, 0x0) = 3662 0
+ 27547/1: write(0x3F, "ls -l\n\0", 0x8) = 8 0
+ 27547/1: fdsync(0x3F, 0x10, 0xFEC1D444) = 0 0
+ 27547/1: lwp_sigmask(0x3, 0x20000, 0x0) = 0xFFBFFEFF 0
+ 27547/1: stat64("/usr/bin/ls\0", 0x8047A00, 0xFEC1D444) = 0 0
+ 27547/1: lwp_sigmask(0x3, 0x0, 0x0) = 0xFFBFFEFF 0
+ [...]
+
+The output for each system call does not yet evaluate as much as truss does.
+
+
+
+In the following example, syscall elapsed and overhead times are measured.
+Elapsed times represent the time from syscall start to finish; overhead
+times measure the time spent on the CPU,
+
+ # dtruss -eon bash
+ PID/LWP ELAPSD CPU SYSCALL(args) = return
+ 3911/1: 41 26 write(0x2, "l\0", 0x1) = 1 0
+ 3911/1: 1001579 43 read(0x0, "s\0", 0x1) = 1 0
+ 3911/1: 38 26 write(0x2, "s\0", 0x1) = 1 0
+ 3911/1: 1019129 43 read(0x0, " \001\0", 0x1) = 1 0
+ 3911/1: 38 26 write(0x2, " \0", 0x1) = 1 0
+ 3911/1: 998533 43 read(0x0, "-\0", 0x1) = 1 0
+ 3911/1: 38 26 write(0x2, "-\001\0", 0x1) = 1 0
+ 3911/1: 1094323 42 read(0x0, "l\0", 0x1) = 1 0
+ 3911/1: 39 27 write(0x2, "l\001\0", 0x1) = 1 0
+ 3911/1: 1210496 44 read(0x0, "\r\0", 0x1) = 1 0
+ 3911/1: 40 28 write(0x2, "\n\001\0", 0x1) = 1 0
+ 3911/1: 9 1 lwp_sigmask(0x3, 0x2, 0x0) = 0xFFBFFEFF 0
+ 3911/1: 70 63 ioctl(0x0, 0x540F, 0x80F6D00) = 0 0
+
+A bash command was in another window, where the "ls -l" command was being
+typed. The keystrokes can be seen above, along with the long elapsed times
+(keystroke delays), and short overhead times (as the bash process blocks
+on the read and leaves the CPU).
+
+
+
+Now dtruss is put to the test. Here we truss a test program that runs several
+hundred smaller programs, which in turn generate thousands of system calls.
+
+First, as a "control" we run the program without a truss or dtruss running,
+
+ # time ./test
+ real 0m38.508s
+ user 0m5.299s
+ sys 0m25.668s
+
+Now we try truss,
+
+ # time truss ./test 2> /dev/null
+ real 0m41.281s
+ user 0m0.558s
+ sys 0m1.351s
+
+Now we try dtruss,
+
+ # time dtruss ./test 2> /dev/null
+ real 0m46.226s
+ user 0m6.771s
+ sys 0m31.703s
+
+In the above test, truss slowed the program from 38 seconds to 41. dtruss
+slowed the program from 38 seconds to 46, slightly slower that truss...
+
+Now we try follow mode "-f". The test program does run several hundred
+smaller programs, so now there are plenty more system calls to track,
+
+ # time truss -f ./test 2> /dev/null
+ real 2m28.317s
+ user 0m0.893s
+ sys 0m3.527s
+
+Now we try dtruss,
+
+ # time dtruss -f ./test 2> /dev/null
+ real 0m56.179s
+ user 0m10.040s
+ sys 0m38.185s
+
+Wow, the difference is huge! truss slows the program from 38 to 148 seconds;
+but dtruss has only slowed the program from 38 to 56 seconds.
+
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt
new file mode 100644
index 000000000000..1fb7fbb739d1
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt
@@ -0,0 +1,91 @@
+The following is a demonstration of the dvmstat program,
+
+
+Here we run dvmstat to monitor all processes called "find". In another
+window, a "find /" command is run,
+
+ # dvmstat -n find
+ re maj mf fr epi epo api apo fpi fpo sy
+ 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0
+ 6336 0 372 0 0 0 0 0 0 0 22255
+ 1624 0 0 0 0 0 0 0 0 0 5497
+ 2292 0 0 0 0 0 0 0 0 0 7715
+ 13064 0 0 0 0 0 0 0 0 0 43998
+ 7972 168 0 0 0 0 0 0 168 0 38361
+ 468 636 0 0 0 0 0 0 636 0 13774
+ 376 588 0 0 0 0 0 0 588 0 10723
+ 80 636 0 0 0 0 0 0 656 0 11078
+ 48 772 0 0 0 0 0 0 812 0 9841
+ 16 1028 0 0 0 0 0 0 1056 0 10752
+ 0 1712 0 0 0 0 0 0 1740 0 12176
+ 4 1224 0 0 0 0 0 0 1236 0 9024
+
+The output above is spectacular! When the find command is first run,
+it begins be reading data from the file cache, as indicated by the "re"
+reclaims, and a lack of "fpi" filesystem page ins.
+
+Eventually the find command travels to places which are not cached, we can
+see the "re" value drops, and both the "maj" major faults and "fpi" values
+increase. This transition from cache hits to file system activity is
+very clear from the above output.
+
+
+
+Here we run a dvmstat to examine the PID 3778,
+
+ # dvmstat -p 3778
+ re maj mf fr epi epo api apo fpi fpo sy
+ 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0
+ 24 28 0 0 0 0 0 0 28 0 109
+ 4 148 16 0 0 0 0 0 148 0 1883
+ 16 412 384 0 0 0 0 0 412 0 21019
+ 0 0 0 0 0 0 0 0 0 0 3
+ 0 0 0 0 0 0 0 0 0 0 221
+ 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 84
+ 0 0 0 0 0 0 0 0 0 0 0
+
+Here we can see the statistics for that process only.
+
+
+
+The following runs the date command through dvmstat,
+
+ # dvmstat date
+ Sun Jun 12 17:44:24 EST 2005
+ re maj mf fr epi epo api apo fpi fpo sy
+ 16 0 208 0 0 0 0 0 0 0 38
+
+The values above are for the date command only.
+
+
+
+Now we run dvmstat on a tar command. Here we tar around 50Mb of files,
+so the command takes around 20 seconds to complete,
+
+ # dvmstat tar cf backup.tar DTrace
+ re maj mf fr epi epo api apo fpi fpo sy
+ 20 256 304 0 8 0 0 0 352 0 621
+ 4540 56 896 0 0 0 0 0 4636 0 1005
+ 4432 12 644 0 0 0 0 0 4384 0 906
+ 680 180 136 0 8 0 0 0 1056 0 502
+ 2328 60 468 0 0 0 0 0 2296 0 592
+ 1300 380 272 0 0 0 0 0 1704 0 1095
+ 2816 72 560 0 0 0 0 0 2940 0 709
+ 4084 40 416 0 0 0 0 0 4220 0 894
+ 2764 4 276 0 0 0 0 0 2700 0 566
+ 1824 96 328 0 0 0 0 0 2072 0 556
+ 3408 80 392 0 20 0 0 0 3496 0 857
+ 2804 92 552 0 4 0 0 0 2924 0 741
+ 1344 16 272 0 0 0 0 0 1376 0 289
+ 3284 52 520 0 12 0 0 0 3260 0 743
+ 4832 200 812 0 0 0 0 0 5292 0 1276
+ 11052 56 2200 0 0 0 0 0 8676 0 2326
+ 5256 328 1020 0 8 0 0 0 4404 0 1725
+ re maj mf fr epi epo api apo fpi fpo sy
+ 404 340 72 0 64 0 0 0 536 0 1135
+
+Great! Activity from the tar command such as "fpi"s can be clearly seen.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt
new file mode 100644
index 000000000000..1dcb28d29db9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt
@@ -0,0 +1,90 @@
+This is an example of the errinfo program, which prints details on syscall
+failures.
+
+By default it "snoops" syscall failures and prints their details,
+
+ # ./errinfo
+ EXEC SYSCALL ERR DESC
+ wnck-applet read 11 Resource temporarily unavailable
+ Xorg read 11 Resource temporarily unavailable
+ nautilus read 11 Resource temporarily unavailable
+ Xorg read 11 Resource temporarily unavailable
+ dsdm read 11 Resource temporarily unavailable
+ Xorg read 11 Resource temporarily unavailable
+ Xorg pollsys 4 interrupted system call
+ mozilla-bin lwp_park 62 timer expired
+ gnome-netstatus- ioctl 12 Not enough core
+ mozilla-bin lwp_park 62 timer expired
+ Xorg read 11 Resource temporarily unavailable
+ mozilla-bin lwp_park 62 timer expired
+ [...]
+
+which is useful to see these events live, but can scroll off the screen
+somewhat rapidly.. so,
+
+
+
+The "-c" option will count the number of errors. Hit Ctrl-C to stop the
+sample. For example,
+
+# ./errinfo -c
+Tracing... Hit Ctrl-C to end.
+^C
+ EXEC SYSCALL ERR COUNT DESC
+ nscd fcntl 22 1 Invalid argument
+ xscreensaver read 11 1 Resource temporarily unavailable
+ inetd lwp_park 62 1 timer expired
+ svc.startd lwp_park 62 1 timer expired
+ svc.configd lwp_park 62 1 timer expired
+ ttymon ioctl 25 1 Inappropriate ioctl for device
+gnome-netstatus- ioctl 12 2 Not enough core
+ mozilla-bin lwp_kill 3 2 No such process
+ mozilla-bin connect 150 5 operation now in progress
+ svc.startd portfs 62 8 timer expired
+ java_vm lwp_cond_wait 62 8 timer expired
+ soffice.bin read 11 9 Resource temporarily unavailable
+ gnome-terminal read 11 23 Resource temporarily unavailable
+ mozilla-bin recv 11 26 Resource temporarily unavailable
+ nautilus read 11 26 Resource temporarily unavailable
+gnome-settings-d read 11 26 Resource temporarily unavailable
+ gnome-smproxy read 11 34 Resource temporarily unavailable
+ gnome-panel read 11 42 Resource temporarily unavailable
+ dsdm read 11 112 Resource temporarily unavailable
+ metacity read 11 128 Resource temporarily unavailable
+ mozilla-bin lwp_park 62 133 timer expired
+ Xorg pollsys 4 147 interrupted system call
+ wnck-applet read 11 179 Resource temporarily unavailable
+ mozilla-bin read 11 258 Resource temporarily unavailable
+ Xorg read 11 1707 Resource temporarily unavailable
+
+Ok, so Xorg has received 1707 of the same type of error for the syscall read().
+
+
+
+The "-n" option lets us match on one type of process only. In the following
+we match processes that have the name "mozilla-bin",
+
+# ./errinfo -c -n mozilla-bin
+Tracing... Hit Ctrl-C to end.
+^C
+ EXEC SYSCALL ERR COUNT DESC
+ mozilla-bin getpeername 134 1 Socket is not connected
+ mozilla-bin recv 11 2 Resource temporarily unavailable
+ mozilla-bin lwp_kill 3 2 No such process
+ mozilla-bin connect 150 5 operation now in progress
+ mozilla-bin lwp_park 62 207 timer expired
+ mozilla-bin read 11 396 Resource temporarily unavailable
+
+
+
+The "-p" option lets us examine one PID only. The following example examines
+PID 1119,
+
+# ./errinfo -c -p 1119
+Tracing... Hit Ctrl-C to end.
+^C
+ EXEC SYSCALL ERR COUNT DESC
+ Xorg pollsys 4 47 interrupted system call
+ Xorg read 11 669 Resource temporarily unavailable
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt
new file mode 100644
index 000000000000..e55682a9e64a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt
@@ -0,0 +1,78 @@
+The following is an example of execsnoop. As processes are executed their
+details are printed out. Another user was logged in running a few commands
+which can be viewed below,
+
+ # ./execsnoop
+ UID PID PPID ARGS
+ 100 3008 2656 ls
+ 100 3009 2656 ls -l
+ 100 3010 2656 cat /etc/passwd
+ 100 3011 2656 vi /etc/hosts
+ 100 3012 2656 date
+ 100 3013 2656 ls -l
+ 100 3014 2656 ls
+ 100 3015 2656 finger
+ [...]
+
+
+
+In this example the command "man gzip" was executed. The output lets us
+see what the man command is actually doing,
+
+ # ./execsnoop
+ UID PID PPID ARGS
+ 100 3064 2656 man gzip
+ 100 3065 3064 sh -c cd /usr/share/man; tbl /usr/share/man/man1/gzip.1 |nroff -u0 -Tlp -man -
+ 100 3067 3066 tbl /usr/share/man/man1/gzip.1
+ 100 3068 3066 nroff -u0 -Tlp -man -
+ 100 3066 3065 col -x
+ 100 3069 3064 sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpoMaa_f /usr/share/man/cat1/gzip.1 2>
+ 100 3070 3069 /usr/bin/mv -f /tmp/mpoMaa_f /usr/share/man/cat1/gzip.1
+ 100 3071 3064 sh -c more -s /tmp/mpoMaa_f
+ 100 3072 3071 more -s /tmp/mpoMaa_f
+ ^C
+
+
+
+Execsnoop has other options,
+
+ # ./execsnoop -h
+ USAGE: execsnoop [-a|-A|-sv] [-c command]
+ execsnoop # default output
+ -a # print all data
+ -A # dump all data, space delimited
+ -s # include start time, us
+ -v # include start time, string
+ -c command # command name to snoop
+
+
+
+In particular the verbose option for human readable timestamps is
+very useful,
+
+ # ./execsnoop -v
+ STRTIME UID PID PPID ARGS
+ 2005 Jan 22 00:07:22 0 23053 20933 date
+ 2005 Jan 22 00:07:24 0 23054 20933 uname -a
+ 2005 Jan 22 00:07:25 0 23055 20933 ls -latr
+ 2005 Jan 22 00:07:27 0 23056 20933 df -k
+ 2005 Jan 22 00:07:29 0 23057 20933 ps -ef
+ 2005 Jan 22 00:07:29 0 23057 20933 ps -ef
+ 2005 Jan 22 00:07:34 0 23058 20933 uptime
+ 2005 Jan 22 00:07:34 0 23058 20933 uptime
+ [...]
+
+
+
+It is also possible to match particular commands. Here we watch
+anyone using the vi command only,
+
+ # ./execsnoop -vc vi
+ STRTIME UID PID PPID ARGS
+ 2005 Jan 22 00:10:33 0 23063 20933 vi /etc/passwd
+ 2005 Jan 22 00:10:40 0 23064 20933 vi /etc/shadow
+ 2005 Jan 22 00:10:51 0 23065 20933 vi /etc/group
+ 2005 Jan 22 00:10:57 0 23066 20933 vi /.rhosts
+ [...]
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt b/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt
new file mode 100644
index 000000000000..3d943b9e0185
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt
@@ -0,0 +1,38 @@
+The following is a demonstration of the fddist command,
+
+
+Here fddist is run for a few seconds on an idle workstation,
+
+ Tracing reads and writes... Hit Ctrl-C to end.
+ ^C
+ EXEC: dtrace PID: 3288
+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 2 | 0
+
+ EXEC: mozilla-bin PID: 1659
+
+ value ------------- Distribution ------------- count
+ 3 | 0
+ 4 |@@@@@@@@@@ 28
+ 5 | 0
+ 6 |@@@@@@@@@@@@@@@ 40
+ 7 |@@@@@@@@@@@@@@@ 40
+ 8 | 0
+
+ EXEC: Xorg PID: 1532
+
+ value ------------- Distribution ------------- count
+ 22 | 0
+ 23 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 57
+ 24 | 0
+
+The above displays the usage pattern for process file descriptors.
+We can see the Xorg process (PID 1532) has made 57 reads or writes to
+it's file descriptor 23.
+
+The pfiles(1) command can be used to help determine what file
+descriptor 23 actually is.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt
new file mode 100644
index 000000000000..8267da2fc083
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt
@@ -0,0 +1,27 @@
+The following is an example of the filebyproc.d script,
+
+ # filebyproc.d
+ dtrace: description 'syscall::open*:entry ' matched 2 probes
+ CPU ID FUNCTION:NAME
+ 0 14 open:entry gnome-netstatus- /dev/kstat
+ 0 14 open:entry man /var/ld/ld.config
+ 0 14 open:entry man /lib/libc.so.1
+ 0 14 open:entry man /usr/share/man/man.cf
+ 0 14 open:entry man /usr/share/man/windex
+ 0 14 open:entry man /usr/share/man/man1/ls.1
+ 0 14 open:entry man /usr/share/man/man1/ls.1
+ 0 14 open:entry man /tmp/mpqea4RF
+ 0 14 open:entry sh /var/ld/ld.config
+ 0 14 open:entry sh /lib/libc.so.1
+ 0 14 open:entry neqn /var/ld/ld.config
+ 0 14 open:entry neqn /lib/libc.so.1
+ 0 14 open:entry neqn /usr/share/lib/pub/eqnchar
+ 0 14 open:entry tbl /var/ld/ld.config
+ 0 14 open:entry tbl /lib/libc.so.1
+ 0 14 open:entry tbl /usr/share/man/man1/ls.1
+ 0 14 open:entry nroff /var/ld/ld.config
+ [...]
+
+In the above example, the command "man ls" was run. Each file that was
+attempted to be opened can be seen, along with the program name responsible.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt b/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt
new file mode 100644
index 000000000000..c29cb086b832
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt
@@ -0,0 +1,32 @@
+The following is a short sample of output from the fspaging.d script.
+
+
+fspaging.d traces syscall read and writes, vnode interface reads, writes,
+getpage and putpage, and disk io.
+
+ # ./fspaging.d
+ Event Device RW Size Offset Path
+ disk_io dad1 R 1024 0 /extra1
+ disk_io dad1 R 8192 0 <none>
+ disk_io dad1 R 2048 0 <none>
+ sc-write . W 51200 0 /extra1/outfile
+ fop_write . W 51200 0 /extra1/outfile
+ fop_getpage . R 8192 0 /extra1/50k
+ disk_io dad1 R 8192 0 /extra1/50k
+ disk_ra dad1 R 8192 8 /extra1/50k
+ fop_getpage . R 8192 8 /extra1/50k
+ disk_ra dad1 R 34816 16 /extra1/50k
+ fop_getpage . R 8192 16 /extra1/50k
+ fop_getpage . R 8192 24 /extra1/50k
+ fop_getpage . R 8192 32 /extra1/50k
+ fop_getpage . R 8192 40 /extra1/50k
+ fop_getpage . R 8192 48 /extra1/50k
+ fop_putpage . W 8192 0 /extra1/outfile
+ fop_putpage . W 8192 8 /extra1/outfile
+ fop_putpage . W 8192 16 /extra1/outfile
+ fop_putpage . W 8192 24 /extra1/outfile
+ fop_putpage . W 8192 32 /extra1/outfile
+ fop_putpage . W 8192 40 /extra1/outfile
+ disk_io dad1 W 51200 0 /extra1/outfile
+
+For a full discussion of this example, see fsrw_example.txt.
diff --git a/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt b/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt
new file mode 100644
index 000000000000..b153303738ee
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt
@@ -0,0 +1,129 @@
+The following are demonstrations of the fsrw.d script.
+
+
+Here the fsrw.d script was running while a 50 Kbyte file was read,
+
+ # ./fsrw.d
+ Event Device RW Size Offset Path
+ sc-read . R 8192 0 /extra1/50k
+ fop_read . R 8192 0 /extra1/50k
+ disk_io cmdk0 R 8192 0 /extra1/50k
+ disk_ra cmdk0 R 8192 8 /extra1/50k
+ sc-read . R 8192 8 /extra1/50k
+ fop_read . R 8192 8 /extra1/50k
+ disk_ra cmdk0 R 34816 16 /extra1/50k
+ sc-read . R 8192 16 /extra1/50k
+ fop_read . R 8192 16 /extra1/50k
+ sc-read . R 8192 24 /extra1/50k
+ fop_read . R 8192 24 /extra1/50k
+ sc-read . R 8192 32 /extra1/50k
+ fop_read . R 8192 32 /extra1/50k
+ sc-read . R 8192 40 /extra1/50k
+ fop_read . R 8192 40 /extra1/50k
+ sc-read . R 8192 48 /extra1/50k
+ fop_read . R 8192 48 /extra1/50k
+ sc-read . R 8192 50 /extra1/50k
+ fop_read . R 8192 50 /extra1/50k
+ ^C
+
+By looking closely at the Offset (Kbytes) and Size of each transaction, we
+can see how the read() system calls (sc-read) were satisfied by the file
+system. There were 8 read() system calls, and 3 disk events - 2 of which were
+UFS read-ahead (disk_ra). The final read-ahead was for 34 Kbytes and began
+with an offset of 16 Kbytes, which read the remaining file data (34 + 16 = 50
+Kbytes). The subsequent read() system calls and corresponding fop_read() calls
+returned from the page cache.
+
+
+
+The following demonstrates how a logical I/O is broken up into multiple
+physical I/O events. Here a dd command was used to read 1 Mbytes from the
+/var/sadm/install/contents file while fsrw.d was tracing.
+
+ # ./fsrw.d
+ Event Device RW Size Offset Path
+ sc-read . R 1048576 0 /var/sadm/install/contents
+ fop_read . R 1048576 0 /var/sadm/install/contents
+ disk_ra cmdk0 R 4096 72 /var/sadm/install/contents
+ disk_ra cmdk0 R 8192 96 <none>
+ disk_ra cmdk0 R 57344 96 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 152 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 208 /var/sadm/install/contents
+ disk_ra cmdk0 R 49152 264 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 312 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 368 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 424 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 480 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 536 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 592 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 648 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 704 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 760 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 816 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 872 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 928 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 984 /var/sadm/install/contents
+ disk_ra cmdk0 R 57344 1040 /var/sadm/install/contents
+ ^C
+
+Both the read() syscall (sc-read) and the fop_read() call asked the file system
+for 1048576 bytes, which was then broken into numerous disk I/O events of up to
+56 Kbytes in size. The 8192 byte read with a path of "<none>" is likely to be
+the file system reading the indirect block pointers for the
+/var/sadm/install/contents file (something DTrace could confirm in detail).
+
+
+
+
+The following traces activity as a cp command copies a 50 Kbyte file.
+
+ # ./fsrw.d
+ Event Device RW Size Offset Path
+ disk_io dad1 R 1024 0 /extra1
+ disk_io dad1 R 8192 0 <none>
+ disk_io dad1 R 8192 0 <none>
+ disk_io dad1 R 2048 0 <none>
+ disk_io dad1 R 2048 0 <none>
+ sc-write . W 51200 0 /extra1/outfile
+ fop_write . W 51200 0 /extra1/outfile
+ disk_io dad1 R 8192 0 /extra1/50k
+ disk_ra dad1 R 8192 8 /extra1/50k
+ disk_ra dad1 R 34816 16 /extra1/50k
+ disk_io dad1 R 2048 0 <none>
+ disk_io dad1 W 49152 0 /extra1/outfile
+ ^C
+
+Reads including UFS read-ahead can be seen as the file is read.
+The output finishes with disk writes as the new file is flushed to disk.
+The syscall write() and fop_write() can be seen to the /extra1/outfile,
+however there is no syscall read() or fop_read() to /extra1/50k - which
+we may have expected to occur before the writes. This is due to the way
+the cp command now works, it uses mmap() to map files in for reading.
+This activity can be seen if we also trace fop_getpage() and fop_putpage(),
+as the fspaging.d dtrace script does.
+
+ # ./fspaging.d
+ Event Device RW Size Offset Path
+ disk_io dad1 R 1024 0 /extra1
+ disk_io dad1 R 8192 0 <none>
+ disk_io dad1 R 2048 0 <none>
+ sc-write . W 51200 0 /extra1/outfile
+ fop_write . W 51200 0 /extra1/outfile
+ fop_getpage . R 8192 0 /extra1/50k
+ disk_io dad1 R 8192 0 /extra1/50k
+ disk_ra dad1 R 8192 8 /extra1/50k
+ fop_getpage . R 8192 8 /extra1/50k
+ disk_ra dad1 R 34816 16 /extra1/50k
+ fop_getpage . R 8192 16 /extra1/50k
+ fop_getpage . R 8192 24 /extra1/50k
+ fop_getpage . R 8192 32 /extra1/50k
+ fop_getpage . R 8192 40 /extra1/50k
+ fop_getpage . R 8192 48 /extra1/50k
+ fop_putpage . W 8192 0 /extra1/outfile
+ fop_putpage . W 8192 8 /extra1/outfile
+ fop_putpage . W 8192 16 /extra1/outfile
+ fop_putpage . W 8192 24 /extra1/outfile
+ fop_putpage . W 8192 32 /extra1/outfile
+ fop_putpage . W 8192 40 /extra1/outfile
+ disk_io dad1 W 51200 0 /extra1/outfile
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/guess_example.txt b/cddl/contrib/dtracetoolkit/Examples/guess_example.txt
new file mode 100644
index 000000000000..74be8b3a4d81
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/guess_example.txt
@@ -0,0 +1,39 @@
+The following is a demonstration of the guess.d script,
+
+
+guess.d is a guessing game written in DTrace. It goes like this,
+
+ # ./guess.d
+ guess.d - Guess a number between 1 and 100
+
+ Enter guess 1: 50
+ Lower...
+ Enter guess 2: 25
+ Higher...
+ Enter guess 3: 37
+ Higher...
+ Enter guess 4: 44
+ Higher...
+ Enter guess 5: 48
+ Lower...
+ Enter guess 6: 46
+ Lower...
+ Enter guess 7: 45
+ Correct! That took 7 guesses.
+
+ Please enter your name: Brendan Gregg
+
+ Previous high scores,
+ Fred Nurk 7
+ Brendan Gregg 7
+
+It was written as a demonstration of the same code written in dozens of
+languages. It makes a good demonstration, as it covers integer and string
+variables, conditional statements, loops, keyboard input, screen output,
+and file input and output.
+
+Written in DTrace however, is not such a good demonstration! DTrace doesn't
+have loops (it doesn't really need them either) which made the code a
+little odd. DTrace also doesn't have keyboard input... So this script is
+somewhat amusing as an example, but not terribly useful.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt b/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt
new file mode 100644
index 000000000000..d8a5aec0b98f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt
@@ -0,0 +1,153 @@
+The following are demonstrations of the hotkernel DTrace program.
+
+
+Here hotkernel is run for a couple of seconds then Ctrl-C is hit,
+
+ # ./hotkernel
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ FUNCTION COUNT PCNT
+ unix`swtch 1 0.1%
+ pcplusmp`apic_redistribute_compute 1 0.1%
+ genunix`strrput 1 0.1%
+ unix`sys_call 1 0.1%
+ genunix`fsflush_do_pages 1 0.1%
+ TS`ts_wakeup 1 0.1%
+ genunix`callout_schedule_1 1 0.1%
+ unix`page_create_putback 1 0.1%
+ unix`mutex_enter 4 0.3%
+ unix`cpu_halt 1575 99.2%
+
+The output summarises which kernel-level function was sampled on the
+CPU the most. This report shows that unix`cpu_halt was sampled 1575
+times, which was 99.2% of the kernel-level samples.
+
+As it turns out, unix`cpu_halt is called on this x86 server as part of the
+kernel idle thread - explaining why it is so often found on the CPU,
+
+ # dtrace -n 'fbt::cpu_halt:entry { @[stack()] = count(); }'
+ dtrace: description 'fbt::cpu_halt:entry ' matched 1 probe
+ ^C
+
+ unix`idle+0x3b
+ unix`thread_start+0x3
+ 956
+
+This kernel stack trace indicates that cpu_halt() is called by idle().
+
+The following is a SPARC example,
+
+ # ./hotkernel
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ FUNCTION COUNT PCNT
+ genunix`fop_ioctl 1 0.1%
+ genunix`allocb_cred 1 0.1%
+ genunix`poll_common 1 0.1%
+ genunix`cv_block 1 0.1%
+ genunix`strioctl 1 0.1%
+ genunix`disp_lock_exit 1 0.1%
+ genunix`crfree 1 0.1%
+ ufs`ufs_getpage 1 0.1%
+ SUNW,UltraSPARC-IIi`copyin 1 0.1%
+ genunix`strmakedata 1 0.1%
+ genunix`cv_waituntil_sig 1 0.1%
+ SUNW,UltraSPARC-IIi`prefetch_page_r 1 0.1%
+ unix`set_freemem 1 0.1%
+ unix`page_trylock 1 0.1%
+ genunix`anon_get_ptr 1 0.1%
+ unix`page_hashin 1 0.1%
+ genunix`bt_getlowbit 1 0.1%
+ unix`pp_load_tlb 1 0.1%
+ unix`_resume_from_idle 1 0.1%
+ unix`hat_pageunload 1 0.1%
+ genunix`strrput 1 0.1%
+ genunix`strpoll 1 0.1%
+ unix`page_do_hashin 1 0.1%
+ unix`cpu_vm_stats_ks_update 1 0.1%
+ genunix`sleepq_wakeone_chan 1 0.1%
+ unix`lock_set_spl 1 0.1%
+ tl`tl_wput 1 0.1%
+ genunix`kstrgetmsg 1 0.1%
+ genunix`qbackenable 1 0.1%
+ genunix`releasef 1 0.1%
+ genunix`callout_execute 1 0.1%
+ uata`ata_hba_start 1 0.1%
+ genunix`pcacheset_cmp 1 0.1%
+ genunix`sleepq_insert 1 0.1%
+ genunix`syscall_mstate 1 0.1%
+ sockfs`sotpi_recvmsg 1 0.1%
+ genunix`strput 1 0.1%
+ genunix`timespectohz 1 0.1%
+ unix`lock_clear_splx 1 0.1%
+ genunix`read 1 0.1%
+ genunix`as_segcompar 1 0.1%
+ unix`atomic_cas_64 1 0.1%
+ unix`mutex_exit 1 0.1%
+ genunix`cv_unsleep 1 0.1%
+ unix`putnext 1 0.1%
+ unix`intr_thread 1 0.1%
+ genunix`hrt2tv 1 0.1%
+ sockfs`socktpi_poll 1 0.1%
+ unix`sfmmu_mlspl_enter 1 0.1%
+ SUNW,UltraSPARC-IIi`get_ecache_tag 1 0.1%
+ SUNW,UltraSPARC-IIi`gethrestime 1 0.1%
+ genunix`cv_timedwait_sig 1 0.1%
+ genunix`getq_noenab 1 0.1%
+ SUNW,UltraSPARC-IIi`flushecacheline 1 0.1%
+ unix`utl0 1 0.1%
+ genunix`anon_alloc 1 0.1%
+ unix`page_downgrade 1 0.1%
+ unix`setfrontdq 1 0.1%
+ genunix`timeout_common 1 0.1%
+ unix`bzero 1 0.1%
+ unix`ktl0 2 0.1%
+ genunix`canputnext 2 0.1%
+ genunix`clear_active_fd 2 0.1%
+ unix`sfmmu_tlb_demap 2 0.1%
+ unix`page_vpadd 2 0.1%
+ SUNW,UltraSPARC-IIi`check_ecache_line 2 0.1%
+ genunix`cyclic_softint 2 0.1%
+ genunix`restore_mstate 2 0.1%
+ genunix`anon_map_getpages 2 0.1%
+ genunix`putq 2 0.1%
+ unix`page_lookup_create 2 0.1%
+ dtrace`dtrace_dynvar_clean 2 0.1%
+ unix`sfmmu_pageunload 2 0.1%
+ genunix`cpu_decay 2 0.1%
+ genunix`kmem_cache_alloc 3 0.2%
+ unix`rw_exit 3 0.2%
+ tl`tl_wput_data_ser 3 0.2%
+ unix`page_get_replacement_page 3 0.2%
+ unix`page_sub 3 0.2%
+ genunix`clock 3 0.2%
+ SUNW,UltraSPARC-IIi`copyout 3 0.2%
+ unix`mutex_enter 4 0.2%
+ genunix`pcache_poll 5 0.3%
+ SUNW,UltraSPARC-IIi`scrub_ecache_line 5 0.3%
+ SUNW,UltraSPARC-IIi`hwblkpagecopy 22 1.2%
+ SUNW,UltraSPARC-IIi`hwblkclr 39 2.1%
+ unix`generic_idle_cpu 506 26.8%
+ unix`idle 1199 63.5%
+
+Which shows the most common function is unix`idle.
+
+
+
+
+Now the hotkernel tool is demonstrated with the -m option, to only print
+out samples by module,
+
+ # ./hotkernel -m
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ MODULE COUNT PCNT
+ usbms 1 0.0%
+ specfs 1 0.0%
+ uhci 1 0.0%
+ sockfs 2 0.0%
+ genunix 28 0.6%
+ unix 4539 99.3%
+
+Here, genunix and unix (the two core parts of the kernel) were the most
+common module to be executing on-CPU.
diff --git a/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt b/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt
new file mode 100644
index 000000000000..179ba8d0a18f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt
@@ -0,0 +1,34 @@
+The following is a demonstration of the hotspot.d script.
+
+Here the script is run while a large file is copied from one filesystem
+(cmdk0 102,0) to another (cmdk0 102,3). We can see the file mostly resided
+around the 9000 to 10999 Mb range on the source disk (102,0), and was
+copied to the 0 to 999 Mb range on the target disk (102,3).
+
+ # ./hotspot.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ Disk: cmdk0 Major,Minor: 102,3
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 418
+ 1000 | 0
+
+ Disk: cmdk0 Major,Minor: 102,0
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 | 1
+ 1000 | 5
+ 2000 | 0
+ 3000 | 0
+ 4000 | 0
+ 5000 | 0
+ 6000 | 0
+ 7000 | 0
+ 8000 | 0
+ 9000 |@@@@@ 171
+ 10000 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1157
+ 11000 | 0
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt b/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt
new file mode 100644
index 000000000000..c038acd6cda8
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt
@@ -0,0 +1,107 @@
+The following are demonstrations of the hotuser DTrace program.
+
+
+Here, hotuser is run on a test program called "dofuncs", which is hard coded
+to spend half its time in delta(), a third in beta() and a sixth in alpha().
+
+ # ./hotuser -c ./dofuncs
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ FUNCTION COUNT PCNT
+ dofuncs`alpha 511 16.5%
+ dofuncs`beta 1029 33.3%
+ dofuncs`delta 1552 50.2%
+
+hotuser has accurately sampled which user-level functions are on the CPU,
+producing a report of the expected breakdown. The hottest user-level function
+is delta(), which was sampled 1552 times - 50.2% of the total samples.
+
+
+
+Now hotuser is run on gunzip, to find which functions are most often
+on the CPU,
+
+ # ./hotuser -c 'gunzip contents.gz'
+ Sampling... Hit Ctrl-C to end.
+
+ FUNCTION COUNT PCNT
+ libc.so.1`_free_unlocked 1 0.1%
+ gunzip`unzip 1 0.1%
+ ld.so.1`strcmp 1 0.1%
+ gunzip`inflate_dynamic 1 0.1%
+ libc.so.1`_write 1 0.1%
+ gunzip`write_buf 1 0.1%
+ gunzip`0x2d990 2 0.3%
+ libc.so.1`write 2 0.3%
+ gunzip`0x2d994 2 0.3%
+ ld.so.1`rtld_db_preinit 3 0.4%
+ gunzip`0x2d98c 7 0.9%
+ gunzip`huft_build 9 1.2%
+ libc_psr.so.1`memcpy 138 18.5%
+ gunzip`inflate_codes 233 31.2%
+ gunzip`updcrc 344 46.1%
+
+This shows that updcrc() was sampled 344 times, and 46.1% of the total
+samples.
+
+
+
+A -l option will provide a breakdown on libraries only. hotuser
+is run on gzip to show library usage only,
+
+ # ./hotuser -lc 'gzip contents'
+ Sampling... Hit Ctrl-C to end.
+
+ LIBRARY COUNT PCNT
+ libc.so.1 2 0.0%
+ libc_psr.so.1 37 0.9%
+ gzip 4113 99.1%
+
+This shows that code in the gzip binary itself was on the CPU 99.1% of
+the sample times, with libc_psr.so.1 code on the CPU 0.9% of the time.
+
+
+
+The following shows library usage of mozilla. The pgrep command is used to
+match the most recent PID of mozilla-bin.
+
+ # ./hotuser -lp `pgrep -n mozilla-bin`
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ LIBRARY COUNT PCNT
+ libplds4.so 1 0.1%
+ libappcomps.so 1 0.1%
+ libi18n.so 1 0.1%
+ libuconv.so 1 0.1%
+ libpref.so 1 0.1%
+ libblueprint.so 1 0.1%
+ libz.so.1 2 0.2%
+ libcaps.so 2 0.2%
+ libXrender.so.1 2 0.2%
+ libimglib2.so 2 0.2%
+ libXft.so.2 3 0.3%
+ libCrun.so.1 3 0.3%
+ libdocshell.so 3 0.3%
+ libplc4.so 4 0.4%
+ libgtk-x11-2.0.so.0.400.9 5 0.5%
+ libjsd.so 5 0.5%
+ libX11.so.4 5 0.5%
+ libnecko.so 8 0.9%
+ libwidget_gtk2.so 9 1.0%
+ libgkgfx.so 13 1.4%
+ libglib-2.0.so.0.400.1 14 1.5%
+ libgfx_gtk.so 18 2.0%
+ libnspr4.so 20 2.2%
+ libxpconnect.so 22 2.4%
+ libgdk-x11-2.0.so.0.400.9 23 2.5%
+ libgobject-2.0.so.0.400.1 25 2.7%
+ libhtmlpars.so 27 3.0%
+ libfontconfig.so.1 41 4.5%
+ libxpcom.so 49 5.4%
+ mozilla-bin 55 6.0%
+ libmozjs.so 80 8.8%
+ libc.so.1 115 12.6%
+ libgklayout.so 352 38.6%
+
+This shows that 352 samples found code from libgklayout.so running, which
+was 38.6% of the samples.
diff --git a/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt
new file mode 100644
index 000000000000..b9f59e8ca687
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt
@@ -0,0 +1,36 @@
+The following is an example of using the httpdstat.d script.
+
+
+This Solaris 10 server is running Apache as a webserver. The script matches
+on the process name "httpd". Here it shows many GET connections,
+
+ # httpdstat.d
+ TIME NUM GET POST HEAD TRACE
+ 2005 Nov 29 18:46:46 38 38 0 0 0
+ 2005 Nov 29 18:46:47 109 109 0 0 0
+ 2005 Nov 29 18:46:48 112 112 0 0 0
+ 2005 Nov 29 18:46:49 113 113 0 0 0
+ 2005 Nov 29 18:46:50 107 107 0 0 0
+ 2005 Nov 29 18:46:51 56 56 0 0 0
+ 2005 Nov 29 18:46:52 0 0 0 0 0
+ 2005 Nov 29 18:46:53 0 0 0 0 0
+ 2005 Nov 29 18:46:54 20 20 0 0 0
+ 2005 Nov 29 18:46:55 48 48 0 0 0
+ ^C
+
+For a few seconds we had around 100 GETs per second.
+
+
+
+httpdstat.d accepts an argument as the sample interval, here we print a
+line every 30 seconds,
+
+ # httpdstat.d 30
+ TIME NUM GET POST HEAD TRACE
+ 2005 Nov 29 18:50:49 462 458 3 1 0
+ 2005 Nov 29 18:51:19 421 413 5 2 1
+ 2005 Nov 29 18:51:49 1361 1358 3 0 0
+ ^C
+
+The values are for the entire interval.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt
new file mode 100644
index 000000000000..e8b8cfe6500b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt
@@ -0,0 +1,29 @@
+The following is a demonstration of the icmpstat.d script,
+
+
+Here we run it and catch an inbound ping,
+
+ # icmpstat.d
+ 2005 Jul 25 23:05:39,
+
+ STATISTIC VALUE
+
+ 2005 Jul 25 23:05:40,
+
+ STATISTIC VALUE
+ icmpOutMsgs 1
+ icmpOutEchoReps 1
+ icmpInEchos 1
+ icmpInMsgs 1
+
+ 2005 Jul 25 23:05:41,
+
+ STATISTIC VALUE
+
+ ^C
+
+Files such as /usr/include/inet/mib2.h may explain each of the statistics.
+
+The icmpstat.d is a simple demonstration of tracing ICMP activity. It may
+serve as the starting point for other scripts.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt b/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt
new file mode 100644
index 000000000000..5ed213cba6ba
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt
@@ -0,0 +1,11 @@
+The following is a demonstration of the intbycpu.d script,
+
+ # intbycpu.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ CPU INTERRUPTS
+ 0 374
+ 1 412
+
+In the above output, CPU 1 had 412 interrupts, and CPU 0 had 374.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt b/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt
new file mode 100644
index 000000000000..ed408eb6a17d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt
@@ -0,0 +1,93 @@
+The following is an example of the intoncpu.d script.
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # ./intoncpu.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ uhci1
+
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8192 | 0
+ uhci0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 2048 |@@@@ 2
+ 4096 |@@ 1
+ 8192 |@@ 1
+ 16384 | 0
+ rtls0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@ 8
+ 2048 |@@@@@@@@@@ 5
+ 4096 |@@@@@@ 3
+ 8192 | 0
+ 16384 |@@ 1
+ 32768 |@@ 1
+ 65536 |@@@@ 2
+ 131072 | 0
+
+The rtls0 driver (the network interface) has encourtered the most interrupts,
+with the time taken to process each interrupt visible as a distribution.
+These times ranged from around 1000 ns (1 us), to at least 65536 ns (65 us).
+
+To determine which devices the instance names represent (eg, "uhci1"), the
+/etc/path_to_inst file could be examied.
+
+
+
+The following is a longer example of running intoncpu.d,
+
+ # ./intoncpu.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ uhci1
+
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 8192 | 0
+ ata1
+
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@ 2
+ 32768 |@@@@@@@@@@@@@@@@@@@@ 2
+ 65536 | 0
+ ata0
+
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@ 55
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 113
+ 16384 |@ 5
+ 32768 | 0
+ uhci0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1288
+ 2048 |@@ 53
+ 4096 | 6
+ 8192 | 0
+ rtls0
+
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 665
+ 2048 |@@@@@@@@@ 307
+ 4096 |@ 35
+ 8192 | 0
+ 16384 |@@@@@@@ 229
+ 32768 |@@@ 91
+ 65536 |@ 19
+ 131072 | 1
+ 262144 | 0
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt b/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt
new file mode 100644
index 000000000000..384d700ba234
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt
@@ -0,0 +1,18 @@
+The following is a demonstration of the inttimes.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # inttimes.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ DEVICE TIME (ns)
+ ata0 22324
+ uhci1 45893
+ ata1 138559
+ uhci0 229226
+ i80420 1305617
+ rtls0 2540175
+
+In the above output, we can see that the rtls0 driver spent 2540 us on the
+CPU servicing interrupts, while ata0 spent only 22 us.
diff --git a/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt b/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt
new file mode 100644
index 000000000000..f4fc476910f0
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt
@@ -0,0 +1,35 @@
+The following is a demonstration of the iofile.d script,
+
+
+Here we run it while a tar command is backing up /var/adm,
+
+ # iofile.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD TIME FILE
+ 5206 tar 109 /var/adm/acct/nite
+ 5206 tar 110 /var/adm/acct/sum
+ 5206 tar 114 /var/adm/acct/fiscal
+ 5206 tar 117 /var/adm/messages.3
+ 5206 tar 172 /var/adm/sa
+ 5206 tar 3605 /var/adm/messages.2
+ 5206 tar 4548 /var/adm/spellhist
+ 5206 tar 5769 /var/adm/exacct/brendan1task
+ 5206 tar 6416 /var/adm/acct
+ 5206 tar 7587 /var/adm/messages.1
+ 5206 tar 8246 /var/adm/exacct/task
+ 5206 tar 8320 /var/adm/pool
+ 5206 tar 8973 /var/adm/pool/history
+ 5206 tar 9183 /var/adm/exacct
+ 3 fsflush 10882 <none>
+ 5206 tar 11861 /var/adm/exacct/flow
+ 5206 tar 12042 /var/adm/messages.0
+ 5206 tar 12408 /var/adm/sm.bin
+ 5206 tar 13021 /var/adm/sulog
+ 5206 tar 19007 /var/adm/streams
+ 5206 tar 21811 <none>
+ 5206 tar 24918 /var/adm/exacct/proc
+
+In the above output, we can see that the tar command spent 24918 us (25 ms)
+waiting for disk I/O on the /var/adm/exacct/proc file.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt b/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt
new file mode 100644
index 000000000000..21597f7e776d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt
@@ -0,0 +1,23 @@
+The following is a demonstration of the iofileb.d script,
+
+
+Here we run it while a tar command is backing up /var/adm,
+
+ # ./iofileb.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD KB FILE
+ 29529 tar 56 /var/adm/sa/sa31
+ 29529 tar 56 /var/adm/sa/sa03
+ 29529 tar 56 /var/adm/sa/sa02
+ 29529 tar 56 /var/adm/sa/sa01
+ 29529 tar 56 /var/adm/sa/sa04
+ 29529 tar 56 /var/adm/sa/sa27
+ 29529 tar 56 /var/adm/sa/sa28
+ 29529 tar 324 /var/adm/exacct/task
+ 29529 tar 736 /var/adm/wtmpx
+
+In the above output, we can see that the tar command has caused 736 Kbytes
+of the /var/adm/wtmpx file to be read from disk. All af the Kbyte values
+measured are for disk activity.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt b/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt
new file mode 100644
index 000000000000..818a4a22e6dc
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt
@@ -0,0 +1,57 @@
+The following is a demonstration of the iopattern program,
+
+
+Here we run iopattern for a few seconds then hit Ctrl-C. There is a "dd"
+command running on this system to intentionally create heavy sequential
+disk activity,
+
+ # iopattern
+ %RAN %SEQ COUNT MIN MAX AVG KR KW
+ 1 99 465 4096 57344 52992 23916 148
+ 0 100 556 57344 57344 57344 31136 0
+ 0 100 634 57344 57344 57344 35504 0
+ 6 94 554 512 57344 54034 29184 49
+ 0 100 489 57344 57344 57344 27384 0
+ 21 79 568 4096 57344 46188 25576 44
+ 4 96 431 4096 57344 56118 23620 0
+ ^C
+
+In the above output we can see that the disk activity is mostly sequential.
+The disks are also pulling around 30 Mb during each sample, with a large
+average event size.
+
+
+
+The following demonstrates iopattern while running a "find" command to
+cause random disk activity,
+
+ # iopattern
+ %RAN %SEQ COUNT MIN MAX AVG KR KW
+ 86 14 400 1024 8192 1543 603 0
+ 81 19 455 1024 8192 1606 714 0
+ 89 11 469 512 8192 1854 550 299
+ 83 17 463 1024 8192 1782 806 0
+ 87 13 394 1024 8192 1551 597 0
+ 85 15 348 512 57344 2835 808 155
+ 91 9 513 512 47616 2812 570 839
+ 76 24 317 512 35840 3755 562 600
+ ^C
+
+In the above output, we can see from the percentages that the disk events
+were mostly random. We can also see that the average event size is small -
+which makes sense if we are reading through many directory files.
+
+
+
+iopattern has options. Here we print timestamps "-v" and measure every 10
+seconds,
+
+ # iopattern -v 10
+ TIME %RAN %SEQ COUNT MIN MAX AVG KR KW
+ 2005 Jul 25 20:40:55 97 3 33 512 8192 1163 8 29
+ 2005 Jul 25 20:41:05 0 0 0 0 0 0 0 0
+ 2005 Jul 25 20:41:15 84 16 6 512 11776 5973 22 13
+ 2005 Jul 25 20:41:25 100 0 26 512 8192 1496 8 30
+ 2005 Jul 25 20:41:35 0 0 0 0 0 0 0 0
+ ^C
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt b/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt
new file mode 100644
index 000000000000..f4bc8225c867
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt
@@ -0,0 +1,126 @@
+The following is a demonstration of the iopending tool,
+
+Here we run it with a sample interval of 1 second,
+
+ # iopending 1
+ Tracing... Please wait.
+ 2006 Jan 6 20:21:59, load: 0.02, disk_r: 0 KB, disk_w: 0 KB
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1010
+ 1 | 0
+
+ 2006 Jan 6 20:22:00, load: 0.03, disk_r: 0 KB, disk_w: 0 KB
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1000
+ 1 | 0
+
+ 2006 Jan 6 20:22:01, load: 0.03, disk_r: 0 KB, disk_w: 0 KB
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1000
+ 1 | 0
+
+ ^C
+
+The iopending tool samples at 1000 Hz, and prints a distribution of how many
+disk events were "pending" completion. In the above example the disks are
+quiet - for all the samples there are zero disk events pending.
+
+
+
+Now iopending is run with no arguments. It will default to an interval of 5
+seconds,
+
+ # iopending
+ Tracing... Please wait.
+ 2006 Jan 6 19:15:41, load: 0.03, disk_r: 3599 KB, disk_w: 0 KB
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4450
+ 1 |@@@ 390
+ 2 |@ 80
+ 3 | 40
+ 4 | 20
+ 5 | 30
+ 6 | 0
+
+ ^C
+
+In the above output there was a little disk activity. For 390 samples there
+was 1 I/O event pending; for 80 samples there was 2, and so on.
+
+
+
+
+In the following example iopending is run during heavy disk activity. We
+print output every 10 seconds,
+
+ # iopending 10
+ Tracing... Please wait.
+ 2006 Jan 6 20:58:07, load: 0.03, disk_r: 25172 KB, disk_w: 33321 KB
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@ 2160
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6720
+ 2 |@@@@ 1000
+ 3 | 50
+ 4 | 30
+ 5 | 20
+ 6 | 10
+ 7 | 10
+ 8 | 10
+ 9 | 0
+
+ 2006 Jan 6 20:58:17, load: 0.05, disk_r: 8409 KB, disk_w: 12449 KB
+
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7260
+ 1 |@@@@@@@ 1700
+ 2 |@ 300
+ 3 | 0
+ 4 | 10
+ 5 | 10
+ 6 | 10
+ 7 | 20
+ 8 | 0
+ 9 | 0
+ 10 | 0
+ 11 | 0
+ 12 | 0
+ 13 | 0
+ 14 | 0
+ 15 | 0
+ 16 | 0
+ 17 | 10
+ 18 | 20
+ 19 | 0
+ 20 | 0
+ 21 | 0
+ 22 | 0
+ 23 | 0
+ 24 | 0
+ 25 | 0
+ 26 | 0
+ 27 | 0
+ 28 | 0
+ 29 | 0
+ 30 | 0
+ 31 | 10
+ >= 32 |@@@ 650
+
+ ^C
+
+In the first output, most of the time (67%) there was 1 event pending,
+and for a short time there were 8 events pending. In the second output we
+see many samples were off the scale - 650 samples at 32 or more pending
+events. For this sample I had typed "sync" in another window, which
+queued many disk events immediately which were eventually completed.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt
new file mode 100644
index 000000000000..addb7dcbbe46
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt
@@ -0,0 +1,39 @@
+The following demonstrates iosnoop. It was run on a system that was
+fairly quiet until a tar command was run,
+
+# ./iosnoop
+ UID PID D BLOCK SIZE COMM PATHNAME
+ 0 0 W 1067 512 sched <none>
+ 0 0 W 6496304 1024 sched <none>
+ 0 3 W 6498797 512 fsflush <none>
+ 0 0 W 1067 512 sched <none>
+ 0 0 W 6496304 1024 sched <none>
+ 100 443 R 892288 4096 Xsun /usr/openwin/bin/Xsun
+ 100 443 R 891456 4096 Xsun /usr/openwin/bin/Xsun
+ 100 15795 R 3808 8192 tar /usr/bin/eject
+ 100 15795 R 35904 6144 tar /usr/bin/eject
+ 100 15795 R 39828 6144 tar /usr/bin/env
+ 100 15795 R 3872 8192 tar /usr/bin/expr
+ 100 15795 R 21120 7168 tar /usr/bin/expr
+ 100 15795 R 43680 6144 tar /usr/bin/false
+ 100 15795 R 44176 6144 tar /usr/bin/fdetach
+ 100 15795 R 3920 8192 tar /usr/bin/fdformat
+ 100 15795 R 3936 8192 tar /usr/bin/fdformat
+ 100 15795 R 4080 8192 tar /usr/bin/fdformat
+ 100 15795 R 9680 3072 tar /usr/bin/fdformat
+ 100 15795 R 4096 8192 tar /usr/bin/fgrep
+ 100 15795 R 46896 6144 tar /usr/bin/fgrep
+ 100 15795 R 4112 8192 tar /usr/bin/file
+ 100 15795 R 4128 8192 tar /usr/bin/file
+ 100 15795 R 4144 8192 tar /usr/bin/file
+ 100 15795 R 21552 7168 tar /usr/bin/file
+ 100 15795 R 4192 8192 tar /usr/bin/fmli
+ 100 15795 R 4208 8192 tar /usr/bin/fmli
+ 100 15795 R 4224 57344 tar /usr/bin/fmli
+ 100 15795 R 4336 24576 tar /usr/bin/fmli
+ 100 15795 R 695792 8192 tar <none>
+ 100 15795 R 696432 57344 tar /usr/bin/fmli
+[...]
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt b/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt
new file mode 100644
index 000000000000..8cf55c189ba3
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt
@@ -0,0 +1,142 @@
+The following are demonstrations of the iotop program,
+
+
+Here we run iotop with the -C option to not clear the screen, but instead
+provide a scrolling output,
+
+ # iotop -C
+ Tracing... Please wait.
+ 2005 Jul 16 00:34:40, load: 1.21, disk_r: 12891 KB, disk_w: 1087 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D BYTES
+ 0 3 0 fsflush cmdk0 102 4 W 512
+ 0 3 0 fsflush cmdk0 102 0 W 11776
+ 0 27751 20320 tar cmdk0 102 16 W 23040
+ 0 3 0 fsflush cmdk0 102 0 R 73728
+ 0 0 0 sched cmdk0 102 0 R 548864
+ 0 0 0 sched cmdk0 102 0 W 1078272
+ 0 27751 20320 tar cmdk0 102 16 R 1514496
+ 0 27751 20320 tar cmdk0 102 3 R 11767808
+
+ 2005 Jul 16 00:34:45, load: 1.23, disk_r: 83849 KB, disk_w: 488 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D BYTES
+ 0 0 0 sched cmdk0 102 4 W 1536
+ 0 0 0 sched cmdk0 102 0 R 131072
+ 0 27752 20320 find cmdk0 102 0 R 262144
+ 0 0 0 sched cmdk0 102 0 W 498176
+ 0 27751 20320 tar cmdk0 102 3 R 11780096
+ 0 27751 20320 tar cmdk0 102 5 R 29745152
+ 0 27751 20320 tar cmdk0 102 4 R 47203328
+
+ 2005 Jul 16 00:34:50, load: 1.25, disk_r: 22394 KB, disk_w: 2 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D BYTES
+ 0 27752 20320 find cmdk0 102 0 W 2048
+ 0 0 0 sched cmdk0 102 0 R 16384
+ 0 321 1 automountd cmdk0 102 0 R 22528
+ 0 27752 20320 find cmdk0 102 0 R 1462272
+ 0 27751 20320 tar cmdk0 102 5 R 17465344
+
+In the above output, we can see a tar command is reading from the cmdk0
+disk, from several different slices (different minor numbers), on the last
+report focusing on 102,5 (an "ls -lL" in /dev/dsk can explain the number to
+slice mappings).
+
+The disk_r and disk_w values give a summary of the overall activity in
+bytes.
+
+
+
+Bytes can be used as a yardstick to determine which process is keeping the
+disks busy, however either of the delta times available from iotop would
+be more accurate (as they take into account whether the activity is random
+or sequential).
+
+ # iotop -Co
+ Tracing... Please wait.
+ 2005 Jul 16 00:39:03, load: 1.10, disk_r: 5302 KB, disk_w: 20 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D DISKTIME
+ 0 0 0 sched cmdk0 102 0 W 532
+ 0 0 0 sched cmdk0 102 0 R 245398
+ 0 27758 20320 find cmdk0 102 0 R 3094794
+
+ 2005 Jul 16 00:39:08, load: 1.14, disk_r: 5268 KB, disk_w: 273 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D DISKTIME
+ 0 3 0 fsflush cmdk0 102 0 W 2834
+ 0 0 0 sched cmdk0 102 0 W 263527
+ 0 0 0 sched cmdk0 102 0 R 285015
+ 0 3 0 fsflush cmdk0 102 0 R 519187
+ 0 27758 20320 find cmdk0 102 0 R 2429232
+
+ 2005 Jul 16 00:39:13, load: 1.16, disk_r: 602 KB, disk_w: 1238 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D DISKTIME
+ 0 3 0 fsflush cmdk0 102 4 W 200
+ 0 3 0 fsflush cmdk0 102 6 W 260
+ 0 3 0 fsflush cmdk0 102 0 W 883
+ 0 27758 20320 find cmdk0 102 0 R 55686
+ 0 3 0 fsflush cmdk0 102 0 R 317508
+ 0 0 0 sched cmdk0 102 0 R 320195
+ 0 0 0 sched cmdk0 102 0 W 571084
+ [...]
+
+The disk time is in microseconds. In the first sample, we can see the find
+command caused a total of 3.094 seconds of disk time - the duration of the
+samples here is 5 seconds (the default), so it would be fair to say that
+the find command is keeping the disk 60% busy.
+
+
+
+A new option for iotop is to print percents "-P" which are based on disk
+I/O times, and hense are a fair measurementt of what is keeping the disks
+busy.
+
+ # iotop -PC 1
+ Tracing... Please wait.
+ 2005 Nov 18 15:26:14, load: 0.24, disk_r: 13176 KB, disk_w: 0 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D %I/O
+ 0 2215 1663 bart cmdk0 102 0 R 85
+
+ 2005 Nov 18 15:26:15, load: 0.25, disk_r: 5263 KB, disk_w: 0 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D %I/O
+ 0 2214 1663 find cmdk0 102 0 R 15
+ 0 2215 1663 bart cmdk0 102 0 R 67
+
+ 2005 Nov 18 15:26:16, load: 0.25, disk_r: 8724 KB, disk_w: 0 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D %I/O
+ 0 2214 1663 find cmdk0 102 0 R 10
+ 0 2215 1663 bart cmdk0 102 0 R 71
+
+ 2005 Nov 18 15:26:17, load: 0.25, disk_r: 7528 KB, disk_w: 0 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D %I/O
+ 0 2214 1663 find cmdk0 102 0 R 0
+ 0 2215 1663 bart cmdk0 102 0 R 85
+
+ 2005 Nov 18 15:26:18, load: 0.26, disk_r: 11389 KB, disk_w: 0 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D %I/O
+ 0 2214 1663 find cmdk0 102 0 R 2
+ 0 2215 1663 bart cmdk0 102 0 R 80
+
+ 2005 Nov 18 15:26:19, load: 0.26, disk_r: 22109 KB, disk_w: 0 KB
+
+ UID PID PPID CMD DEVICE MAJ MIN D %I/O
+ 0 2215 1663 bart cmdk0 102 0 R 76
+
+ ^C
+
+In the above output, bart and find jostle for disk access as they create
+a database of file checksums. The command was,
+
+ find / | bart create -I > /dev/null
+
+Note that the %I/O is in terms of 1 disk. A %I/O of say 200 is allowed - it
+would mean that effectively 2 disks were at 100%, or 4 disks at 50%, etc.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt
new file mode 100644
index 000000000000..b659c0afc3ed
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt
@@ -0,0 +1,247 @@
+This is an example of j_calldist.d showing the elapsed times for different
+types of Java operations.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0), and produces the output in graphical format, showing
+a histogram of the amount of time taken by each call. Method calls are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+Because of the extensive results returned otherwise, this script will show you
+a configurable number of results in each section. The default (as in this
+example) is ten.
+
+Here we see it tracing the activity of Code/Java/Func_abc.
+
+# j_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 elapsed times (us),
+
+Top 10 exclusive method elapsed times (us),
+ PID=311342, method, sun/net/www/ParseUtil.decode
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@ 3
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@ 5
+ 2048 |@@@@ 1
+ 4096 | 0
+
+ PID=311342, method, java/net/URLClassLoader.<clinit>
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ PID=311342, method, java/util/jar/JarFile.hasClassPathAttribute
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ PID=311342, method, java/util/zip/ZipFile.read
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ PID=311342, method, sun/nio/cs/US_ASCII.newEncoder
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ PID=311342, method, java/util/zip/ZipFile.getInputStream
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ PID=311342, method, sun/nio/cs/US_ASCII.newDecoder
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@ 1
+ 16 |@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@@@@@@@@@ 1
+ 16384 | 0
+
+ PID=311342, method, java/util/HashMap.<init>
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@ 8
+ 16 |@@@@@@@@@@@@@@@@ 9
+ 32 |@@@@@@@@@ 5
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@ 1
+ 16384 | 0
+
+ PID=311342, method, java/io/UnixFileSystem.normalize
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@ 1
+ 16 | 0
+ 32 | 0
+ 64 |@@@@@@@@@ 8
+ 128 |@@@@@@@@@@@@@ 11
+ 256 |@@@@@@ 5
+ 512 |@@@@@@@@@ 8
+ 1024 | 0
+ 2048 | 0
+ 4096 |@ 1
+ 8192 | 0
+
+ PID=311342, method, java/lang/Thread.sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+
+Top 10 inclusive method elapsed times (us),
+ PID=311342, method, java/net/URLClassLoader$1.run
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@ 1
+ 131072 | 0
+
+ PID=311342, method, java/net/URLClassLoader.findClass
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@ 1
+ 131072 | 0
+
+ PID=311342, method, sun/misc/URLClassPath.getLoader
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@ 1
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@ 2
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 8192 | 0
+ 16384 |@@@ 1
+ 32768 | 0
+ 65536 |@@@ 1
+ 131072 | 0
+
+ PID=311342, method, java/lang/ClassLoader.loadClass
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@ 6
+ 256 |@@@@@@@@@@@@@@@@@@@@@@ 15
+ 512 |@@@@ 3
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 0
+ 32768 | 0
+ 65536 |@@@@ 3
+ 131072 | 0
+
+ PID=311342, method, java/security/AccessController.doPrivileged
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@ 2
+ 32 |@ 1
+ 64 |@@@@ 4
+ 128 |@@@@@@@@@@@@@@@@ 17
+ 256 |@ 1
+ 512 |@@@@ 4
+ 1024 |@@ 2
+ 2048 |@ 1
+ 4096 |@@@@@@ 6
+ 8192 |@ 1
+ 16384 |@@ 2
+ 32768 | 0
+ 65536 |@@ 2
+ 131072 | 0
+
+ PID=311342, method, Func_abc.func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ PID=311342, method, Func_abc.func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ PID=311342, method, java/lang/Thread.sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+ PID=311342, method, Func_abc.func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ PID=311342, method, Func_abc.main
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+The elapsed times section is empty. It would show us anything that is not a
+Java method - garbage collection for example. However there was nothing of
+the kind in this example.
+
+The exclusive method elapsed times show us the time spent in the top ten most
+time consuming methods, not including time spent in subroutines called by
+those methods.
+
+The inclusive method elapsed times show us the time spent in the top ten most
+time consuming methods including time spent in subroutines called by those
+methods.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt
new file mode 100644
index 000000000000..3aacb2c9025c
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt
@@ -0,0 +1,137 @@
+The following are examples of running the j_calls.d script.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls and object allocation are only visible
+when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+Here we see it running on Code/Java/Func_abc
+
+# j_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ PID TYPE NAME COUNT
+ 311334 cload Func_abc 1
+ 311334 cload java/io/BufferedInputStream 1
+ 311334 cload java/io/BufferedOutputStream 1
+ 311334 cload java/io/BufferedReader 1
+ 311334 cload java/io/BufferedWriter 1
+ 311334 cload java/io/Closeable 1
+ 311334 cload java/io/Console 1
+ 311334 cload java/io/Console$1 1
+ 311334 cload java/io/Console$1$1 1
+ 311334 cload java/io/DataInput 1
+ 311334 cload java/io/DataInputStream 1
+ 311334 cload java/io/DeleteOnExitHook 1
+ 311334 cload java/io/ExpiringCache 1
+ 311334 cload java/io/ExpiringCache$1 1
+ 311334 cload java/io/ExpiringCache$Entry 1
+ 311334 cload java/io/File 1
+ 311334 cload java/io/File$1 1
+ 311334 cload java/io/FileDescriptor 1
+ 311334 cload java/io/FileInputStream 1
+ 311334 cload java/io/FileOutputStream 1
+ 311334 cload java/io/FilePermission 1
+ 311334 cload java/io/FilePermission$1 1
+ 311334 cload java/io/FilePermissionCollection 1
+ 311334 cload java/io/FileReader 1
+ 311334 cload java/io/FileSystem 1
+ 311334 cload java/io/FilterInputStream 1
+ 311334 cload java/io/FilterOutputStream 1
+ 311334 cload java/io/Flushable 1
+ 311334 cload java/io/InputStream 1
+ 311334 cload java/io/InputStreamReader 1
+ 311334 cload java/io/ObjectStreamClass 1
+ 311334 cload java/io/ObjectStreamField 1
+ 311334 cload java/io/OutputStream 1
+ 311334 cload java/io/OutputStreamWriter 1
+ 311334 cload java/io/PrintStream 1
+ 311334 cload java/io/Reader 1
+ 311334 cload java/io/Serializable 1
+ 311334 cload java/io/UnixFileSystem 1
+ 311334 cload java/io/Writer 1
+ 311334 cload java/lang/AbstractStringBuilder 1
+ 311334 cload java/lang/Appendable 1
+ 311334 cload java/lang/ApplicationShutdownHooks 1
+ 311334 cload java/lang/ArithmeticException 1
+ 311334 cload java/lang/ArrayStoreException 1
+ 311334 cload java/lang/Boolean 1
+ 311334 cload java/lang/Byte 1
+ 311334 cload java/lang/CharSequence 1
+ 311334 cload java/lang/Character 1
+ 311334 cload java/lang/CharacterDataLatin1 1
+ 311334 cload java/lang/Class 1
+[... 1400 lines truncated ...]
+ 311334 method java/lang/Class.getClassLoader0 34
+ 311334 method java/lang/String.toLowerCase 34
+ 311334 method sun/security/action/GetPropertyAction.run 34
+ 311334 method java/nio/CharBuffer.arrayOffset 36
+ 311334 method java/util/HashMap.getEntry 36
+ 311334 method java/io/File.<init> 37
+ 311334 method java/io/UnixFileSystem.prefixLength 37
+ 311334 oalloc java/io/File 37
+ 311334 oalloc java/lang/reflect/Field 37
+ 311334 method java/io/BufferedReader.readLine 38
+ 311334 method java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread 38
+ 311334 method java/lang/CharacterDataLatin1.toLowerCase 41
+ 311334 method java/lang/CharacterDataLatin1.getProperties 43
+ 311334 method java/security/AccessController.doPrivileged 43
+ 311334 method java/util/Vector.size 43
+ 311334 method java/nio/Buffer.position 44
+ 311334 method java/nio/ByteBuffer.arrayOffset 44
+ 311334 method java/lang/System.getProperty 48
+ 311334 method java/util/Properties.getProperty 50
+ 311334 method java/util/BitSet.expandTo 51
+ 311334 method java/util/BitSet.set 51
+ 311334 method java/lang/System.checkKey 56
+ 311334 method java/lang/Thread.currentThread 57
+ 311334 method java/util/Hashtable$Entry.<init> 57
+ 311334 oalloc [Ljava/lang/String; 57
+ 311334 oalloc java/util/Hashtable$Entry 57
+ 311334 method java/util/Hashtable.get 59
+ 311334 method java/util/Hashtable.put 63
+ 311334 method java/util/BitSet.checkInvariants 71
+ 311334 method java/util/BitSet.wordIndex 72
+ 311334 method java/lang/StringBuilder.<init> 73
+ 311334 method java/lang/StringBuilder.toString 73
+ 311334 oalloc java/lang/StringBuilder 73
+ 311334 method java/lang/AbstractStringBuilder.expandCapacity 81
+ 311334 method java/util/HashMap.hash 81
+ 311334 method java/util/HashMap.indexFor 81
+ 311334 method java/lang/AbstractStringBuilder.<init> 82
+ 311334 method java/lang/Character.toLowerCase 82
+ 311334 method java/lang/String.startsWith 83
+ 311334 method java/util/Arrays.copyOf 87
+ 311334 method java/lang/String.lastIndexOf 90
+ 311334 method java/lang/String.substring 94
+ 311334 method java/util/Arrays.copyOfRange 107
+ 311334 method java/lang/String.getChars 156
+ 311334 method java/lang/System.getSecurityManager 174
+ 311334 method java/lang/String.<init> 175
+ 311334 method java/lang/String.equals 202
+ 311334 method java/lang/Math.min 208
+ 311334 method java/lang/String.hashCode 213
+ 311334 method java/lang/String.indexOf 302
+ 311334 oalloc [Ljava/lang/Object; 326
+ 311334 method java/lang/System.arraycopy 360
+ 311334 oalloc [I 374
+ 311334 oalloc java/lang/Class 395
+ 311334 oalloc [B 406
+ 311334 oalloc [S 486
+ 311334 method java/lang/StringBuilder.append 533
+ 311334 oalloc [[I 541
+ 311334 method java/lang/AbstractStringBuilder.append 549
+ 311334 method java/lang/Object.<init> 823
+ 311334 oalloc java/lang/String 931
+ 311334 oalloc [C 1076
+ 311334 method java/lang/String.charAt 1960
+
+This shows us each of the events associated with the PID 311334, and the
+number of times each event happened. These events can be of type cload (class
+load), method (method call), mcompile (method compile), mload (compiled method
+load), oalloc (object alloc) or thread (thread start).
+
+In this case you can see 1960 calls to java/lang/String.charAt, and 1076
+object allocations of type [C.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt
new file mode 100644
index 000000000000..937e06f2a08a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt
@@ -0,0 +1,67 @@
+The following are examples of j_calltime.d.
+
+This script traces the elapsed time of Java methods and prints a report of the
+top ten in each category. This number is configurable with simple edit of
+the DTrace script
+
+Here it traces the example program, Code/Java/Func_abc
+
+# j_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+ PID TYPE NAME COUNT
+ 311358 method java/lang/String.equals 202
+ 311358 method java/lang/Math.min 208
+ 311358 method java/lang/String.hashCode 213
+ 311358 method java/lang/String.indexOf 302
+ 311358 method java/lang/System.arraycopy 360
+ 311358 method java/lang/StringBuilder.append 533
+ 311358 method java/lang/AbstractStringBuilder.append 549
+ 311358 method java/lang/Object.<init> 823
+ 311358 method java/lang/String.charAt 1960
+ 0 total - 12020
+
+Top 10 elapsed times (us),
+ PID TYPE NAME TOTAL
+
+Top 10 exclusive method elapsed times (us),
+ PID TYPE NAME TOTAL
+ 311358 method java/nio/ByteBuffer.<init> 5430
+ 311358 method java/lang/String.charAt 6079
+ 311358 method java/lang/String.<init> 7306
+ 311358 method java/lang/StringBuilder.append 10240
+ 311358 method java/util/StringTokenizer.scanToken 11075
+ 311358 method java/net/URL.<clinit> 12519
+ 311358 method java/io/UnixFileSystem.normalize 13218
+ 311358 method sun/net/www/ParseUtil.decode 14208
+ 311358 method java/lang/Thread.sleep 3016374
+ 0 total - 3344993
+
+Top 10 inclusive method elapsed times (us),
+ PID TYPE NAME TOTAL
+ 311358 method sun/misc/Launcher.<clinit> 129120
+ 311358 method java/lang/ClassLoader.initSystemClassLoader 129851
+ 311358 method java/lang/ClassLoader.getSystemClassLoader 129897
+ 311358 method java/lang/ClassLoader.loadClass 267404
+ 311358 method java/security/AccessController.doPrivileged 278364
+ 311358 method Func_abc.func_c 1009971
+ 311358 method Func_abc.func_b 2019995
+ 311358 method java/lang/Thread.sleep 3016374
+ 311358 method Func_abc.func_a 3027043
+ 311358 method Func_abc.main 3027068
+
+Counts shows us how many times each different method was called, and how
+many methods were called in total.
+
+The exclusive method elapsed times show the time that each method spent
+processing code - while not in other method.
+
+The inclusive method elapsed times show the time that each method spent
+processing code, including the time spent in other calls.
+
+These elapsed times are the absolute time from when the method began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt
new file mode 100644
index 000000000000..b8a9b75000cd
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt
@@ -0,0 +1,89 @@
+Following are examples of j_classflow.d.
+
+This watches Java method entries and returns from all Java processes on the
+system with hotspot provider support (1.6.0) and the flag
+"+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+Here we can see it run on Code/Java/Func_abc.
+
+# j_classflow.d Func_abc
+ C PID TIME(us) -- CLASS.METHOD
+ 0 311425 4789778117827 -> Func_abc.main
+ 0 311425 4789778117844 -> Func_abc.func_a
+ 0 311425 4789779120071 -> Func_abc.func_b
+ 0 311425 4789780130070 -> Func_abc.func_c
+ 0 311425 4789781140067 <- Func_abc.func_c
+ 0 311425 4789781140079 <- Func_abc.func_b
+ 0 311425 4789781140087 <- Func_abc.func_a
+ 0 311425 4789781140095 <- Func_abc.main
+^C
+
+The first column, C gives us the CPU ID.
+
+The second column, TIME(us), gives us the time since boot in microseconds.
+
+The third column, PID gives us the Process ID.
+
+The fourth column, CLASS.METHOD gives us the Java class and method name.
+
+We can see that Func_abc.main called Func.abc.func_a, which in turn
+called Func_abc.funcb etc.
+
+Here we can see an example of running it on java/io/BufferedOutputStream
+
+# j_classflow.d java/io/BufferedOutputStream
+ C PID TIME(us) -- CLASS.METHOD
+ 0 311461 4790094765413 -> java/io/BufferedOutputStream.<init>
+ 0 311461 4790094765459 <- java/io/BufferedOutputStream.<init>
+ 0 311461 4790094779559 -> java/io/BufferedOutputStream.<init>
+ 0 311461 4790094779595 <- java/io/BufferedOutputStream.<init>
+ 0 311461 4790094965883 -> java/io/BufferedOutputStream.write
+ 0 311461 4790094965913 <- java/io/BufferedOutputStream.write
+ 0 311461 4790094965926 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790094965936 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790094966279 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790094966293 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790094966588 -> java/io/BufferedOutputStream.write
+ 0 311461 4790094966602 <- java/io/BufferedOutputStream.write
+ 0 311461 4790094966610 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790094966618 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790094966778 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790094966787 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790094966811 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790094966819 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790094966828 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790094966836 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790095970345 -> java/io/BufferedOutputStream.write
+ 0 311461 4790095970372 <- java/io/BufferedOutputStream.write
+ 0 311461 4790095970382 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790095970390 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790095970453 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790095970462 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790095970737 -> java/io/BufferedOutputStream.write
+ 0 311461 4790095970751 <- java/io/BufferedOutputStream.write
+ 0 311461 4790095970759 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790095970766 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790095970795 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790095970804 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790095970828 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790095970836 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790095970844 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790095970853 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790096980348 -> java/io/BufferedOutputStream.write
+ 0 311461 4790096980373 <- java/io/BufferedOutputStream.write
+ 0 311461 4790096980383 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790096980391 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790096980452 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790096980460 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790096980735 -> java/io/BufferedOutputStream.write
+ 0 311461 4790096980749 <- java/io/BufferedOutputStream.write
+ 0 311461 4790096980757 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790096980765 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790096980794 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790096980803 <- java/io/BufferedOutputStream.flush
+ 0 311461 4790096980826 -> java/io/BufferedOutputStream.flush
+ 0 311461 4790096980834 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790096980843 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311461 4790096980851 <- java/io/BufferedOutputStream.flush
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt
new file mode 100644
index 000000000000..15abac649a5f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt
@@ -0,0 +1,252 @@
+This is an example of j_cpudist.d showing the elapsed times for different
+types of Java operations.
+
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0), and produces the output in graphical format, showing
+a histogram of the amount of time taken by each call. Method calls are only
+visible when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+Because of the extensive results returned otherwise, this script will show you
+a configurable number of results in each section. The default (as in this
+example) is ten.
+
+Here we see it tracing the activity of Code/Java/Func_abc.
+
+# j_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 on-CPU times (us),
+
+Top 10 exclusive method on-CPU times (us),
+ PID=311364, method, java/lang/AbstractStringBuilder.append
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 382
+ 2 |@@@@@@@@@@@ 151
+ 4 |@ 13
+ 8 | 1
+ 16 | 1
+ 32 | 1
+ 64 | 0
+
+ PID=311364, method, java/util/Arrays.copyOf
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 68
+ 4 |@@@@@@@ 15
+ 8 | 0
+ 16 | 0
+ 32 | 1
+ 64 | 1
+ 128 | 0
+ 256 |@ 2
+ 512 | 0
+
+ PID=311364, method, java/io/UnixFileSystem.normalize
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@ 9
+ 16 |@@@@@@@@@@@@@@ 12
+ 32 |@@@@@@ 5
+ 64 |@@@@@@@ 6
+ 128 |@ 1
+ 256 | 0
+
+ PID=311364, method, java/io/File.<clinit>
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=311364, method, sun/misc/URLClassPath$JarLoader.getJarFile
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=311364, method, java/io/FilePermission$1.run
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@ 1
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 |@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=311364, method, java/lang/StringBuilder.append
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 526
+ 4 | 2
+ 8 | 0
+ 16 | 4
+ 32 | 1
+ 64 | 0
+
+ PID=311364, method, java/lang/String.<init>
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 162
+ 4 |@@ 10
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 1
+ 128 | 0
+ 256 | 1
+ 512 | 0
+ 1024 | 1
+ 2048 | 0
+
+ PID=311364, method, java/lang/String.charAt
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1953
+ 2 | 3
+ 4 | 1
+ 8 | 1
+ 16 | 2
+ 32 | 0
+
+ PID=311364, method, java/lang/System.initializeSystemClass
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+
+Top 10 inclusive method on-CPU times (us),
+ PID=311364, method, sun/misc/Launcher$ExtClassLoader.<init>
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, sun/misc/Launcher$ExtClassLoader.getExtClassLoader
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, sun/misc/Launcher$ExtClassLoader.getExtURLs
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, sun/misc/Launcher.<clinit>
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, sun/misc/Launcher.<init>
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, java/lang/ClassLoader.loadClassInternal
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 128 |@@@@@@@@@ 2
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 |@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, sun/misc/Launcher$AppClassLoader.loadClass
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 128 |@@@@@@@@@ 2
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 |@@@@ 1
+ 32768 | 0
+
+ PID=311364, method, sun/misc/URLClassPath.getLoader
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@ 1
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@@@ 1
+ 512 |@@@@@@@@@@@@@@@@@@@@@@ 7
+ 1024 |@@@@@@ 2
+ 2048 | 0
+ 4096 |@@@ 1
+ 8192 |@@@ 1
+ 16384 | 0
+
+ PID=311364, method, java/lang/ClassLoader.loadClass
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@ 6
+ 64 |@@@@@@@@@@@@@@@@@@@@@ 14
+ 128 |@@@@@@ 4
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@ 1
+ 16384 |@@@ 2
+ 32768 | 0
+
+ PID=311364, method, java/security/AccessController.doPrivileged
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@ 1
+ 8 |@@@@ 4
+ 16 |@@@@@@@@@@ 11
+ 32 |@@@@@@@@@@ 11
+ 64 | 0
+ 128 |@@@ 3
+ 256 |@ 1
+ 512 |@@@@@ 5
+ 1024 |@@ 2
+ 2048 |@ 1
+ 4096 |@ 1
+ 8192 |@@ 2
+ 16384 |@ 1
+ 32768 | 0
+
+The elapsed times section is empty. It would show us anything that is not a
+Java method - garbage collection for example. However there was nothing of
+the kind in this example.
+
+The exclusive method elapsed times show us the time spent on-CPU by the most
+time consuming methods, not including time spent in subroutines called by
+those methods.
+
+The inclusive method elapsed times show us the time spent on-CPU by the top
+ten most time consuming methods including time spent in subroutines called by
+those methods.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt
new file mode 100644
index 000000000000..0947cc05cbcd
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt
@@ -0,0 +1,75 @@
+The following are examples of j_cputime.d.
+
+This script traces the on-CPU time of Java methods and prints a report. Here
+it traces the example program, Code/Java/Func_abc
+
+# j_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+ PID TYPE NAME COUNT
+ 311374 method java/lang/String.equals 202
+ 311374 method java/lang/Math.min 208
+ 311374 method java/lang/String.hashCode 213
+ 311374 method java/lang/String.indexOf 302
+ 311374 method java/lang/System.arraycopy 360
+ 311374 method java/lang/StringBuilder.append 533
+ 311374 method java/lang/AbstractStringBuilder.append 549
+ 311374 method java/lang/Object.<init> 823
+ 311374 method java/lang/String.charAt 1960
+ 0 total - 12020
+
+Top 10 on-CPU times (us),
+ PID TYPE NAME TOTAL
+
+Top 10 exclusive method on-CPU times (us),
+ PID TYPE NAME TOTAL
+ 311374 method java/io/FilePermission$1.run 1055
+ 311374 method java/util/Arrays.copyOf 1110
+ 311374 method sun/net/www/ParseUtil.decode 1161
+ 311374 method java/io/File.<clinit> 1212
+ 311374 method java/lang/StringBuilder.append 1228
+ 311374 method java/io/UnixFileSystem.normalize 1402
+ 311374 method java/lang/String.<init> 2251
+ 311374 method java/lang/String.charAt 2262
+ 311374 method java/lang/System.initializeSystemClass 2751
+ 0 total - 99868
+
+Top 10 inclusive method on-CPU times (us),
+ PID TYPE NAME TOTAL
+ 311374 method java/lang/ClassLoader.loadClassInternal 25826
+ 311374 method sun/misc/Launcher$ExtClassLoader.getExtClassLoader 25914
+ 311374 method java/net/URL.<init> 27677
+ 311374 method sun/misc/Launcher.<init> 28566
+ 311374 method sun/misc/Launcher.<clinit> 28744
+ 311374 method java/lang/ClassLoader.initSystemClassLoader 29241
+ 311374 method java/lang/ClassLoader.getSystemClassLoader 29249
+ 311374 method java/lang/System.initializeSystemClass 33814
+ 311374 method java/lang/ClassLoader.loadClass 66564
+ 311374 method java/security/AccessController.doPrivileged 67499
+
+You can see that it prints the top ten results in each of four categories.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"method", in this case - none.
+
+The exclusive method on-CPU times shows, amongst other results, that
+java/lang/String.charAt spent around 2,200 microseconds on-CPU. This times
+excludes time spent in other subroutines.
+
+The inclusive method on-CPU times show the times that various methods
+spent on-CPU. This includes the time spent in other subroutines called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt
new file mode 100644
index 000000000000..2c48700f3d21
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt
@@ -0,0 +1,134 @@
+The following are examples of j_events.d.
+
+This counts events from all Java processes on the system with hotspot
+provider support (1.6.0). Some events such as method calls are only visible
+when using the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+Here you can see it running while the program Code/Java/Func_abc
+
+# j_events.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ PID EVENT COUNT
+ 311379 AttachCurrentThread-entry 1
+ 311379 AttachCurrentThread-return 1
+ 311379 CallIntMethod-entry 1
+ 311379 CallIntMethod-return 1
+ 311379 CallStaticBooleanMethod-entry 1
+ 311379 CallStaticBooleanMethod-return 1
+ 311379 CallStaticObjectMethod-entry 1
+ 311379 CallStaticObjectMethod-return 1
+ 311379 CallStaticObjectMethodV-entry 1
+ 311379 CallStaticObjectMethodV-return 1
+ 311379 CallStaticVoidMethod-entry 1
+ 311379 CallStaticVoidMethod-return 1
+ 311379 CreateJavaVM-entry 1
+ 311379 CreateJavaVM-return 1
+ 311379 DestroyJavaVM-entry 1
+ 311379 DestroyJavaVM-return 1
+ 311379 DetachCurrentThread-entry 1
+ 311379 DetachCurrentThread-return 1
+ 311379 ExceptionCheck-entry 1
+ 311379 ExceptionCheck-return 1
+ 311379 ExceptionClear-entry 1
+ 311379 ExceptionClear-return 1
+ 311379 GetDefaultJavaVMInitArgs-entry 1
+ 311379 GetDefaultJavaVMInitArgs-return 1
+ 311379 GetJavaVM-entry 1
+ 311379 GetJavaVM-return 1
+ 311379 GetStringRegion-entry 1
+ 311379 GetStringRegion-return 1
+ 311379 NewByteArray-entry 1
+ 311379 NewByteArray-return 1
+ 311379 NewObject-entry 1
+ 311379 NewObject-return 1
+ 311379 NewObjectV-entry 1
+ 311379 NewObjectV-return 1
+ 311379 SetBooleanField-entry 1
+ 311379 SetBooleanField-return 1
+ 311379 ToReflectedMethod-entry 1
+ 311379 ToReflectedMethod-return 1
+ 311379 vm-init-begin 1
+ 311379 vm-init-end 1
+ 311379 vm-shutdown 1
+ 311379 NewGlobalRef-entry 2
+ 311379 NewGlobalRef-return 2
+ 311379 monitor-wait 2
+ 311379 GetStaticFieldID-entry 3
+ 311379 GetStaticFieldID-return 3
+ 311379 NewObjectArray-entry 3
+ 311379 NewObjectArray-return 3
+ 311379 SetStaticObjectField-entry 3
+ 311379 SetStaticObjectField-return 3
+ 311379 GetStaticMethodID-entry 4
+ 311379 GetStaticMethodID-return 4
+ 311379 EnsureLocalCapacity-entry 5
+ 311379 EnsureLocalCapacity-return 5
+ 311379 SetByteArrayRegion-entry 5
+ 311379 SetByteArrayRegion-return 5
+ 311379 SetLongField-entry 5
+ 311379 SetLongField-return 5
+ 311379 GetMethodID-entry 6
+ 311379 GetMethodID-return 6
+ 311379 GetObjectArrayElement-entry 6
+ 311379 GetObjectArrayElement-return 6
+ 311379 GetSuperclass-entry 6
+ 311379 GetSuperclass-return 6
+ 311379 thread-start 6
+ 311379 SetIntField-entry 8
+ 311379 SetIntField-return 8
+ 311379 GetArrayLength-entry 9
+ 311379 GetArrayLength-return 9
+ 311379 GetByteArrayRegion-entry 9
+ 311379 GetByteArrayRegion-return 9
+ 311379 RegisterNatives-entry 9
+ 311379 RegisterNatives-return 9
+ 311379 GetObjectClass-entry 10
+ 311379 GetObjectClass-return 10
+ 311379 FindClass-entry 11
+ 311379 FindClass-return 11
+ 311379 SetObjectArrayElement-entry 12
+ 311379 SetObjectArrayElement-return 12
+ 311379 GetStringUTFLength-entry 18
+ 311379 GetStringUTFLength-return 18
+ 311379 GetStringUTFRegion-entry 18
+ 311379 GetStringUTFRegion-return 18
+ 311379 GetFieldID-entry 21
+ 311379 GetFieldID-return 21
+ 309790 CallStaticVoidMethod-entry 24
+ 309790 CallStaticVoidMethod-return 24
+ 194441 CallStaticVoidMethod-entry 26
+ 194441 CallStaticVoidMethod-return 26
+ 311379 GetStringUTFChars-entry 29
+ 311379 GetStringUTFChars-return 29
+ 311379 ReleaseStringUTFChars-entry 29
+ 311379 ReleaseStringUTFChars-return 29
+ 311379 CallObjectMethod-entry 30
+ 311379 CallObjectMethod-return 30
+ 311379 GetStringCritical-entry 35
+ 311379 GetStringCritical-return 35
+ 311379 ReleaseStringCritical-entry 35
+ 311379 ReleaseStringCritical-return 35
+ 311379 ExceptionOccurred-entry 46
+ 311379 ExceptionOccurred-return 46
+ 311379 GetStringLength-entry 54
+ 311379 GetStringLength-return 54
+ 311379 NewStringUTF-entry 54
+ 311379 NewStringUTF-return 54
+ 311379 NewString-entry 55
+ 311379 NewString-return 55
+ 311379 GetObjectField-entry 60
+ 311379 GetObjectField-return 60
+ 311379 DeleteLocalRef-entry 108
+ 311379 DeleteLocalRef-return 108
+ 311379 class-loaded 327
+ 311379 object-alloc 5389
+ 311379 method-return 12024
+ 311379 method-entry 12031
+
+You can see that nearly all of the events recorded are from PID 311379, which
+we can assume in this case is the program in question. Not all of the lines
+correspond to this, however, which is something to be aware of while analysing
+the results.
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt
new file mode 100644
index 000000000000..433bef314224
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt
@@ -0,0 +1,1292 @@
+The following are examples of j_flow.d.
+
+This is a simple script to trace the not-so-simple flow of Java methods and
+classes. Here it traces the example program, Code/Java/func_abc
+
+# j_flow.d
+ C PID TIME(us) -- CLASS.METHOD
+ 0 311403 4789112583163 -> java/lang/Object.<clinit>
+ 0 311403 4789112583207 -> java/lang/Object.registerNatives
+ 0 311403 4789112583323 <- java/lang/Object.registerNatives
+ 0 311403 4789112583333 <- java/lang/Object.<clinit>
+ 0 311403 4789112583343 -> java/lang/String.<clinit>
+ 0 311403 4789112583732 -> java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311403 4789112583743 -> java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311403 4789112583752 -> java/lang/Object.<init>
+ 0 311403 4789112583760 <- java/lang/Object.<init>
+ 0 311403 4789112583767 <- java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311403 4789112583774 <- java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311403 4789112583783 <- java/lang/String.<clinit>
+ 0 311403 4789112583849 -> java/lang/System.<clinit>
+ 0 311403 4789112583859 -> java/lang/System.registerNatives
+ 0 311403 4789112583878 <- java/lang/System.registerNatives
+ 0 311403 4789112583887 -> java/lang/System.nullInputStream
+ 0 311403 4789112583895 -> java/lang/System.currentTimeMillis
+ 0 311403 4789112583905 <- java/lang/System.currentTimeMillis
+ 0 311403 4789112583913 <- java/lang/System.nullInputStream
+ 0 311403 4789112583923 -> java/lang/System.nullPrintStream
+ 0 311403 4789112583929 -> java/lang/System.currentTimeMillis
+ 0 311403 4789112583937 <- java/lang/System.currentTimeMillis
+ 0 311403 4789112583944 <- java/lang/System.nullPrintStream
+ 0 311403 4789112583951 -> java/lang/System.nullPrintStream
+ 0 311403 4789112583958 -> java/lang/System.currentTimeMillis
+ 0 311403 4789112583965 <- java/lang/System.currentTimeMillis
+ 0 311403 4789112583972 <- java/lang/System.nullPrintStream
+ 0 311403 4789112583982 <- java/lang/System.<clinit>
+ 0 311403 4789112584058 -> java/lang/ThreadGroup.<init>
+ 0 311403 4789112584068 -> java/lang/Object.<init>
+ 0 311403 4789112584075 <- java/lang/Object.<init>
+ 0 311403 4789112584100 <- java/lang/ThreadGroup.<init>
+ 0 311403 4789112584109 -> java/lang/ThreadGroup.<init>
+ 0 311403 4789112584116 -> java/lang/Object.<init>
+ 0 311403 4789112584123 <- java/lang/Object.<init>
+ 0 311403 4789112584139 -> java/lang/ThreadGroup.checkAccess
+ 0 311403 4789112584148 -> java/lang/System.getSecurityManager
+ 0 311403 4789112584157 <- java/lang/System.getSecurityManager
+ 0 311403 4789112584164 <- java/lang/ThreadGroup.checkAccess
+ 0 311403 4789112584175 -> java/lang/ThreadGroup.add
+ 0 311403 4789112584196 <- java/lang/ThreadGroup.add
+ 0 311403 4789112584202 <- java/lang/ThreadGroup.<init>
+ 0 311403 4789112584385 -> java/lang/Thread.<clinit>
+ 0 311403 4789112584396 -> java/lang/Thread.registerNatives
+ 0 311403 4789112584421 <- java/lang/Thread.registerNatives
+ 0 311403 4789112584779 -> java/lang/RuntimePermission.<init>
+ 0 311403 4789112584789 -> java/security/BasicPermission.<init>
+ 0 311403 4789112584798 -> java/security/Permission.<init>
+ 0 311403 4789112584806 -> java/lang/Object.<init>
+ 0 311403 4789112584814 <- java/lang/Object.<init>
+ 0 311403 4789112584823 <- java/security/Permission.<init>
+ 0 311403 4789112584831 -> java/security/BasicPermission.init
+ 0 311403 4789112584842 -> java/lang/String.length
+ 0 311403 4789112584850 <- java/lang/String.length
+ 0 311403 4789112584860 -> java/lang/String.charAt
+ 0 311403 4789112584869 <- java/lang/String.charAt
+ 0 311403 4789112584880 -> java/lang/String.equals
+ 0 311403 4789112584888 <- java/lang/String.equals
+ 0 311403 4789112584896 <- java/security/BasicPermission.init
+ 0 311403 4789112584903 <- java/security/BasicPermission.<init>
+ 0 311403 4789112584910 <- java/lang/RuntimePermission.<init>
+ 0 311403 4789112585319 -> sun/misc/SoftCache.<init>
+ 0 311403 4789112585329 -> java/util/AbstractMap.<init>
+ 0 311403 4789112585337 -> java/lang/Object.<init>
+ 0 311403 4789112585345 <- java/lang/Object.<init>
+ 0 311403 4789112585355 <- java/util/AbstractMap.<init>
+ 0 311403 4789112585485 -> java/lang/ref/ReferenceQueue.<clinit>
+ 0 311403 4789112585554 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311403 4789112585564 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311403 4789112585572 -> java/lang/ref/ReferenceQueue.<init>
+ 0 311403 4789112585581 -> java/lang/Object.<init>
+ 0 311403 4789112585589 <- java/lang/Object.<init>
+ 0 311403 4789112585646 -> java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585656 -> java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585664 -> java/lang/Object.<init>
+ 0 311403 4789112585671 <- java/lang/Object.<init>
+ 0 311403 4789112585678 <- java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585685 <- java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585696 <- java/lang/ref/ReferenceQueue.<init>
+ 0 311403 4789112585702 <- java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311403 4789112585709 <- java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311403 4789112585717 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311403 4789112585723 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311403 4789112585729 -> java/lang/ref/ReferenceQueue.<init>
+ 0 311403 4789112585736 -> java/lang/Object.<init>
+ 0 311403 4789112585743 <- java/lang/Object.<init>
+ 0 311403 4789112585748 -> java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585755 -> java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585761 -> java/lang/Object.<init>
+ 0 311403 4789112585768 <- java/lang/Object.<init>
+ 0 311403 4789112585796 <- java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311403 4789112585803 <- java/lang/ref/ReferenceQueue$Lock.<init>
+[... 22800 lines truncated ...]
+ 0 311403 4789112982170 <- java/lang/reflect/Method.getModifiers
+ 0 311403 4789112982182 -> Func_abc.main
+ 0 311403 4789112982193 -> Func_abc.func_a
+ 0 311403 4789112982201 -> java/lang/ClassLoader.checkPackageAccess
+ 0 311403 4789112982208 -> java/lang/System.getSecurityManager
+ 0 311403 4789112982215 <- java/lang/System.getSecurityManager
+ 0 311403 4789112982221 -> java/util/HashSet.add
+ 0 311403 4789112982228 -> java/util/HashMap.put
+ 0 311403 4789112982234 -> java/lang/Object.hashCode
+ 0 311403 4789112982241 <- java/lang/Object.hashCode
+ 0 311403 4789112982247 -> java/util/HashMap.hash
+ 0 311403 4789112982254 <- java/util/HashMap.hash
+ 0 311403 4789112982260 -> java/util/HashMap.indexFor
+ 0 311403 4789112982267 <- java/util/HashMap.indexFor
+ 0 311403 4789112982274 <- java/util/HashMap.put
+ 0 311403 4789112982280 <- java/util/HashSet.add
+ 0 311403 4789112982287 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311403 4789112982349 -> java/lang/ClassLoader.loadClassInternal
+ 0 311403 4789112982356 -> java/lang/ClassLoader.loadClass
+ 0 311403 4789112982363 -> sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311403 4789112982369 -> java/lang/String.lastIndexOf
+ 0 311403 4789112982376 -> java/lang/String.lastIndexOf
+ 0 311403 4789112982384 <- java/lang/String.lastIndexOf
+ 0 311403 4789112982391 <- java/lang/String.lastIndexOf
+ 0 311403 4789112982396 -> java/lang/System.getSecurityManager
+ 0 311403 4789112982404 <- java/lang/System.getSecurityManager
+ 0 311403 4789112982410 -> java/lang/ClassLoader.loadClass
+ 0 311403 4789112982416 -> java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112982422 -> java/lang/ClassLoader.check
+ 0 311403 4789112982429 <- java/lang/ClassLoader.check
+ 0 311403 4789112982435 -> java/lang/ClassLoader.checkName
+ 0 311403 4789112982442 -> java/lang/String.indexOf
+ 0 311403 4789112982448 -> java/lang/String.indexOf
+ 0 311403 4789112982456 <- java/lang/String.indexOf
+ 0 311403 4789112982462 <- java/lang/String.indexOf
+ 0 311403 4789112982468 -> sun/misc/VM.allowArraySyntax
+ 0 311403 4789112982475 <- sun/misc/VM.allowArraySyntax
+ 0 311403 4789112982481 -> java/lang/String.charAt
+ 0 311403 4789112982488 <- java/lang/String.charAt
+ 0 311403 4789112982495 <- java/lang/ClassLoader.checkName
+ 0 311403 4789112982501 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112982510 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112982517 <- java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112982524 -> java/lang/ClassLoader.loadClass
+ 0 311403 4789112982530 -> java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112982536 -> java/lang/ClassLoader.check
+ 0 311403 4789112982543 <- java/lang/ClassLoader.check
+ 0 311403 4789112982549 -> java/lang/ClassLoader.checkName
+ 0 311403 4789112982555 -> java/lang/String.indexOf
+ 0 311403 4789112982561 -> java/lang/String.indexOf
+ 0 311403 4789112982569 <- java/lang/String.indexOf
+ 0 311403 4789112982576 <- java/lang/String.indexOf
+ 0 311403 4789112982582 -> sun/misc/VM.allowArraySyntax
+ 0 311403 4789112982589 <- sun/misc/VM.allowArraySyntax
+ 0 311403 4789112982594 -> java/lang/String.charAt
+ 0 311403 4789112982602 <- java/lang/String.charAt
+ 0 311403 4789112982608 <- java/lang/ClassLoader.checkName
+ 0 311403 4789112982614 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112982623 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112982630 <- java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112982636 -> java/lang/ClassLoader.findBootstrapClass0
+ 0 311403 4789112982642 -> java/lang/ClassLoader.check
+ 0 311403 4789112982650 <- java/lang/ClassLoader.check
+ 0 311403 4789112982655 -> java/lang/ClassLoader.checkName
+ 0 311403 4789112982662 -> java/lang/String.indexOf
+ 0 311403 4789112982668 -> java/lang/String.indexOf
+ 0 311403 4789112982676 <- java/lang/String.indexOf
+ 0 311403 4789112982682 <- java/lang/String.indexOf
+ 0 311403 4789112982688 -> sun/misc/VM.allowArraySyntax
+ 0 311403 4789112982695 <- sun/misc/VM.allowArraySyntax
+ 0 311403 4789112982701 -> java/lang/String.charAt
+ 0 311403 4789112982708 <- java/lang/String.charAt
+ 0 311403 4789112982715 <- java/lang/ClassLoader.checkName
+ 0 311403 4789112982720 -> java/lang/ClassLoader.findBootstrapClass
+ 0 311403 4789112982730 <- java/lang/ClassLoader.findBootstrapClass
+ 0 311403 4789112982737 <- java/lang/ClassLoader.findBootstrapClass0
+ 0 311403 4789112982744 <- java/lang/ClassLoader.loadClass
+ 0 311403 4789112982751 <- java/lang/ClassLoader.loadClass
+ 0 311403 4789112982757 <- sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311403 4789112982764 <- java/lang/ClassLoader.loadClass
+ 0 311403 4789112982771 <- java/lang/ClassLoader.loadClassInternal
+ 0 311403 4789112982780 -> java/lang/ClassLoader.checkPackageAccess
+ 0 311403 4789112982787 -> java/lang/System.getSecurityManager
+ 0 311403 4789112982794 <- java/lang/System.getSecurityManager
+ 0 311403 4789112982800 -> java/util/HashSet.add
+ 0 311403 4789112982806 -> java/util/HashMap.put
+ 0 311403 4789112982813 -> java/lang/Object.hashCode
+ 0 311403 4789112982820 <- java/lang/Object.hashCode
+ 0 311403 4789112982826 -> java/util/HashMap.hash
+ 0 311403 4789112982833 <- java/util/HashMap.hash
+ 0 311403 4789112982839 -> java/util/HashMap.indexFor
+ 0 311403 4789112982846 <- java/util/HashMap.indexFor
+ 0 311403 4789112982853 <- java/util/HashMap.put
+ 0 311403 4789112982859 <- java/util/HashSet.add
+ 0 311403 4789112982866 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311403 4789112982879 -> java/io/PrintStream.println
+ 0 311403 4789112982889 -> java/io/PrintStream.print
+ 0 311403 4789112982897 -> java/io/PrintStream.write
+ 0 311403 4789112982906 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789112982916 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789112982927 -> java/io/Writer.write
+ 0 311403 4789112982939 -> java/io/BufferedWriter.write
+ 0 311403 4789112982948 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112982956 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112982964 -> java/io/BufferedWriter.min
+ 0 311403 4789112982971 <- java/io/BufferedWriter.min
+ 0 311403 4789112982980 -> java/lang/String.getChars
+ 0 311403 4789112982987 -> java/lang/System.arraycopy
+ 0 311403 4789112982995 <- java/lang/System.arraycopy
+ 0 311403 4789112983002 <- java/lang/String.getChars
+ 0 311403 4789112983009 <- java/io/BufferedWriter.write
+ 0 311403 4789112983016 <- java/io/Writer.write
+ 0 311403 4789112983024 -> java/io/BufferedWriter.flushBuffer
+ 0 311403 4789112983031 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112983038 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112983046 -> java/io/OutputStreamWriter.write
+ 0 311403 4789112983056 -> sun/nio/cs/StreamEncoder.write
+ 0 311403 4789112983066 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789112983073 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789112983082 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789112983093 -> java/nio/CharBuffer.wrap
+ 0 311403 4789112983099 -> java/nio/HeapCharBuffer.<init>
+ 0 311403 4789112983106 -> java/nio/CharBuffer.<init>
+ 0 311403 4789112983113 -> java/nio/Buffer.<init>
+ 0 311403 4789112983119 -> java/lang/Object.<init>
+ 0 311403 4789112983126 <- java/lang/Object.<init>
+ 0 311403 4789112983133 -> java/nio/Buffer.limit
+ 0 311403 4789112983140 <- java/nio/Buffer.limit
+ 0 311403 4789112983146 -> java/nio/Buffer.position
+ 0 311403 4789112983153 <- java/nio/Buffer.position
+ 0 311403 4789112983160 <- java/nio/Buffer.<init>
+ 0 311403 4789112983166 <- java/nio/CharBuffer.<init>
+ 0 311403 4789112983173 <- java/nio/HeapCharBuffer.<init>
+ 0 311403 4789112983180 <- java/nio/CharBuffer.wrap
+ 0 311403 4789112983188 -> java/nio/Buffer.hasRemaining
+ 0 311403 4789112983196 <- java/nio/Buffer.hasRemaining
+ 0 311403 4789112983206 -> java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789112983216 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789112983226 -> java/nio/CharBuffer.hasArray
+ 0 311403 4789112983233 <- java/nio/CharBuffer.hasArray
+ 0 311403 4789112983243 -> java/nio/ByteBuffer.hasArray
+ 0 311403 4789112983250 <- java/nio/ByteBuffer.hasArray
+ 0 311403 4789112983259 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789112983267 -> java/nio/CharBuffer.array
+ 0 311403 4789112983274 <- java/nio/CharBuffer.array
+ 0 311403 4789112983282 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112983289 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112983297 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112983305 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112983316 -> java/nio/ByteBuffer.array
+ 0 311403 4789112983323 <- java/nio/ByteBuffer.array
+ 0 311403 4789112983331 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983338 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983346 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983354 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983366 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112983374 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112983382 -> java/nio/Buffer.position
+ 0 311403 4789112983389 <- java/nio/Buffer.position
+ 0 311403 4789112983395 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983402 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983410 -> java/nio/Buffer.position
+ 0 311403 4789112983417 <- java/nio/Buffer.position
+ 0 311403 4789112983424 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789112983431 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789112983439 -> java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789112983447 <- java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789112983454 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112983462 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112983469 <- java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789112983477 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112983485 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112983494 -> java/nio/Buffer.remaining
+ 0 311403 4789112983501 <- java/nio/Buffer.remaining
+ 0 311403 4789112983508 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789112983515 <- sun/nio/cs/StreamEncoder.write
+ 0 311403 4789112983522 <- java/io/OutputStreamWriter.write
+ 0 311403 4789112983528 <- java/io/BufferedWriter.flushBuffer
+ 0 311403 4789112983537 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789112983546 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789112983555 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789112983565 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789112983574 -> java/nio/Buffer.flip
+ 0 311403 4789112983581 <- java/nio/Buffer.flip
+ 0 311403 4789112983591 -> java/nio/ByteBuffer.array
+ 0 311403 4789112983598 <- java/nio/ByteBuffer.array
+ 0 311403 4789112983606 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983613 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112983623 -> java/io/PrintStream.write
+ 0 311403 4789112983629 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789112983636 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789112983645 -> java/io/BufferedOutputStream.write
+ 0 311403 4789112983657 -> java/lang/System.arraycopy
+ 0 311403 4789112983664 <- java/lang/System.arraycopy
+ 0 311403 4789112983671 <- java/io/BufferedOutputStream.write
+ 0 311403 4789112983679 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789112983688 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789112983698 -> java/io/FileOutputStream.write
+ 0 311403 4789112983707 -> java/io/FileOutputStream.writeBytes
+ 0 311403 4789112983860 <- java/io/FileOutputStream.writeBytes
+ 0 311403 4789112983868 <- java/io/FileOutputStream.write
+ 0 311403 4789112983874 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789112983885 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789112983892 <- java/io/PrintStream.write
+ 0 311403 4789112983901 -> java/nio/Buffer.clear
+ 0 311403 4789112983909 <- java/nio/Buffer.clear
+ 0 311403 4789112983915 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789112983922 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789112983929 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789112983936 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789112983946 -> java/lang/String.indexOf
+ 0 311403 4789112983952 -> java/lang/String.indexOf
+ 0 311403 4789112983961 <- java/lang/String.indexOf
+ 0 311403 4789112983967 <- java/lang/String.indexOf
+ 0 311403 4789112983974 <- java/io/PrintStream.write
+ 0 311403 4789112983981 <- java/io/PrintStream.print
+ 0 311403 4789112983989 -> java/io/PrintStream.newLine
+ 0 311403 4789112983995 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789112984002 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789112984010 -> java/io/BufferedWriter.newLine
+ 0 311403 4789112984019 -> java/io/Writer.write
+ 0 311403 4789112984025 -> java/io/BufferedWriter.write
+ 0 311403 4789112984031 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112984039 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112984045 -> java/io/BufferedWriter.min
+ 0 311403 4789112984052 <- java/io/BufferedWriter.min
+ 0 311403 4789112984058 -> java/lang/String.getChars
+ 0 311403 4789112984064 -> java/lang/System.arraycopy
+ 0 311403 4789112984072 <- java/lang/System.arraycopy
+ 0 311403 4789112984078 <- java/lang/String.getChars
+ 0 311403 4789112984085 <- java/io/BufferedWriter.write
+ 0 311403 4789112984092 <- java/io/Writer.write
+ 0 311403 4789112984099 <- java/io/BufferedWriter.newLine
+ 0 311403 4789112984104 -> java/io/BufferedWriter.flushBuffer
+ 0 311403 4789112984111 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112984118 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789112984124 -> java/io/OutputStreamWriter.write
+ 0 311403 4789112984130 -> sun/nio/cs/StreamEncoder.write
+ 0 311403 4789112984137 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789112984144 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789112984150 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789112984156 -> java/nio/CharBuffer.wrap
+ 0 311403 4789112984163 -> java/nio/HeapCharBuffer.<init>
+ 0 311403 4789112984169 -> java/nio/CharBuffer.<init>
+ 0 311403 4789112984175 -> java/nio/Buffer.<init>
+ 0 311403 4789112984181 -> java/lang/Object.<init>
+ 0 311403 4789112984189 <- java/lang/Object.<init>
+ 0 311403 4789112984194 -> java/nio/Buffer.limit
+ 0 311403 4789112984202 <- java/nio/Buffer.limit
+ 0 311403 4789112984207 -> java/nio/Buffer.position
+ 0 311403 4789112984214 <- java/nio/Buffer.position
+ 0 311403 4789112984221 <- java/nio/Buffer.<init>
+ 0 311403 4789112984228 <- java/nio/CharBuffer.<init>
+ 0 311403 4789112984234 <- java/nio/HeapCharBuffer.<init>
+ 0 311403 4789112984241 <- java/nio/CharBuffer.wrap
+ 0 311403 4789112984247 -> java/nio/Buffer.hasRemaining
+ 0 311403 4789112984254 <- java/nio/Buffer.hasRemaining
+ 0 311403 4789112984260 -> java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789112984266 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789112984273 -> java/nio/CharBuffer.hasArray
+ 0 311403 4789112984280 <- java/nio/CharBuffer.hasArray
+ 0 311403 4789112984286 -> java/nio/ByteBuffer.hasArray
+ 0 311403 4789112984293 <- java/nio/ByteBuffer.hasArray
+ 0 311403 4789112984299 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789112984305 -> java/nio/CharBuffer.array
+ 0 311403 4789112984312 <- java/nio/CharBuffer.array
+ 0 311403 4789112984318 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112984325 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112984331 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112984338 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112984344 -> java/nio/ByteBuffer.array
+ 0 311403 4789112984352 <- java/nio/ByteBuffer.array
+ 0 311403 4789112984358 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984365 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984371 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984378 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984384 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112984391 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789112984397 -> java/nio/Buffer.position
+ 0 311403 4789112984404 <- java/nio/Buffer.position
+ 0 311403 4789112984410 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984417 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984423 -> java/nio/Buffer.position
+ 0 311403 4789112984430 <- java/nio/Buffer.position
+ 0 311403 4789112984437 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789112984444 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789112984450 -> java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789112984457 <- java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789112984463 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112984470 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112984477 <- java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789112984483 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112984491 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789112984497 -> java/nio/Buffer.remaining
+ 0 311403 4789112984504 <- java/nio/Buffer.remaining
+ 0 311403 4789112984510 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789112984517 <- sun/nio/cs/StreamEncoder.write
+ 0 311403 4789112984524 <- java/io/OutputStreamWriter.write
+ 0 311403 4789112984531 <- java/io/BufferedWriter.flushBuffer
+ 0 311403 4789112984536 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789112984543 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789112984549 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789112984556 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789112984562 -> java/nio/Buffer.flip
+ 0 311403 4789112984569 <- java/nio/Buffer.flip
+ 0 311403 4789112984575 -> java/nio/ByteBuffer.array
+ 0 311403 4789112984582 <- java/nio/ByteBuffer.array
+ 0 311403 4789112984588 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984595 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789112984601 -> java/io/PrintStream.write
+ 0 311403 4789112984607 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789112984615 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789112984621 -> java/io/BufferedOutputStream.write
+ 0 311403 4789112984627 -> java/lang/System.arraycopy
+ 0 311403 4789112984635 <- java/lang/System.arraycopy
+ 0 311403 4789112984641 <- java/io/BufferedOutputStream.write
+ 0 311403 4789112984647 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789112984654 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789112984660 -> java/io/FileOutputStream.write
+ 0 311403 4789112984666 -> java/io/FileOutputStream.writeBytes
+ 0 311403 4789112984712 <- java/io/FileOutputStream.writeBytes
+ 0 311403 4789112984719 <- java/io/FileOutputStream.write
+ 0 311403 4789112984726 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789112984733 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789112984740 <- java/io/PrintStream.write
+ 0 311403 4789112984746 -> java/nio/Buffer.clear
+ 0 311403 4789112984753 <- java/nio/Buffer.clear
+ 0 311403 4789112984760 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789112984766 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789112984773 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789112984780 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789112984786 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789112984792 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789112984800 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789112984807 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789112984813 <- java/io/PrintStream.newLine
+ 0 311403 4789112984820 <- java/io/PrintStream.println
+ 0 311403 4789112984835 -> java/lang/ClassLoader.loadClassInternal
+ 0 311403 4789112984842 -> java/lang/ClassLoader.loadClass
+ 0 311403 4789112984849 -> sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311403 4789112984855 -> java/lang/String.lastIndexOf
+ 0 311403 4789112984862 -> java/lang/String.lastIndexOf
+ 0 311403 4789112984870 <- java/lang/String.lastIndexOf
+ 0 311403 4789112984877 <- java/lang/String.lastIndexOf
+ 0 311403 4789112984882 -> java/lang/System.getSecurityManager
+ 0 311403 4789112984890 <- java/lang/System.getSecurityManager
+ 0 311403 4789112984896 -> java/lang/ClassLoader.loadClass
+ 0 311403 4789112984902 -> java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112984908 -> java/lang/ClassLoader.check
+ 0 311403 4789112984915 <- java/lang/ClassLoader.check
+ 0 311403 4789112984921 -> java/lang/ClassLoader.checkName
+ 0 311403 4789112984927 -> java/lang/String.indexOf
+ 0 311403 4789112984934 -> java/lang/String.indexOf
+ 0 311403 4789112984942 <- java/lang/String.indexOf
+ 0 311403 4789112984948 <- java/lang/String.indexOf
+ 0 311403 4789112984954 -> sun/misc/VM.allowArraySyntax
+ 0 311403 4789112984961 <- sun/misc/VM.allowArraySyntax
+ 0 311403 4789112984967 -> java/lang/String.charAt
+ 0 311403 4789112984974 <- java/lang/String.charAt
+ 0 311403 4789112984981 <- java/lang/ClassLoader.checkName
+ 0 311403 4789112984987 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112984998 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112985005 <- java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112985011 -> java/lang/ClassLoader.loadClass
+ 0 311403 4789112985018 -> java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112985024 -> java/lang/ClassLoader.check
+ 0 311403 4789112985031 <- java/lang/ClassLoader.check
+ 0 311403 4789112985037 -> java/lang/ClassLoader.checkName
+ 0 311403 4789112985043 -> java/lang/String.indexOf
+ 0 311403 4789112985049 -> java/lang/String.indexOf
+ 0 311403 4789112985057 <- java/lang/String.indexOf
+ 0 311403 4789112985064 <- java/lang/String.indexOf
+ 0 311403 4789112985070 -> sun/misc/VM.allowArraySyntax
+ 0 311403 4789112985077 <- sun/misc/VM.allowArraySyntax
+ 0 311403 4789112985083 -> java/lang/String.charAt
+ 0 311403 4789112985090 <- java/lang/String.charAt
+ 0 311403 4789112985096 <- java/lang/ClassLoader.checkName
+ 0 311403 4789112985102 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112985111 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311403 4789112985118 <- java/lang/ClassLoader.findLoadedClass
+ 0 311403 4789112985124 -> java/lang/ClassLoader.findBootstrapClass0
+ 0 311403 4789112985130 -> java/lang/ClassLoader.check
+ 0 311403 4789112985138 <- java/lang/ClassLoader.check
+ 0 311403 4789112985143 -> java/lang/ClassLoader.checkName
+ 0 311403 4789112985150 -> java/lang/String.indexOf
+ 0 311403 4789112985156 -> java/lang/String.indexOf
+ 0 311403 4789112985164 <- java/lang/String.indexOf
+ 0 311403 4789112985170 <- java/lang/String.indexOf
+ 0 311403 4789112985176 -> sun/misc/VM.allowArraySyntax
+ 0 311403 4789112985183 <- sun/misc/VM.allowArraySyntax
+ 0 311403 4789112985189 -> java/lang/String.charAt
+ 0 311403 4789112985196 <- java/lang/String.charAt
+ 0 311403 4789112985203 <- java/lang/ClassLoader.checkName
+ 0 311403 4789112985208 -> java/lang/ClassLoader.findBootstrapClass
+ 0 311403 4789112985219 <- java/lang/ClassLoader.findBootstrapClass
+ 0 311403 4789112985226 <- java/lang/ClassLoader.findBootstrapClass0
+ 0 311403 4789112985233 <- java/lang/ClassLoader.loadClass
+ 0 311403 4789112985240 <- java/lang/ClassLoader.loadClass
+ 0 311403 4789112985247 <- sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311403 4789112985253 <- java/lang/ClassLoader.loadClass
+ 0 311403 4789112985260 <- java/lang/ClassLoader.loadClassInternal
+ 0 311403 4789112985270 -> java/lang/ClassLoader.checkPackageAccess
+ 0 311403 4789112985277 -> java/lang/System.getSecurityManager
+ 0 311403 4789112985285 <- java/lang/System.getSecurityManager
+ 0 311403 4789112985291 -> java/util/HashSet.add
+ 0 311403 4789112985297 -> java/util/HashMap.put
+ 0 311403 4789112985304 -> java/lang/Object.hashCode
+ 0 311403 4789112985311 <- java/lang/Object.hashCode
+ 0 311403 4789112985317 -> java/util/HashMap.hash
+ 0 311403 4789112985324 <- java/util/HashMap.hash
+ 0 311403 4789112985330 -> java/util/HashMap.indexFor
+ 0 311403 4789112985337 <- java/util/HashMap.indexFor
+ 0 311403 4789112985344 <- java/util/HashMap.put
+ 0 311403 4789112985351 <- java/util/HashSet.add
+ 0 311403 4789112985358 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311403 4789112985371 -> java/lang/Thread.currentThread
+ 0 311403 4789112985379 <- java/lang/Thread.currentThread
+ 0 311403 4789112985387 -> java/lang/Thread.sleep
+ 0 311403 4789113990048 <- java/lang/Thread.sleep
+ 0 311403 4789113990080 -> Func_abc.func_b
+ 0 311403 4789113990104 -> java/io/PrintStream.println
+ 0 311403 4789113990112 -> java/io/PrintStream.print
+ 0 311403 4789113990118 -> java/io/PrintStream.write
+ 0 311403 4789113990125 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789113990133 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789113990139 -> java/io/Writer.write
+ 0 311403 4789113990147 -> java/io/BufferedWriter.write
+ 0 311403 4789113990154 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113990161 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113990168 -> java/io/BufferedWriter.min
+ 0 311403 4789113990176 <- java/io/BufferedWriter.min
+ 0 311403 4789113990182 -> java/lang/String.getChars
+ 0 311403 4789113990189 -> java/lang/System.arraycopy
+ 0 311403 4789113990198 <- java/lang/System.arraycopy
+ 0 311403 4789113990205 <- java/lang/String.getChars
+ 0 311403 4789113990212 <- java/io/BufferedWriter.write
+ 0 311403 4789113990219 <- java/io/Writer.write
+ 0 311403 4789113990225 -> java/io/BufferedWriter.flushBuffer
+ 0 311403 4789113990231 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113990238 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113990245 -> java/io/OutputStreamWriter.write
+ 0 311403 4789113990252 -> sun/nio/cs/StreamEncoder.write
+ 0 311403 4789113990258 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789113990265 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789113990272 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789113990279 -> java/nio/CharBuffer.wrap
+ 0 311403 4789113990286 -> java/nio/HeapCharBuffer.<init>
+ 0 311403 4789113990293 -> java/nio/CharBuffer.<init>
+ 0 311403 4789113990299 -> java/nio/Buffer.<init>
+ 0 311403 4789113990306 -> java/lang/Object.<init>
+ 0 311403 4789113990313 <- java/lang/Object.<init>
+ 0 311403 4789113990320 -> java/nio/Buffer.limit
+ 0 311403 4789113990327 <- java/nio/Buffer.limit
+ 0 311403 4789113990333 -> java/nio/Buffer.position
+ 0 311403 4789113990340 <- java/nio/Buffer.position
+ 0 311403 4789113990347 <- java/nio/Buffer.<init>
+ 0 311403 4789113990354 <- java/nio/CharBuffer.<init>
+ 0 311403 4789113990360 <- java/nio/HeapCharBuffer.<init>
+ 0 311403 4789113990367 <- java/nio/CharBuffer.wrap
+ 0 311403 4789113990373 -> java/nio/Buffer.hasRemaining
+ 0 311403 4789113990381 <- java/nio/Buffer.hasRemaining
+ 0 311403 4789113990387 -> java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789113990394 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789113990401 -> java/nio/CharBuffer.hasArray
+ 0 311403 4789113990409 <- java/nio/CharBuffer.hasArray
+ 0 311403 4789113990415 -> java/nio/ByteBuffer.hasArray
+ 0 311403 4789113990422 <- java/nio/ByteBuffer.hasArray
+ 0 311403 4789113990428 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789113990435 -> java/nio/CharBuffer.array
+ 0 311403 4789113990442 <- java/nio/CharBuffer.array
+ 0 311403 4789113990448 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113990455 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113990461 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113990468 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113990475 -> java/nio/ByteBuffer.array
+ 0 311403 4789113990482 <- java/nio/ByteBuffer.array
+ 0 311403 4789113990488 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990495 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990501 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990508 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990517 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113990524 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113990529 -> java/nio/Buffer.position
+ 0 311403 4789113990537 <- java/nio/Buffer.position
+ 0 311403 4789113990542 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990550 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990555 -> java/nio/Buffer.position
+ 0 311403 4789113990563 <- java/nio/Buffer.position
+ 0 311403 4789113990569 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789113990576 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789113990583 -> java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789113990590 <- java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789113990596 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113990603 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113990610 <- java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789113990616 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113990624 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113990630 -> java/nio/Buffer.remaining
+ 0 311403 4789113990637 <- java/nio/Buffer.remaining
+ 0 311403 4789113990643 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789113990650 <- sun/nio/cs/StreamEncoder.write
+ 0 311403 4789113990657 <- java/io/OutputStreamWriter.write
+ 0 311403 4789113990664 <- java/io/BufferedWriter.flushBuffer
+ 0 311403 4789113990670 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789113990677 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789113990683 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789113990690 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789113990697 -> java/nio/Buffer.flip
+ 0 311403 4789113990704 <- java/nio/Buffer.flip
+ 0 311403 4789113990710 -> java/nio/ByteBuffer.array
+ 0 311403 4789113990717 <- java/nio/ByteBuffer.array
+ 0 311403 4789113990723 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990730 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113990736 -> java/io/PrintStream.write
+ 0 311403 4789113990742 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789113990749 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789113990756 -> java/io/BufferedOutputStream.write
+ 0 311403 4789113990763 -> java/lang/System.arraycopy
+ 0 311403 4789113990770 <- java/lang/System.arraycopy
+ 0 311403 4789113990777 <- java/io/BufferedOutputStream.write
+ 0 311403 4789113990783 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789113990790 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789113990797 -> java/io/FileOutputStream.write
+ 0 311403 4789113990803 -> java/io/FileOutputStream.writeBytes
+ 0 311403 4789113990841 <- java/io/FileOutputStream.writeBytes
+ 0 311403 4789113990848 <- java/io/FileOutputStream.write
+ 0 311403 4789113990855 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789113990862 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789113990869 <- java/io/PrintStream.write
+ 0 311403 4789113990875 -> java/nio/Buffer.clear
+ 0 311403 4789113990882 <- java/nio/Buffer.clear
+ 0 311403 4789113990888 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789113990895 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789113990902 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789113990909 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789113990915 -> java/lang/String.indexOf
+ 0 311403 4789113990922 -> java/lang/String.indexOf
+ 0 311403 4789113990930 <- java/lang/String.indexOf
+ 0 311403 4789113990936 <- java/lang/String.indexOf
+ 0 311403 4789113990943 <- java/io/PrintStream.write
+ 0 311403 4789113990950 <- java/io/PrintStream.print
+ 0 311403 4789113990956 -> java/io/PrintStream.newLine
+ 0 311403 4789113990962 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789113990969 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789113990975 -> java/io/BufferedWriter.newLine
+ 0 311403 4789113990981 -> java/io/Writer.write
+ 0 311403 4789113990988 -> java/io/BufferedWriter.write
+ 0 311403 4789113990994 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113991001 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113991007 -> java/io/BufferedWriter.min
+ 0 311403 4789113991014 <- java/io/BufferedWriter.min
+ 0 311403 4789113991020 -> java/lang/String.getChars
+ 0 311403 4789113991026 -> java/lang/System.arraycopy
+ 0 311403 4789113991034 <- java/lang/System.arraycopy
+ 0 311403 4789113991040 <- java/lang/String.getChars
+ 0 311403 4789113991047 <- java/io/BufferedWriter.write
+ 0 311403 4789113991054 <- java/io/Writer.write
+ 0 311403 4789113991060 <- java/io/BufferedWriter.newLine
+ 0 311403 4789113991066 -> java/io/BufferedWriter.flushBuffer
+ 0 311403 4789113991072 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113991080 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789113991086 -> java/io/OutputStreamWriter.write
+ 0 311403 4789113991092 -> sun/nio/cs/StreamEncoder.write
+ 0 311403 4789113991098 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789113991106 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789113991112 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789113991118 -> java/nio/CharBuffer.wrap
+ 0 311403 4789113991124 -> java/nio/HeapCharBuffer.<init>
+ 0 311403 4789113991131 -> java/nio/CharBuffer.<init>
+ 0 311403 4789113991137 -> java/nio/Buffer.<init>
+ 0 311403 4789113991143 -> java/lang/Object.<init>
+ 0 311403 4789113991150 <- java/lang/Object.<init>
+ 0 311403 4789113991156 -> java/nio/Buffer.limit
+ 0 311403 4789113991163 <- java/nio/Buffer.limit
+ 0 311403 4789113991169 -> java/nio/Buffer.position
+ 0 311403 4789113991176 <- java/nio/Buffer.position
+ 0 311403 4789113991182 <- java/nio/Buffer.<init>
+ 0 311403 4789113991189 <- java/nio/CharBuffer.<init>
+ 0 311403 4789113991196 <- java/nio/HeapCharBuffer.<init>
+ 0 311403 4789113991202 <- java/nio/CharBuffer.wrap
+ 0 311403 4789113991208 -> java/nio/Buffer.hasRemaining
+ 0 311403 4789113991215 <- java/nio/Buffer.hasRemaining
+ 0 311403 4789113991221 -> java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789113991281 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789113991287 -> java/nio/CharBuffer.hasArray
+ 0 311403 4789113991295 <- java/nio/CharBuffer.hasArray
+ 0 311403 4789113991301 -> java/nio/ByteBuffer.hasArray
+ 0 311403 4789113991308 <- java/nio/ByteBuffer.hasArray
+ 0 311403 4789113991314 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789113991320 -> java/nio/CharBuffer.array
+ 0 311403 4789113991328 <- java/nio/CharBuffer.array
+ 0 311403 4789113991333 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113991341 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113991347 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113991354 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113991360 -> java/nio/ByteBuffer.array
+ 0 311403 4789113991367 <- java/nio/ByteBuffer.array
+ 0 311403 4789113991373 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991380 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991386 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991393 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991400 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113991407 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789113991413 -> java/nio/Buffer.position
+ 0 311403 4789113991420 <- java/nio/Buffer.position
+ 0 311403 4789113991426 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991433 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991439 -> java/nio/Buffer.position
+ 0 311403 4789113991446 <- java/nio/Buffer.position
+ 0 311403 4789113991453 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789113991459 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789113991465 -> java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789113991473 <- java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789113991479 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113991486 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113991493 <- java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789113991499 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113991506 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789113991512 -> java/nio/Buffer.remaining
+ 0 311403 4789113991519 <- java/nio/Buffer.remaining
+ 0 311403 4789113991526 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789113991533 <- sun/nio/cs/StreamEncoder.write
+ 0 311403 4789113991539 <- java/io/OutputStreamWriter.write
+ 0 311403 4789113991546 <- java/io/BufferedWriter.flushBuffer
+ 0 311403 4789113991552 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789113991559 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789113991565 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789113991572 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789113991578 -> java/nio/Buffer.flip
+ 0 311403 4789113991585 <- java/nio/Buffer.flip
+ 0 311403 4789113991591 -> java/nio/ByteBuffer.array
+ 0 311403 4789113991598 <- java/nio/ByteBuffer.array
+ 0 311403 4789113991604 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991611 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789113991617 -> java/io/PrintStream.write
+ 0 311403 4789113991623 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789113991630 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789113991636 -> java/io/BufferedOutputStream.write
+ 0 311403 4789113991643 -> java/lang/System.arraycopy
+ 0 311403 4789113991651 <- java/lang/System.arraycopy
+ 0 311403 4789113991657 <- java/io/BufferedOutputStream.write
+ 0 311403 4789113991663 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789113991670 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789113991676 -> java/io/FileOutputStream.write
+ 0 311403 4789113991682 -> java/io/FileOutputStream.writeBytes
+ 0 311403 4789113991701 <- java/io/FileOutputStream.writeBytes
+ 0 311403 4789113991708 <- java/io/FileOutputStream.write
+ 0 311403 4789113991720 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789113991728 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789113991734 <- java/io/PrintStream.write
+ 0 311403 4789113991740 -> java/nio/Buffer.clear
+ 0 311403 4789113991747 <- java/nio/Buffer.clear
+ 0 311403 4789113991754 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789113991761 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789113991768 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789113991774 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789113991780 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789113991787 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789113991794 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789113991801 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789113991808 <- java/io/PrintStream.newLine
+ 0 311403 4789113991815 <- java/io/PrintStream.println
+ 0 311403 4789113991821 -> java/lang/Thread.currentThread
+ 0 311403 4789113991828 <- java/lang/Thread.currentThread
+ 0 311403 4789113991834 -> java/lang/Thread.sleep
+ 0 311403 4789115000050 <- java/lang/Thread.sleep
+ 0 311403 4789115000081 -> Func_abc.func_c
+ 0 311403 4789115000105 -> java/io/PrintStream.println
+ 0 311403 4789115000113 -> java/io/PrintStream.print
+ 0 311403 4789115000120 -> java/io/PrintStream.write
+ 0 311403 4789115000126 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789115000134 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789115000141 -> java/io/Writer.write
+ 0 311403 4789115000148 -> java/io/BufferedWriter.write
+ 0 311403 4789115000155 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115000162 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115000170 -> java/io/BufferedWriter.min
+ 0 311403 4789115000177 <- java/io/BufferedWriter.min
+ 0 311403 4789115000183 -> java/lang/String.getChars
+ 0 311403 4789115000191 -> java/lang/System.arraycopy
+ 0 311403 4789115000199 <- java/lang/System.arraycopy
+ 0 311403 4789115000206 <- java/lang/String.getChars
+ 0 311403 4789115000213 <- java/io/BufferedWriter.write
+ 0 311403 4789115000220 <- java/io/Writer.write
+ 0 311403 4789115000226 -> java/io/BufferedWriter.flushBuffer
+ 0 311403 4789115000233 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115000240 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115000246 -> java/io/OutputStreamWriter.write
+ 0 311403 4789115000253 -> sun/nio/cs/StreamEncoder.write
+ 0 311403 4789115000260 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789115000267 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789115000274 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789115000281 -> java/nio/CharBuffer.wrap
+ 0 311403 4789115000288 -> java/nio/HeapCharBuffer.<init>
+ 0 311403 4789115000294 -> java/nio/CharBuffer.<init>
+ 0 311403 4789115000301 -> java/nio/Buffer.<init>
+ 0 311403 4789115000307 -> java/lang/Object.<init>
+ 0 311403 4789115000315 <- java/lang/Object.<init>
+ 0 311403 4789115000321 -> java/nio/Buffer.limit
+ 0 311403 4789115000328 <- java/nio/Buffer.limit
+ 0 311403 4789115000334 -> java/nio/Buffer.position
+ 0 311403 4789115000342 <- java/nio/Buffer.position
+ 0 311403 4789115000348 <- java/nio/Buffer.<init>
+ 0 311403 4789115000355 <- java/nio/CharBuffer.<init>
+ 0 311403 4789115000362 <- java/nio/HeapCharBuffer.<init>
+ 0 311403 4789115000368 <- java/nio/CharBuffer.wrap
+ 0 311403 4789115000374 -> java/nio/Buffer.hasRemaining
+ 0 311403 4789115000382 <- java/nio/Buffer.hasRemaining
+ 0 311403 4789115000388 -> java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789115000396 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789115000402 -> java/nio/CharBuffer.hasArray
+ 0 311403 4789115000410 <- java/nio/CharBuffer.hasArray
+ 0 311403 4789115000416 -> java/nio/ByteBuffer.hasArray
+ 0 311403 4789115000424 <- java/nio/ByteBuffer.hasArray
+ 0 311403 4789115000430 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789115000436 -> java/nio/CharBuffer.array
+ 0 311403 4789115000444 <- java/nio/CharBuffer.array
+ 0 311403 4789115000450 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115000457 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115000463 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115000470 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115000476 -> java/nio/ByteBuffer.array
+ 0 311403 4789115000483 <- java/nio/ByteBuffer.array
+ 0 311403 4789115000489 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000496 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000502 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000509 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000518 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115000525 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115000531 -> java/nio/Buffer.position
+ 0 311403 4789115000538 <- java/nio/Buffer.position
+ 0 311403 4789115000544 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000551 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000557 -> java/nio/Buffer.position
+ 0 311403 4789115000564 <- java/nio/Buffer.position
+ 0 311403 4789115000570 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789115000577 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789115000584 -> java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789115000591 <- java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789115000597 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115000605 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115000611 <- java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789115000617 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115000625 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115000631 -> java/nio/Buffer.remaining
+ 0 311403 4789115000638 <- java/nio/Buffer.remaining
+ 0 311403 4789115000645 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789115000652 <- sun/nio/cs/StreamEncoder.write
+ 0 311403 4789115000658 <- java/io/OutputStreamWriter.write
+ 0 311403 4789115000665 <- java/io/BufferedWriter.flushBuffer
+ 0 311403 4789115000671 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789115000678 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789115000685 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789115000692 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789115000698 -> java/nio/Buffer.flip
+ 0 311403 4789115000705 <- java/nio/Buffer.flip
+ 0 311403 4789115000711 -> java/nio/ByteBuffer.array
+ 0 311403 4789115000718 <- java/nio/ByteBuffer.array
+ 0 311403 4789115000724 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000731 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115000738 -> java/io/PrintStream.write
+ 0 311403 4789115000744 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789115000751 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789115000758 -> java/io/BufferedOutputStream.write
+ 0 311403 4789115000764 -> java/lang/System.arraycopy
+ 0 311403 4789115000772 <- java/lang/System.arraycopy
+ 0 311403 4789115000778 <- java/io/BufferedOutputStream.write
+ 0 311403 4789115000785 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789115000791 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789115000798 -> java/io/FileOutputStream.write
+ 0 311403 4789115000805 -> java/io/FileOutputStream.writeBytes
+ 0 311403 4789115000843 <- java/io/FileOutputStream.writeBytes
+ 0 311403 4789115000850 <- java/io/FileOutputStream.write
+ 0 311403 4789115000857 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789115000864 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789115000871 <- java/io/PrintStream.write
+ 0 311403 4789115000877 -> java/nio/Buffer.clear
+ 0 311403 4789115000884 <- java/nio/Buffer.clear
+ 0 311403 4789115000891 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789115000897 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789115000904 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789115000911 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789115000917 -> java/lang/String.indexOf
+ 0 311403 4789115000924 -> java/lang/String.indexOf
+ 0 311403 4789115000932 <- java/lang/String.indexOf
+ 0 311403 4789115000939 <- java/lang/String.indexOf
+ 0 311403 4789115000945 <- java/io/PrintStream.write
+ 0 311403 4789115000952 <- java/io/PrintStream.print
+ 0 311403 4789115000958 -> java/io/PrintStream.newLine
+ 0 311403 4789115000964 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789115000971 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789115000977 -> java/io/BufferedWriter.newLine
+ 0 311403 4789115000983 -> java/io/Writer.write
+ 0 311403 4789115000990 -> java/io/BufferedWriter.write
+ 0 311403 4789115000996 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115001003 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115001009 -> java/io/BufferedWriter.min
+ 0 311403 4789115001016 <- java/io/BufferedWriter.min
+ 0 311403 4789115001022 -> java/lang/String.getChars
+ 0 311403 4789115001029 -> java/lang/System.arraycopy
+ 0 311403 4789115001036 <- java/lang/System.arraycopy
+ 0 311403 4789115001042 <- java/lang/String.getChars
+ 0 311403 4789115001049 <- java/io/BufferedWriter.write
+ 0 311403 4789115001056 <- java/io/Writer.write
+ 0 311403 4789115001062 <- java/io/BufferedWriter.newLine
+ 0 311403 4789115001068 -> java/io/BufferedWriter.flushBuffer
+ 0 311403 4789115001075 -> java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115001082 <- java/io/BufferedWriter.ensureOpen
+ 0 311403 4789115001088 -> java/io/OutputStreamWriter.write
+ 0 311403 4789115001094 -> sun/nio/cs/StreamEncoder.write
+ 0 311403 4789115001101 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789115001108 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311403 4789115001114 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789115001120 -> java/nio/CharBuffer.wrap
+ 0 311403 4789115001127 -> java/nio/HeapCharBuffer.<init>
+ 0 311403 4789115001133 -> java/nio/CharBuffer.<init>
+ 0 311403 4789115001139 -> java/nio/Buffer.<init>
+ 0 311403 4789115001145 -> java/lang/Object.<init>
+ 0 311403 4789115001152 <- java/lang/Object.<init>
+ 0 311403 4789115001158 -> java/nio/Buffer.limit
+ 0 311403 4789115001165 <- java/nio/Buffer.limit
+ 0 311403 4789115001171 -> java/nio/Buffer.position
+ 0 311403 4789115001178 <- java/nio/Buffer.position
+ 0 311403 4789115001185 <- java/nio/Buffer.<init>
+ 0 311403 4789115001191 <- java/nio/CharBuffer.<init>
+ 0 311403 4789115001198 <- java/nio/HeapCharBuffer.<init>
+ 0 311403 4789115001204 <- java/nio/CharBuffer.wrap
+ 0 311403 4789115001210 -> java/nio/Buffer.hasRemaining
+ 0 311403 4789115001217 <- java/nio/Buffer.hasRemaining
+ 0 311403 4789115001223 -> java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789115001230 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789115001236 -> java/nio/CharBuffer.hasArray
+ 0 311403 4789115001243 <- java/nio/CharBuffer.hasArray
+ 0 311403 4789115001249 -> java/nio/ByteBuffer.hasArray
+ 0 311403 4789115001256 <- java/nio/ByteBuffer.hasArray
+ 0 311403 4789115001262 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789115001269 -> java/nio/CharBuffer.array
+ 0 311403 4789115001276 <- java/nio/CharBuffer.array
+ 0 311403 4789115001281 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115001288 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115001294 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115001302 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115001308 -> java/nio/ByteBuffer.array
+ 0 311403 4789115001315 <- java/nio/ByteBuffer.array
+ 0 311403 4789115001320 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001328 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001334 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001341 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001347 -> java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115001354 <- java/nio/CharBuffer.arrayOffset
+ 0 311403 4789115001360 -> java/nio/Buffer.position
+ 0 311403 4789115001367 <- java/nio/Buffer.position
+ 0 311403 4789115001373 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001380 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001386 -> java/nio/Buffer.position
+ 0 311403 4789115001393 <- java/nio/Buffer.position
+ 0 311403 4789115001400 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311403 4789115001407 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311403 4789115001413 -> java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789115001420 <- java/nio/charset/CoderResult.isOverflow
+ 0 311403 4789115001426 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115001433 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115001440 <- java/nio/charset/CharsetEncoder.encode
+ 0 311403 4789115001446 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115001453 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311403 4789115001459 -> java/nio/Buffer.remaining
+ 0 311403 4789115001466 <- java/nio/Buffer.remaining
+ 0 311403 4789115001473 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311403 4789115001480 <- sun/nio/cs/StreamEncoder.write
+ 0 311403 4789115001487 <- java/io/OutputStreamWriter.write
+ 0 311403 4789115001493 <- java/io/BufferedWriter.flushBuffer
+ 0 311403 4789115001499 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789115001506 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789115001512 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789115001519 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789115001525 -> java/nio/Buffer.flip
+ 0 311403 4789115001532 <- java/nio/Buffer.flip
+ 0 311403 4789115001538 -> java/nio/ByteBuffer.array
+ 0 311403 4789115001545 <- java/nio/ByteBuffer.array
+ 0 311403 4789115001551 -> java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001558 <- java/nio/ByteBuffer.arrayOffset
+ 0 311403 4789115001564 -> java/io/PrintStream.write
+ 0 311403 4789115001570 -> java/io/PrintStream.ensureOpen
+ 0 311403 4789115001577 <- java/io/PrintStream.ensureOpen
+ 0 311403 4789115001583 -> java/io/BufferedOutputStream.write
+ 0 311403 4789115001590 -> java/lang/System.arraycopy
+ 0 311403 4789115001597 <- java/lang/System.arraycopy
+ 0 311403 4789115001604 <- java/io/BufferedOutputStream.write
+ 0 311403 4789115001610 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789115001621 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789115001628 -> java/io/FileOutputStream.write
+ 0 311403 4789115001634 -> java/io/FileOutputStream.writeBytes
+ 0 311403 4789115001652 <- java/io/FileOutputStream.writeBytes
+ 0 311403 4789115001706 <- java/io/FileOutputStream.write
+ 0 311403 4789115001713 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789115001720 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789115001727 <- java/io/PrintStream.write
+ 0 311403 4789115001733 -> java/nio/Buffer.clear
+ 0 311403 4789115001740 <- java/nio/Buffer.clear
+ 0 311403 4789115001747 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311403 4789115001753 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311403 4789115001760 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311403 4789115001767 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311403 4789115001773 -> java/io/BufferedOutputStream.flush
+ 0 311403 4789115001779 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789115001787 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311403 4789115001794 <- java/io/BufferedOutputStream.flush
+ 0 311403 4789115001801 <- java/io/PrintStream.newLine
+ 0 311403 4789115001807 <- java/io/PrintStream.println
+ 0 311403 4789115001813 -> java/lang/Thread.currentThread
+ 0 311403 4789115001821 <- java/lang/Thread.currentThread
+ 0 311403 4789115001827 -> java/lang/Thread.sleep
+ 0 311403 4789116010060 <- java/lang/Thread.sleep
+ 0 311403 4789116010073 <- Func_abc.func_c
+ 0 311403 4789116010080 <- Func_abc.func_b
+ 0 311403 4789116010086 <- Func_abc.func_a
+ 0 311403 4789116010093 <- Func_abc.main
+ 0 311403 4789116010118 -> java/lang/Thread.exit
+ 0 311403 4789116010145 -> java/lang/ThreadGroup.remove
+ 0 311403 4789116010160 -> java/lang/System.arraycopy
+ 0 311403 4789116010169 <- java/lang/System.arraycopy
+ 0 311403 4789116010178 -> java/lang/Object.notifyAll
+ 0 311403 4789116010192 <- java/lang/Object.notifyAll
+ 0 311403 4789116010199 <- java/lang/ThreadGroup.remove
+ 0 311403 4789116010212 <- java/lang/Thread.exit
+ 0 311403 4789116010380 -> java/lang/Thread.<init>
+ 0 311403 4789116010388 -> java/lang/Object.<init>
+ 0 311403 4789116010395 <- java/lang/Object.<init>
+ 0 311403 4789116010402 -> java/lang/Object.<init>
+ 0 311403 4789116010409 <- java/lang/Object.<init>
+ 0 311403 4789116010415 -> java/lang/Thread.init
+ 0 311403 4789116010422 -> java/lang/Thread.currentThread
+ 0 311403 4789116010430 <- java/lang/Thread.currentThread
+ 0 311403 4789116010436 -> java/lang/System.getSecurityManager
+ 0 311403 4789116010444 <- java/lang/System.getSecurityManager
+ 0 311403 4789116010450 -> java/lang/ThreadGroup.checkAccess
+ 0 311403 4789116010457 -> java/lang/System.getSecurityManager
+ 0 311403 4789116010464 <- java/lang/System.getSecurityManager
+ 0 311403 4789116010471 <- java/lang/ThreadGroup.checkAccess
+ 0 311403 4789116010477 -> java/lang/ThreadGroup.addUnstarted
+ 0 311403 4789116010484 <- java/lang/ThreadGroup.addUnstarted
+ 0 311403 4789116010491 -> java/lang/String.toCharArray
+ 0 311403 4789116010499 -> java/lang/String.getChars
+ 0 311403 4789116010506 -> java/lang/System.arraycopy
+ 0 311403 4789116010514 <- java/lang/System.arraycopy
+ 0 311403 4789116010521 <- java/lang/String.getChars
+ 0 311403 4789116010527 <- java/lang/String.toCharArray
+ 0 311403 4789116010534 -> java/lang/Thread.getContextClassLoader
+ 0 311403 4789116010541 <- java/lang/Thread.getContextClassLoader
+ 0 311403 4789116010548 -> java/security/AccessController.getContext
+ 0 311403 4789116010554 -> java/security/AccessController.getStackAccessControlContext
+ 0 311403 4789116010569 <- java/security/AccessController.getStackAccessControlContext
+ 0 311403 4789116010576 -> java/security/AccessControlContext.optimize
+ 0 311403 4789116010583 -> java/security/AccessController.getInheritedAccessControlContext
+ 0 311403 4789116010591 <- java/security/AccessController.getInheritedAccessControlContext
+ 0 311403 4789116010599 <- java/security/AccessControlContext.optimize
+ 0 311403 4789116010606 <- java/security/AccessController.getContext
+ 0 311403 4789116010612 -> java/lang/Thread.setPriority
+ 0 311403 4789116010618 -> java/lang/Thread.checkAccess
+ 0 311403 4789116010625 -> java/lang/System.getSecurityManager
+ 0 311403 4789116010632 <- java/lang/System.getSecurityManager
+ 0 311403 4789116010639 <- java/lang/Thread.checkAccess
+ 0 311403 4789116010645 -> java/lang/Thread.setPriority0
+ 0 311403 4789116010664 <- java/lang/Thread.setPriority0
+ 0 311403 4789116010671 <- java/lang/Thread.setPriority
+ 0 311403 4789116010678 -> java/lang/Thread.nextThreadID
+ 0 311403 4789116010686 <- java/lang/Thread.nextThreadID
+ 0 311403 4789116010693 <- java/lang/Thread.init
+ 0 311403 4789116010700 <- java/lang/Thread.<init>
+ 0 311403 4789116010707 -> java/lang/ThreadGroup.add
+ 0 311403 4789116010716 <- java/lang/ThreadGroup.add
+ 0 311403 4789116010729 -> java/lang/Shutdown.shutdown
+ 0 311403 4789116010740 -> java/lang/Shutdown.sequence
+ 0 311403 4789116010748 -> java/lang/Shutdown.runHooks
+ 0 311403 4789116010758 -> java/util/AbstractList.iterator
+ 0 311403 4789116011022 -> java/util/AbstractList$Itr.<init>
+ 0 311403 4789116011032 -> java/util/AbstractList$Itr.<init>
+ 0 311403 4789116011042 -> java/lang/Object.<init>
+ 0 311403 4789116011050 <- java/lang/Object.<init>
+ 0 311403 4789116011062 <- java/util/AbstractList$Itr.<init>
+ 0 311403 4789116011069 <- java/util/AbstractList$Itr.<init>
+ 0 311403 4789116011076 <- java/util/AbstractList.iterator
+ 0 311403 4789116011087 -> java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116011099 <- java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116011107 -> java/util/AbstractList$Itr.next
+ 0 311403 4789116011115 -> java/util/AbstractList$Itr.checkForComodification
+ 0 311403 4789116011123 <- java/util/AbstractList$Itr.checkForComodification
+ 0 311403 4789116011131 -> java/util/ArrayList.get
+ 0 311403 4789116011138 -> java/util/ArrayList.RangeCheck
+ 0 311403 4789116011145 <- java/util/ArrayList.RangeCheck
+ 0 311403 4789116011152 <- java/util/ArrayList.get
+ 0 311403 4789116011159 <- java/util/AbstractList$Itr.next
+ 0 311403 4789116011170 -> java/io/Console$1$1.run
+ 0 311403 4789116011180 -> java/io/Console.access$600
+ 0 311403 4789116011189 <- java/io/Console.access$600
+ 0 311403 4789116011196 <- java/io/Console$1$1.run
+ 0 311403 4789116011202 -> java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116011209 <- java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116011215 -> java/util/AbstractList$Itr.next
+ 0 311403 4789116011221 -> java/util/AbstractList$Itr.checkForComodification
+ 0 311403 4789116011229 <- java/util/AbstractList$Itr.checkForComodification
+ 0 311403 4789116011235 -> java/util/ArrayList.get
+ 0 311403 4789116011241 -> java/util/ArrayList.RangeCheck
+ 0 311403 4789116011248 <- java/util/ArrayList.RangeCheck
+ 0 311403 4789116011255 <- java/util/ArrayList.get
+ 0 311403 4789116011262 <- java/util/AbstractList$Itr.next
+ 0 311403 4789116011268 -> java/lang/ApplicationShutdownHooks.run
+ 0 311403 4789116011280 -> java/util/IdentityHashMap.keySet
+ 0 311403 4789116011442 -> java/util/IdentityHashMap$KeySet.<init>
+ 0 311403 4789116011452 -> java/util/IdentityHashMap$KeySet.<init>
+ 0 311403 4789116011462 -> java/util/AbstractSet.<init>
+ 0 311403 4789116011469 -> java/util/AbstractCollection.<init>
+ 0 311403 4789116011475 -> java/lang/Object.<init>
+ 0 311403 4789116011483 <- java/lang/Object.<init>
+ 0 311403 4789116011490 <- java/util/AbstractCollection.<init>
+ 0 311403 4789116011497 <- java/util/AbstractSet.<init>
+ 0 311403 4789116011503 <- java/util/IdentityHashMap$KeySet.<init>
+ 0 311403 4789116011510 <- java/util/IdentityHashMap$KeySet.<init>
+ 0 311403 4789116011528 <- java/util/IdentityHashMap.keySet
+ 0 311403 4789116011538 -> java/util/IdentityHashMap$KeySet.iterator
+ 0 311403 4789116011727 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011737 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011748 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011757 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011766 -> java/lang/Object.<init>
+ 0 311403 4789116011774 <- java/lang/Object.<init>
+ 0 311403 4789116011784 -> java/util/IdentityHashMap.access$000
+ 0 311403 4789116011793 <- java/util/IdentityHashMap.access$000
+ 0 311403 4789116011803 -> java/util/IdentityHashMap.access$200
+ 0 311403 4789116011811 <- java/util/IdentityHashMap.access$200
+ 0 311403 4789116011821 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011828 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011835 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011842 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011849 <- java/util/IdentityHashMap$KeySet.iterator
+ 0 311403 4789116011858 -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311403 4789116011866 <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311403 4789116011873 -> java/util/IdentityHashMap$KeySet.iterator
+ 0 311403 4789116011879 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011886 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011892 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011899 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011905 -> java/lang/Object.<init>
+ 0 311403 4789116011912 <- java/lang/Object.<init>
+ 0 311403 4789116011919 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011926 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311403 4789116011934 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011940 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311403 4789116011947 <- java/util/IdentityHashMap$KeySet.iterator
+ 0 311403 4789116011953 -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311403 4789116011961 <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311403 4789116011968 <- java/lang/ApplicationShutdownHooks.run
+ 0 311403 4789116011974 -> java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116011982 <- java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116011988 -> java/util/AbstractList$Itr.next
+ 0 311403 4789116011994 -> java/util/AbstractList$Itr.checkForComodification
+ 0 311403 4789116012002 <- java/util/AbstractList$Itr.checkForComodification
+ 0 311403 4789116012008 -> java/util/ArrayList.get
+ 0 311403 4789116012014 -> java/util/ArrayList.RangeCheck
+ 0 311403 4789116012021 <- java/util/ArrayList.RangeCheck
+ 0 311403 4789116012028 <- java/util/ArrayList.get
+ 0 311403 4789116012035 <- java/util/AbstractList$Itr.next
+ 0 311403 4789116012041 -> java/io/File$1.run
+ 0 311403 4789116012187 -> java/io/DeleteOnExitHook.<clinit>
+ 0 311403 4789116012333 -> java/util/LinkedHashSet.<init>
+ 0 311403 4789116012343 -> java/util/HashSet.<init>
+ 0 311403 4789116012350 -> java/util/AbstractSet.<init>
+ 0 311403 4789116012356 -> java/util/AbstractCollection.<init>
+ 0 311403 4789116012362 -> java/lang/Object.<init>
+ 0 311403 4789116012370 <- java/lang/Object.<init>
+ 0 311403 4789116012377 <- java/util/AbstractCollection.<init>
+ 0 311403 4789116012384 <- java/util/AbstractSet.<init>
+ 0 311403 4789116012394 -> java/util/LinkedHashMap.<init>
+ 0 311403 4789116012404 -> java/util/HashMap.<init>
+ 0 311403 4789116012410 -> java/util/AbstractMap.<init>
+ 0 311403 4789116012417 -> java/lang/Object.<init>
+ 0 311403 4789116012424 <- java/lang/Object.<init>
+ 0 311403 4789116012431 <- java/util/AbstractMap.<init>
+ 0 311403 4789116012438 -> java/lang/Float.isNaN
+ 0 311403 4789116012445 <- java/lang/Float.isNaN
+ 0 311403 4789116012456 -> java/util/LinkedHashMap.init
+ 0 311403 4789116012463 -> java/util/LinkedHashMap$Entry.<init>
+ 0 311403 4789116012469 -> java/util/HashMap$Entry.<init>
+ 0 311403 4789116012476 -> java/lang/Object.<init>
+ 0 311403 4789116012482 <- java/lang/Object.<init>
+ 0 311403 4789116012489 <- java/util/HashMap$Entry.<init>
+ 0 311403 4789116012496 <- java/util/LinkedHashMap$Entry.<init>
+ 0 311403 4789116012503 <- java/util/LinkedHashMap.init
+ 0 311403 4789116012510 <- java/util/HashMap.<init>
+ 0 311403 4789116012516 <- java/util/LinkedHashMap.<init>
+ 0 311403 4789116012523 <- java/util/HashSet.<init>
+ 0 311403 4789116012529 <- java/util/LinkedHashSet.<init>
+ 0 311403 4789116012538 <- java/io/DeleteOnExitHook.<clinit>
+ 0 311403 4789116012547 -> java/io/DeleteOnExitHook.hook
+ 0 311403 4789116012556 -> java/io/DeleteOnExitHook.<init>
+ 0 311403 4789116012565 -> java/lang/Object.<init>
+ 0 311403 4789116012572 <- java/lang/Object.<init>
+ 0 311403 4789116012579 <- java/io/DeleteOnExitHook.<init>
+ 0 311403 4789116012586 <- java/io/DeleteOnExitHook.hook
+ 0 311403 4789116012594 -> java/io/DeleteOnExitHook.run
+ 0 311403 4789116012605 -> java/util/ArrayList.<init>
+ 0 311403 4789116012612 -> java/util/AbstractList.<init>
+ 0 311403 4789116012618 -> java/util/AbstractCollection.<init>
+ 0 311403 4789116012624 -> java/lang/Object.<init>
+ 0 311403 4789116012631 <- java/lang/Object.<init>
+ 0 311403 4789116012638 <- java/util/AbstractCollection.<init>
+ 0 311403 4789116012645 <- java/util/AbstractList.<init>
+ 0 311403 4789116012654 -> java/util/AbstractCollection.toArray
+ 0 311403 4789116012664 -> java/util/HashSet.size
+ 0 311403 4789116012674 <- java/util/HashSet.size
+ 0 311403 4789116012682 -> java/util/HashSet.iterator
+ 0 311403 4789116012691 -> java/util/HashMap.keySet
+ 0 311403 4789116012782 -> java/util/HashMap$KeySet.<init>
+ 0 311403 4789116012791 -> java/util/HashMap$KeySet.<init>
+ 0 311403 4789116012801 -> java/util/AbstractSet.<init>
+ 0 311403 4789116012807 -> java/util/AbstractCollection.<init>
+ 0 311403 4789116012814 -> java/lang/Object.<init>
+ 0 311403 4789116012821 <- java/lang/Object.<init>
+ 0 311403 4789116012828 <- java/util/AbstractCollection.<init>
+ 0 311403 4789116012835 <- java/util/AbstractSet.<init>
+ 0 311403 4789116012841 <- java/util/HashMap$KeySet.<init>
+ 0 311403 4789116012848 <- java/util/HashMap$KeySet.<init>
+ 0 311403 4789116012855 <- java/util/HashMap.keySet
+ 0 311403 4789116012864 -> java/util/HashMap$KeySet.iterator
+ 0 311403 4789116012874 -> java/util/LinkedHashMap.newKeyIterator
+ 0 311403 4789116013056 -> java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311403 4789116013066 -> java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311403 4789116013076 -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311403 4789116013085 -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311403 4789116013095 -> java/lang/Object.<init>
+ 0 311403 4789116013102 <- java/lang/Object.<init>
+ 0 311403 4789116013117 <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311403 4789116013125 <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311403 4789116013132 <- java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311403 4789116013138 <- java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311403 4789116013145 <- java/util/LinkedHashMap.newKeyIterator
+ 0 311403 4789116013152 <- java/util/HashMap$KeySet.iterator
+ 0 311403 4789116013159 <- java/util/HashSet.iterator
+ 0 311403 4789116013168 -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 0 311403 4789116013176 <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 0 311403 4789116013183 <- java/util/AbstractCollection.toArray
+ 0 311403 4789116013190 -> java/lang/Object.getClass
+ 0 311403 4789116013198 <- java/lang/Object.getClass
+ 0 311403 4789116013206 <- java/util/ArrayList.<init>
+ 0 311403 4789116013216 -> java/util/Collections.reverse
+ 0 311403 4789116013228 <- java/util/Collections.reverse
+ 0 311403 4789116013236 -> java/util/AbstractList.iterator
+ 0 311403 4789116013243 -> java/util/AbstractList$Itr.<init>
+ 0 311403 4789116013250 -> java/util/AbstractList$Itr.<init>
+ 0 311403 4789116013256 -> java/lang/Object.<init>
+ 0 311403 4789116013263 <- java/lang/Object.<init>
+ 0 311403 4789116013270 <- java/util/AbstractList$Itr.<init>
+ 0 311403 4789116013276 <- java/util/AbstractList$Itr.<init>
+ 0 311403 4789116013283 <- java/util/AbstractList.iterator
+ 0 311403 4789116013292 -> java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116013299 <- java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116013306 <- java/io/DeleteOnExitHook.run
+ 0 311403 4789116013313 <- java/io/File$1.run
+ 0 311403 4789116013319 -> java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116013326 <- java/util/AbstractList$Itr.hasNext
+ 0 311403 4789116013333 <- java/lang/Shutdown.runHooks
+ 0 311403 4789116013342 <- java/lang/Shutdown.sequence
+ 0 311403 4789116013349 <- java/lang/Shutdown.shutdown
+
+The fourth column is indented by 2 spaces to show when a new method begins.
+This shows what is calling what.
+
+The TIME(us) column shows time from boot in microseconds.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+I truncated the above output by 22800 lines so that it would fit. To make
+sense of the output, try searching for "Func_abc" or using grep. The
+lines were,
+
+ 0 311403 4789112982182 -> Func_abc.main
+ 0 311403 4789112982193 -> Func_abc.func_a
+ 0 311403 4789113990080 -> Func_abc.func_b
+ 0 311403 4789115000081 -> Func_abc.func_c
+ 0 311403 4789116010073 <- Func_abc.func_c
+ 0 311403 4789116010080 <- Func_abc.func_b
+ 0 311403 4789116010086 <- Func_abc.func_a
+ 0 311403 4789116010093 <- Func_abc.main
+
+You can also use the j_classflow.d script to only trace one class.
+
+If you see "drops" warnings, see the Notes/ALLjava_notes.txt file for details.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt
new file mode 100644
index 000000000000..22c6a612f873
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt
@@ -0,0 +1,1287 @@
+The following are examples of j_flowtime.d.
+
+This is a simple script to trace the timing and the not-so-simple flow of
+Java methods and classes. Here it traces the example program,
+Code/Java/func_abc
+
+# j_flowtime.d
+ C PID/TID TIME(us) DELTA(us) -- CLASS.METHOD
+ 0 311481/2 4790256870903 2 -> java/lang/Object.<clinit>
+ 0 311481/2 4790256870950 46 -> java/lang/Object.registerNatives
+ 0 311481/2 4790256871090 140 <- java/lang/Object.registerNatives
+ 0 311481/2 4790256871109 18 <- java/lang/Object.<clinit>
+ 0 311481/2 4790256871121 12 -> java/lang/String.<clinit>
+ 0 311481/2 4790256871518 397 -> java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311481/2 4790256871531 12 -> java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311481/2 4790256871541 10 -> java/lang/Object.<init>
+ 0 311481/2 4790256871549 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256871558 8 <- java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311481/2 4790256871566 7 <- java/lang/String$CaseInsensitiveComparator.<init>
+ 0 311481/2 4790256871575 9 <- java/lang/String.<clinit>
+ 0 311481/2 4790256871644 68 -> java/lang/System.<clinit>
+ 0 311481/2 4790256871656 11 -> java/lang/System.registerNatives
+ 0 311481/2 4790256871675 18 <- java/lang/System.registerNatives
+ 0 311481/2 4790256871686 10 -> java/lang/System.nullInputStream
+ 0 311481/2 4790256871695 9 -> java/lang/System.currentTimeMillis
+ 0 311481/2 4790256871705 10 <- java/lang/System.currentTimeMillis
+ 0 311481/2 4790256871714 8 <- java/lang/System.nullInputStream
+ 0 311481/2 4790256871726 11 -> java/lang/System.nullPrintStream
+ 0 311481/2 4790256871734 7 -> java/lang/System.currentTimeMillis
+ 0 311481/2 4790256871741 7 <- java/lang/System.currentTimeMillis
+ 0 311481/2 4790256871749 7 <- java/lang/System.nullPrintStream
+ 0 311481/2 4790256871758 9 -> java/lang/System.nullPrintStream
+ 0 311481/2 4790256871766 7 -> java/lang/System.currentTimeMillis
+ 0 311481/2 4790256871773 7 <- java/lang/System.currentTimeMillis
+ 0 311481/2 4790256871781 7 <- java/lang/System.nullPrintStream
+ 0 311481/2 4790256871792 10 <- java/lang/System.<clinit>
+ 0 311481/2 4790256871870 78 -> java/lang/ThreadGroup.<init>
+ 0 311481/2 4790256871881 10 -> java/lang/Object.<init>
+ 0 311481/2 4790256871889 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256871906 17 <- java/lang/ThreadGroup.<init>
+ 0 311481/2 4790256871918 11 -> java/lang/ThreadGroup.<init>
+ 0 311481/2 4790256871926 7 -> java/lang/Object.<init>
+ 0 311481/2 4790256871933 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256871945 12 -> java/lang/ThreadGroup.checkAccess
+ 0 311481/2 4790256871955 10 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790256871964 8 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790256871972 8 <- java/lang/ThreadGroup.checkAccess
+ 0 311481/2 4790256871984 12 -> java/lang/ThreadGroup.add
+ 0 311481/2 4790256872006 21 <- java/lang/ThreadGroup.add
+ 0 311481/2 4790256872014 8 <- java/lang/ThreadGroup.<init>
+ 0 311481/2 4790256872201 187 -> java/lang/Thread.<clinit>
+ 0 311481/2 4790256872213 12 -> java/lang/Thread.registerNatives
+ 0 311481/2 4790256872239 25 <- java/lang/Thread.registerNatives
+ 0 311481/2 4790256872606 367 -> java/lang/RuntimePermission.<init>
+ 0 311481/2 4790256872618 11 -> java/security/BasicPermission.<init>
+ 0 311481/2 4790256872628 9 -> java/security/Permission.<init>
+ 0 311481/2 4790256872637 9 -> java/lang/Object.<init>
+ 0 311481/2 4790256872645 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256872656 10 <- java/security/Permission.<init>
+ 0 311481/2 4790256872666 10 -> java/security/BasicPermission.init
+ 0 311481/2 4790256872677 11 -> java/lang/String.length
+ 0 311481/2 4790256872686 8 <- java/lang/String.length
+ 0 311481/2 4790256872697 11 -> java/lang/String.charAt
+ 0 311481/2 4790256872707 10 <- java/lang/String.charAt
+ 0 311481/2 4790256872720 12 -> java/lang/String.equals
+ 0 311481/2 4790256872728 8 <- java/lang/String.equals
+ 0 311481/2 4790256872737 9 <- java/security/BasicPermission.init
+ 0 311481/2 4790256872745 7 <- java/security/BasicPermission.<init>
+ 0 311481/2 4790256872753 7 <- java/lang/RuntimePermission.<init>
+ 0 311481/2 4790256873195 442 -> sun/misc/SoftCache.<init>
+ 0 311481/2 4790256873208 12 -> java/util/AbstractMap.<init>
+ 0 311481/2 4790256873218 9 -> java/lang/Object.<init>
+ 0 311481/2 4790256873226 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256873238 11 <- java/util/AbstractMap.<init>
+ 0 311481/2 4790256873371 133 -> java/lang/ref/ReferenceQueue.<clinit>
+ 0 311481/2 4790256873443 72 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311481/2 4790256873454 10 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311481/2 4790256873464 9 -> java/lang/ref/ReferenceQueue.<init>
+ 0 311481/2 4790256873474 9 -> java/lang/Object.<init>
+ 0 311481/2 4790256873481 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256873542 60 -> java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311481/2 4790256873553 10 -> java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311481/2 4790256873562 9 -> java/lang/Object.<init>
+ 0 311481/2 4790256873570 7 <- java/lang/Object.<init>
+ 0 311481/2 4790256873578 7 <- java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311481/2 4790256873585 7 <- java/lang/ref/ReferenceQueue$Lock.<init>
+ 0 311481/2 4790256873597 11 <- java/lang/ref/ReferenceQueue.<init>
+ 0 311481/2 4790256873604 7 <- java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311481/2 4790256873612 7 <- java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311481/2 4790256873622 9 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311481/2 4790256873629 7 -> java/lang/ref/ReferenceQueue$Null.<init>
+ 0 311481/2 4790256873636 7 -> java/lang/ref/ReferenceQueue.<init>
+ 0 311481/2 4790256873644 7 -> java/lang/Object.<init>
+ 0 311481/2 4790256873651 6 <- java/lang/Object.<init>
+ 0 311481/2 4790256873659 7 -> java/lang/ref/ReferenceQueue$Lock.<init>
+[... 22800 lines truncated ...]
+ 0 311481/2 4790257387424 7 <- java/util/HashMap.indexFor
+ 0 311481/2 4790257387432 8 <- java/util/HashMap.put
+ 0 311481/2 4790257387440 7 <- java/util/HashSet.add
+ 0 311481/2 4790257387447 7 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257387473 26 -> java/lang/reflect/Method.getModifiers
+ 0 311481/2 4790257387486 12 <- java/lang/reflect/Method.getModifiers
+ 0 311481/2 4790257387500 14 -> Func_abc.main
+ 0 311481/2 4790257387512 11 -> Func_abc.func_a
+ 0 311481/2 4790257387522 9 -> java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257387530 7 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790257387537 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790257387545 8 -> java/util/HashSet.add
+ 0 311481/2 4790257387552 7 -> java/util/HashMap.put
+ 0 311481/2 4790257387559 7 -> java/lang/Object.hashCode
+ 0 311481/2 4790257387567 7 <- java/lang/Object.hashCode
+ 0 311481/2 4790257387574 7 -> java/util/HashMap.hash
+ 0 311481/2 4790257387581 7 <- java/util/HashMap.hash
+ 0 311481/2 4790257387589 7 -> java/util/HashMap.indexFor
+ 0 311481/2 4790257387596 7 <- java/util/HashMap.indexFor
+ 0 311481/2 4790257387604 8 <- java/util/HashMap.put
+ 0 311481/2 4790257387611 7 <- java/util/HashSet.add
+ 0 311481/2 4790257387619 7 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257387683 64 -> java/lang/ClassLoader.loadClassInternal
+ 0 311481/2 4790257387691 8 -> java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257387699 7 -> sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311481/2 4790257387706 7 -> java/lang/String.lastIndexOf
+ 0 311481/2 4790257387713 7 -> java/lang/String.lastIndexOf
+ 0 311481/2 4790257387722 8 <- java/lang/String.lastIndexOf
+ 0 311481/2 4790257387729 7 <- java/lang/String.lastIndexOf
+ 0 311481/2 4790257387737 7 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790257387760 22 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790257387768 7 -> java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257387775 7 -> java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257387782 7 -> java/lang/ClassLoader.check
+ 0 311481/2 4790257387789 7 <- java/lang/ClassLoader.check
+ 0 311481/2 4790257387797 7 -> java/lang/ClassLoader.checkName
+ 0 311481/2 4790257387805 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257387812 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257387820 8 <- java/lang/String.indexOf
+ 0 311481/2 4790257387828 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257387835 7 -> sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257387843 7 <- sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257387850 7 -> java/lang/String.charAt
+ 0 311481/2 4790257387857 7 <- java/lang/String.charAt
+ 0 311481/2 4790257387865 7 <- java/lang/ClassLoader.checkName
+ 0 311481/2 4790257387873 7 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257387883 9 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257387890 7 <- java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257387899 8 -> java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257387906 7 -> java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257387913 7 -> java/lang/ClassLoader.check
+ 0 311481/2 4790257387920 7 <- java/lang/ClassLoader.check
+ 0 311481/2 4790257387928 7 -> java/lang/ClassLoader.checkName
+ 0 311481/2 4790257387935 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257387942 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257387951 8 <- java/lang/String.indexOf
+ 0 311481/2 4790257387958 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257387966 7 -> sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257387973 7 <- sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257387981 7 -> java/lang/String.charAt
+ 0 311481/2 4790257387988 7 <- java/lang/String.charAt
+ 0 311481/2 4790257387995 7 <- java/lang/ClassLoader.checkName
+ 0 311481/2 4790257388003 7 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257388012 8 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257388020 7 <- java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257388028 7 -> java/lang/ClassLoader.findBootstrapClass0
+ 0 311481/2 4790257388035 7 -> java/lang/ClassLoader.check
+ 0 311481/2 4790257388042 7 <- java/lang/ClassLoader.check
+ 0 311481/2 4790257388050 7 -> java/lang/ClassLoader.checkName
+ 0 311481/2 4790257388057 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257388064 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257388072 8 <- java/lang/String.indexOf
+ 0 311481/2 4790257388080 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257388087 7 -> sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257388094 7 <- sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257388102 7 -> java/lang/String.charAt
+ 0 311481/2 4790257388109 7 <- java/lang/String.charAt
+ 0 311481/2 4790257388117 7 <- java/lang/ClassLoader.checkName
+ 0 311481/2 4790257388124 7 -> java/lang/ClassLoader.findBootstrapClass
+ 0 311481/2 4790257388134 9 <- java/lang/ClassLoader.findBootstrapClass
+ 0 311481/2 4790257388142 8 <- java/lang/ClassLoader.findBootstrapClass0
+ 0 311481/2 4790257388150 8 <- java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257388158 7 <- java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257388166 7 <- sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311481/2 4790257388173 7 <- java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257388181 7 <- java/lang/ClassLoader.loadClassInternal
+ 0 311481/2 4790257388193 11 -> java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257388200 7 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790257388207 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790257388215 7 -> java/util/HashSet.add
+ 0 311481/2 4790257388223 7 -> java/util/HashMap.put
+ 0 311481/2 4790257388230 7 -> java/lang/Object.hashCode
+ 0 311481/2 4790257388237 7 <- java/lang/Object.hashCode
+ 0 311481/2 4790257388245 7 -> java/util/HashMap.hash
+ 0 311481/2 4790257388252 7 <- java/util/HashMap.hash
+ 0 311481/2 4790257388260 7 -> java/util/HashMap.indexFor
+ 0 311481/2 4790257388267 7 <- java/util/HashMap.indexFor
+ 0 311481/2 4790257388275 7 <- java/util/HashMap.put
+ 0 311481/2 4790257388282 7 <- java/util/HashSet.add
+ 0 311481/2 4790257388290 7 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257388305 15 -> java/io/PrintStream.println
+ 0 311481/2 4790257388316 11 -> java/io/PrintStream.print
+ 0 311481/2 4790257388326 9 -> java/io/PrintStream.write
+ 0 311481/2 4790257388335 9 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257388345 10 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257388358 12 -> java/io/Writer.write
+ 0 311481/2 4790257388371 13 -> java/io/BufferedWriter.write
+ 0 311481/2 4790257388382 10 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257388389 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257388399 10 -> java/io/BufferedWriter.min
+ 0 311481/2 4790257388407 7 <- java/io/BufferedWriter.min
+ 0 311481/2 4790257388417 10 -> java/lang/String.getChars
+ 0 311481/2 4790257388425 8 -> java/lang/System.arraycopy
+ 0 311481/2 4790257388434 8 <- java/lang/System.arraycopy
+ 0 311481/2 4790257388442 7 <- java/lang/String.getChars
+ 0 311481/2 4790257388450 8 <- java/io/BufferedWriter.write
+ 0 311481/2 4790257388457 7 <- java/io/Writer.write
+ 0 311481/2 4790257388467 10 -> java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790257388475 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257388482 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257388493 10 -> java/io/OutputStreamWriter.write
+ 0 311481/2 4790257388504 11 -> sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790257388515 10 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790257388522 7 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790257388533 10 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790257388544 11 -> java/nio/CharBuffer.wrap
+ 0 311481/2 4790257388552 8 -> java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790257388560 7 -> java/nio/CharBuffer.<init>
+ 0 311481/2 4790257388567 7 -> java/nio/Buffer.<init>
+ 0 311481/2 4790257388574 7 -> java/lang/Object.<init>
+ 0 311481/2 4790257388582 7 <- java/lang/Object.<init>
+ 0 311481/2 4790257388590 8 -> java/nio/Buffer.limit
+ 0 311481/2 4790257388598 7 <- java/nio/Buffer.limit
+ 0 311481/2 4790257388605 7 -> java/nio/Buffer.position
+ 0 311481/2 4790257388612 7 <- java/nio/Buffer.position
+ 0 311481/2 4790257388620 7 <- java/nio/Buffer.<init>
+ 0 311481/2 4790257388628 7 <- java/nio/CharBuffer.<init>
+ 0 311481/2 4790257388635 7 <- java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790257388643 7 <- java/nio/CharBuffer.wrap
+ 0 311481/2 4790257388654 10 -> java/nio/Buffer.hasRemaining
+ 0 311481/2 4790257388661 7 <- java/nio/Buffer.hasRemaining
+ 0 311481/2 4790257388673 11 -> java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790257388684 10 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790257388695 10 -> java/nio/CharBuffer.hasArray
+ 0 311481/2 4790257388702 7 <- java/nio/CharBuffer.hasArray
+ 0 311481/2 4790257388714 11 -> java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790257388722 7 <- java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790257388732 10 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790257388742 9 -> java/nio/CharBuffer.array
+ 0 311481/2 4790257388749 7 <- java/nio/CharBuffer.array
+ 0 311481/2 4790257388759 9 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257388766 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257388776 9 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257388784 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257388797 13 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790257388804 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790257388814 9 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257388821 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257388831 9 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257388838 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257388853 14 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257388861 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257388871 9 -> java/nio/Buffer.position
+ 0 311481/2 4790257388878 7 <- java/nio/Buffer.position
+ 0 311481/2 4790257388886 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257388893 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257388903 9 -> java/nio/Buffer.position
+ 0 311481/2 4790257388910 7 <- java/nio/Buffer.position
+ 0 311481/2 4790257388918 7 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790257388925 7 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790257388936 10 -> java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790257388943 7 <- java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790257388953 9 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257388961 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257388969 7 <- java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790257388979 10 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257388987 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257388998 11 -> java/nio/Buffer.remaining
+ 0 311481/2 4790257389005 7 <- java/nio/Buffer.remaining
+ 0 311481/2 4790257389013 7 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790257389020 7 <- sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790257389028 7 <- java/io/OutputStreamWriter.write
+ 0 311481/2 4790257389113 85 <- java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790257389125 11 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790257389135 9 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790257389146 11 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790257389158 11 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790257389167 9 -> java/nio/Buffer.flip
+ 0 311481/2 4790257389174 7 <- java/nio/Buffer.flip
+ 0 311481/2 4790257389186 11 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790257389193 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790257389203 9 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257389210 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257389222 11 -> java/io/PrintStream.write
+ 0 311481/2 4790257389230 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257389237 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257389248 11 -> java/io/BufferedOutputStream.write
+ 0 311481/2 4790257389261 12 -> java/lang/System.arraycopy
+ 0 311481/2 4790257389268 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790257389276 7 <- java/io/BufferedOutputStream.write
+ 0 311481/2 4790257389286 9 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790257389295 9 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790257389307 11 -> java/io/FileOutputStream.write
+ 0 311481/2 4790257389317 10 -> java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790257389479 162 <- java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790257389489 9 <- java/io/FileOutputStream.write
+ 0 311481/2 4790257389497 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790257389509 12 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790257389517 8 <- java/io/PrintStream.write
+ 0 311481/2 4790257389527 10 -> java/nio/Buffer.clear
+ 0 311481/2 4790257389536 8 <- java/nio/Buffer.clear
+ 0 311481/2 4790257389543 7 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790257389551 7 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790257389559 7 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790257389566 7 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790257389579 12 -> java/lang/String.indexOf
+ 0 311481/2 4790257389586 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257389595 8 <- java/lang/String.indexOf
+ 0 311481/2 4790257389602 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257389610 7 <- java/io/PrintStream.write
+ 0 311481/2 4790257389617 7 <- java/io/PrintStream.print
+ 0 311481/2 4790257389627 9 -> java/io/PrintStream.newLine
+ 0 311481/2 4790257389635 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257389642 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257389651 9 -> java/io/BufferedWriter.newLine
+ 0 311481/2 4790257389661 9 -> java/io/Writer.write
+ 0 311481/2 4790257389668 7 -> java/io/BufferedWriter.write
+ 0 311481/2 4790257389713 44 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257389721 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257389729 8 -> java/io/BufferedWriter.min
+ 0 311481/2 4790257389737 7 <- java/io/BufferedWriter.min
+ 0 311481/2 4790257389744 7 -> java/lang/String.getChars
+ 0 311481/2 4790257389752 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790257389760 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790257389767 7 <- java/lang/String.getChars
+ 0 311481/2 4790257389775 7 <- java/io/BufferedWriter.write
+ 0 311481/2 4790257389783 7 <- java/io/Writer.write
+ 0 311481/2 4790257389790 7 <- java/io/BufferedWriter.newLine
+ 0 311481/2 4790257389798 7 -> java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790257389805 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257389812 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790257389820 7 -> java/io/OutputStreamWriter.write
+ 0 311481/2 4790257389828 7 -> sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790257389835 7 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790257389842 7 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790257389850 7 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790257389857 7 -> java/nio/CharBuffer.wrap
+ 0 311481/2 4790257389865 7 -> java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790257389872 7 -> java/nio/CharBuffer.<init>
+ 0 311481/2 4790257389879 7 -> java/nio/Buffer.<init>
+ 0 311481/2 4790257389886 6 -> java/lang/Object.<init>
+ 0 311481/2 4790257389893 7 <- java/lang/Object.<init>
+ 0 311481/2 4790257389901 7 -> java/nio/Buffer.limit
+ 0 311481/2 4790257389908 7 <- java/nio/Buffer.limit
+ 0 311481/2 4790257389916 7 -> java/nio/Buffer.position
+ 0 311481/2 4790257389923 7 <- java/nio/Buffer.position
+ 0 311481/2 4790257389930 7 <- java/nio/Buffer.<init>
+ 0 311481/2 4790257389938 7 <- java/nio/CharBuffer.<init>
+ 0 311481/2 4790257389946 7 <- java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790257389953 7 <- java/nio/CharBuffer.wrap
+ 0 311481/2 4790257389961 7 -> java/nio/Buffer.hasRemaining
+ 0 311481/2 4790257389968 7 <- java/nio/Buffer.hasRemaining
+ 0 311481/2 4790257389976 7 -> java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790257389984 7 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790257389991 7 -> java/nio/CharBuffer.hasArray
+ 0 311481/2 4790257389998 7 <- java/nio/CharBuffer.hasArray
+ 0 311481/2 4790257390760 761 -> java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790257390772 11 <- java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790257390782 10 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790257390790 7 -> java/nio/CharBuffer.array
+ 0 311481/2 4790257390797 7 <- java/nio/CharBuffer.array
+ 0 311481/2 4790257390805 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257390812 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257390820 8 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257390828 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257390836 8 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790257390844 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790257390851 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257390859 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257390866 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257390874 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257390883 8 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257390890 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790257390898 8 -> java/nio/Buffer.position
+ 0 311481/2 4790257390906 7 <- java/nio/Buffer.position
+ 0 311481/2 4790257390913 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257390921 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257390928 7 -> java/nio/Buffer.position
+ 0 311481/2 4790257390936 7 <- java/nio/Buffer.position
+ 0 311481/2 4790257390943 7 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790257390951 7 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790257390959 8 -> java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790257390967 7 <- java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790257390974 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257390982 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257390990 7 <- java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790257390998 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257391005 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790257391013 8 -> java/nio/Buffer.remaining
+ 0 311481/2 4790257391020 7 <- java/nio/Buffer.remaining
+ 0 311481/2 4790257391028 7 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790257391036 7 <- sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790257391044 7 <- java/io/OutputStreamWriter.write
+ 0 311481/2 4790257391052 8 <- java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790257391060 7 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790257391067 7 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790257391075 7 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790257391082 7 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790257391090 7 -> java/nio/Buffer.flip
+ 0 311481/2 4790257391097 7 <- java/nio/Buffer.flip
+ 0 311481/2 4790257391105 8 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790257391112 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790257391120 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257391127 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790257391135 8 -> java/io/PrintStream.write
+ 0 311481/2 4790257391142 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257391150 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790257391158 8 -> java/io/BufferedOutputStream.write
+ 0 311481/2 4790257391166 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790257391174 8 <- java/lang/System.arraycopy
+ 0 311481/2 4790257391182 7 <- java/io/BufferedOutputStream.write
+ 0 311481/2 4790257391190 7 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790257391197 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790257391205 7 -> java/io/FileOutputStream.write
+ 0 311481/2 4790257391212 7 -> java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790257391280 67 <- java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790257391289 9 <- java/io/FileOutputStream.write
+ 0 311481/2 4790257391297 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790257391305 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790257391313 7 <- java/io/PrintStream.write
+ 0 311481/2 4790257391321 7 -> java/nio/Buffer.clear
+ 0 311481/2 4790257391329 7 <- java/nio/Buffer.clear
+ 0 311481/2 4790257391336 7 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790257391344 7 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790257391352 7 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790257391359 7 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790257391368 8 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790257391375 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790257391383 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790257391391 8 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790257391398 7 <- java/io/PrintStream.newLine
+ 0 311481/2 4790257391406 7 <- java/io/PrintStream.println
+ 0 311481/2 4790257391439 32 -> java/lang/ClassLoader.loadClassInternal
+ 0 311481/2 4790257391447 8 -> java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257391455 7 -> sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311481/2 4790257391463 7 -> java/lang/String.lastIndexOf
+ 0 311481/2 4790257391471 7 -> java/lang/String.lastIndexOf
+ 0 311481/2 4790257391479 8 <- java/lang/String.lastIndexOf
+ 0 311481/2 4790257391487 7 <- java/lang/String.lastIndexOf
+ 0 311481/2 4790257391495 8 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790257391503 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790257391511 8 -> java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257391518 7 -> java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257391526 7 -> java/lang/ClassLoader.check
+ 0 311481/2 4790257391533 7 <- java/lang/ClassLoader.check
+ 0 311481/2 4790257391541 7 -> java/lang/ClassLoader.checkName
+ 0 311481/2 4790257391549 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257391556 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257391564 8 <- java/lang/String.indexOf
+ 0 311481/2 4790257391572 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257391580 8 -> sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257391587 7 <- sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257391595 7 -> java/lang/String.charAt
+ 0 311481/2 4790257391603 7 <- java/lang/String.charAt
+ 0 311481/2 4790257391610 7 <- java/lang/ClassLoader.checkName
+ 0 311481/2 4790257391618 7 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257391633 14 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257391641 8 <- java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257391651 9 -> java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257391658 7 -> java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257391665 7 -> java/lang/ClassLoader.check
+ 0 311481/2 4790257391672 7 <- java/lang/ClassLoader.check
+ 0 311481/2 4790257391680 7 -> java/lang/ClassLoader.checkName
+ 0 311481/2 4790257391688 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257391695 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257391703 8 <- java/lang/String.indexOf
+ 0 311481/2 4790257391711 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257391718 7 -> sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257391725 7 <- sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257391733 7 -> java/lang/String.charAt
+ 0 311481/2 4790257391740 7 <- java/lang/String.charAt
+ 0 311481/2 4790257391748 7 <- java/lang/ClassLoader.checkName
+ 0 311481/2 4790257391755 7 -> java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257391765 9 <- java/lang/ClassLoader.findLoadedClass0
+ 0 311481/2 4790257391773 8 <- java/lang/ClassLoader.findLoadedClass
+ 0 311481/2 4790257391781 8 -> java/lang/ClassLoader.findBootstrapClass0
+ 0 311481/2 4790257391788 7 -> java/lang/ClassLoader.check
+ 0 311481/2 4790257391795 7 <- java/lang/ClassLoader.check
+ 0 311481/2 4790257391803 7 -> java/lang/ClassLoader.checkName
+ 0 311481/2 4790257391810 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257391817 7 -> java/lang/String.indexOf
+ 0 311481/2 4790257391825 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257391833 7 <- java/lang/String.indexOf
+ 0 311481/2 4790257391840 7 -> sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257391848 7 <- sun/misc/VM.allowArraySyntax
+ 0 311481/2 4790257391855 7 -> java/lang/String.charAt
+ 0 311481/2 4790257391862 7 <- java/lang/String.charAt
+ 0 311481/2 4790257391870 7 <- java/lang/ClassLoader.checkName
+ 0 311481/2 4790257391877 7 -> java/lang/ClassLoader.findBootstrapClass
+ 0 311481/2 4790257391891 13 <- java/lang/ClassLoader.findBootstrapClass
+ 0 311481/2 4790257391899 7 <- java/lang/ClassLoader.findBootstrapClass0
+ 0 311481/2 4790257391907 8 <- java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257391915 7 <- java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257391922 7 <- sun/misc/Launcher$AppClassLoader.loadClass
+ 0 311481/2 4790257391930 7 <- java/lang/ClassLoader.loadClass
+ 0 311481/2 4790257391938 7 <- java/lang/ClassLoader.loadClassInternal
+ 0 311481/2 4790257391954 16 -> java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257391962 7 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790257391969 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790257391978 8 -> java/util/HashSet.add
+ 0 311481/2 4790257391986 8 -> java/util/HashMap.put
+ 0 311481/2 4790257391994 7 -> java/lang/Object.hashCode
+ 0 311481/2 4790257392001 7 <- java/lang/Object.hashCode
+ 0 311481/2 4790257392009 8 -> java/util/HashMap.hash
+ 0 311481/2 4790257392017 7 <- java/util/HashMap.hash
+ 0 311481/2 4790257392025 7 -> java/util/HashMap.indexFor
+ 0 311481/2 4790257392032 7 <- java/util/HashMap.indexFor
+ 0 311481/2 4790257392040 8 <- java/util/HashMap.put
+ 0 311481/2 4790257392048 7 <- java/util/HashSet.add
+ 0 311481/2 4790257392055 7 <- java/lang/ClassLoader.checkPackageAccess
+ 0 311481/2 4790257392076 20 -> java/lang/Thread.currentThread
+ 0 311481/2 4790257392084 8 <- java/lang/Thread.currentThread
+ 0 311481/2 4790257392094 10 -> java/lang/Thread.sleep
+ 0 311481/2 4790258400253 1008158 <- java/lang/Thread.sleep
+ 0 311481/2 4790258400299 45 -> Func_abc.func_b
+ 0 311481/2 4790258400329 30 -> java/io/PrintStream.println
+ 0 311481/2 4790258400338 8 -> java/io/PrintStream.print
+ 0 311481/2 4790258400345 7 -> java/io/PrintStream.write
+ 0 311481/2 4790258400353 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258400361 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258400369 8 -> java/io/Writer.write
+ 0 311481/2 4790258400378 8 -> java/io/BufferedWriter.write
+ 0 311481/2 4790258400386 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258400393 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258400402 9 -> java/io/BufferedWriter.min
+ 0 311481/2 4790258400410 7 <- java/io/BufferedWriter.min
+ 0 311481/2 4790258400418 8 -> java/lang/String.getChars
+ 0 311481/2 4790258400426 8 -> java/lang/System.arraycopy
+ 0 311481/2 4790258400435 8 <- java/lang/System.arraycopy
+ 0 311481/2 4790258400442 7 <- java/lang/String.getChars
+ 0 311481/2 4790258400451 8 <- java/io/BufferedWriter.write
+ 0 311481/2 4790258400458 7 <- java/io/Writer.write
+ 0 311481/2 4790258400466 7 -> java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790258400474 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258400481 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258400489 8 -> java/io/OutputStreamWriter.write
+ 0 311481/2 4790258400497 7 -> sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790258400504 7 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790258400511 7 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790258400520 8 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790258400528 7 -> java/nio/CharBuffer.wrap
+ 0 311481/2 4790258400536 7 -> java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790258400544 7 -> java/nio/CharBuffer.<init>
+ 0 311481/2 4790258400551 7 -> java/nio/Buffer.<init>
+ 0 311481/2 4790258400559 7 -> java/lang/Object.<init>
+ 0 311481/2 4790258400566 7 <- java/lang/Object.<init>
+ 0 311481/2 4790258400574 8 -> java/nio/Buffer.limit
+ 0 311481/2 4790258400582 7 <- java/nio/Buffer.limit
+ 0 311481/2 4790258400590 7 -> java/nio/Buffer.position
+ 0 311481/2 4790258400597 7 <- java/nio/Buffer.position
+ 0 311481/2 4790258400604 7 <- java/nio/Buffer.<init>
+ 0 311481/2 4790258400612 7 <- java/nio/CharBuffer.<init>
+ 0 311481/2 4790258400620 7 <- java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790258400627 7 <- java/nio/CharBuffer.wrap
+ 0 311481/2 4790258400635 8 -> java/nio/Buffer.hasRemaining
+ 0 311481/2 4790258400643 7 <- java/nio/Buffer.hasRemaining
+ 0 311481/2 4790258400651 8 -> java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790258400659 8 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790258400667 7 -> java/nio/CharBuffer.hasArray
+ 0 311481/2 4790258400675 7 <- java/nio/CharBuffer.hasArray
+ 0 311481/2 4790258400683 8 -> java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790258400690 7 <- java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790258400698 7 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790258400706 7 -> java/nio/CharBuffer.array
+ 0 311481/2 4790258400713 7 <- java/nio/CharBuffer.array
+ 0 311481/2 4790258400721 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258400728 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258400736 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258400743 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258400752 8 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790258400759 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790258400766 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258400774 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258400781 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258400789 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258400799 9 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258400806 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258400813 7 -> java/nio/Buffer.position
+ 0 311481/2 4790258400821 7 <- java/nio/Buffer.position
+ 0 311481/2 4790258400828 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258400836 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258400843 7 -> java/nio/Buffer.position
+ 0 311481/2 4790258400850 7 <- java/nio/Buffer.position
+ 0 311481/2 4790258400858 7 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790258400866 7 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790258400874 8 -> java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790258400881 7 <- java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790258400889 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258400896 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258400904 7 <- java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790258400912 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258400919 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258400927 8 -> java/nio/Buffer.remaining
+ 0 311481/2 4790258400934 7 <- java/nio/Buffer.remaining
+ 0 311481/2 4790258400942 7 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790258400950 7 <- sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790258400957 7 <- java/io/OutputStreamWriter.write
+ 0 311481/2 4790258400965 7 <- java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790258400973 8 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790258400981 7 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790258400988 7 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790258400996 7 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790258401004 7 -> java/nio/Buffer.flip
+ 0 311481/2 4790258401011 6 <- java/nio/Buffer.flip
+ 0 311481/2 4790258401019 8 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790258401026 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790258401033 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401041 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401049 7 -> java/io/PrintStream.write
+ 0 311481/2 4790258401056 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258401063 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258401071 8 -> java/io/BufferedOutputStream.write
+ 0 311481/2 4790258401079 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790258401087 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790258401094 7 <- java/io/BufferedOutputStream.write
+ 0 311481/2 4790258401103 8 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790258401110 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790258401118 7 -> java/io/FileOutputStream.write
+ 0 311481/2 4790258401125 7 -> java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790258401164 39 <- java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790258401173 8 <- java/io/FileOutputStream.write
+ 0 311481/2 4790258401181 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790258401189 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790258401196 7 <- java/io/PrintStream.write
+ 0 311481/2 4790258401204 7 -> java/nio/Buffer.clear
+ 0 311481/2 4790258401212 7 <- java/nio/Buffer.clear
+ 0 311481/2 4790258401219 7 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790258401227 7 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790258401235 7 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790258401242 7 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790258401251 8 -> java/lang/String.indexOf
+ 0 311481/2 4790258401258 7 -> java/lang/String.indexOf
+ 0 311481/2 4790258401266 8 <- java/lang/String.indexOf
+ 0 311481/2 4790258401274 7 <- java/lang/String.indexOf
+ 0 311481/2 4790258401281 7 <- java/io/PrintStream.write
+ 0 311481/2 4790258401289 7 <- java/io/PrintStream.print
+ 0 311481/2 4790258401297 7 -> java/io/PrintStream.newLine
+ 0 311481/2 4790258401304 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258401311 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258401319 7 -> java/io/BufferedWriter.newLine
+ 0 311481/2 4790258401326 7 -> java/io/Writer.write
+ 0 311481/2 4790258401334 7 -> java/io/BufferedWriter.write
+ 0 311481/2 4790258401341 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258401348 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258401356 7 -> java/io/BufferedWriter.min
+ 0 311481/2 4790258401363 7 <- java/io/BufferedWriter.min
+ 0 311481/2 4790258401371 7 -> java/lang/String.getChars
+ 0 311481/2 4790258401378 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790258401385 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790258401393 7 <- java/lang/String.getChars
+ 0 311481/2 4790258401401 7 <- java/io/BufferedWriter.write
+ 0 311481/2 4790258401408 7 <- java/io/Writer.write
+ 0 311481/2 4790258401416 7 <- java/io/BufferedWriter.newLine
+ 0 311481/2 4790258401423 7 -> java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790258401430 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258401438 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790258401446 7 -> java/io/OutputStreamWriter.write
+ 0 311481/2 4790258401453 7 -> sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790258401460 7 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790258401467 7 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790258401475 7 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790258401482 7 -> java/nio/CharBuffer.wrap
+ 0 311481/2 4790258401490 7 -> java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790258401497 7 -> java/nio/CharBuffer.<init>
+ 0 311481/2 4790258401504 7 -> java/nio/Buffer.<init>
+ 0 311481/2 4790258401511 7 -> java/lang/Object.<init>
+ 0 311481/2 4790258401518 7 <- java/lang/Object.<init>
+ 0 311481/2 4790258401526 7 -> java/nio/Buffer.limit
+ 0 311481/2 4790258401533 7 <- java/nio/Buffer.limit
+ 0 311481/2 4790258401541 7 -> java/nio/Buffer.position
+ 0 311481/2 4790258401548 7 <- java/nio/Buffer.position
+ 0 311481/2 4790258401556 7 <- java/nio/Buffer.<init>
+ 0 311481/2 4790258401563 7 <- java/nio/CharBuffer.<init>
+ 0 311481/2 4790258401570 7 <- java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790258401578 7 <- java/nio/CharBuffer.wrap
+ 0 311481/2 4790258401586 7 -> java/nio/Buffer.hasRemaining
+ 0 311481/2 4790258401593 7 <- java/nio/Buffer.hasRemaining
+ 0 311481/2 4790258401601 7 -> java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790258401608 7 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790258401615 7 -> java/nio/CharBuffer.hasArray
+ 0 311481/2 4790258401623 7 <- java/nio/CharBuffer.hasArray
+ 0 311481/2 4790258401630 7 -> java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790258401638 7 <- java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790258401645 7 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790258401653 7 -> java/nio/CharBuffer.array
+ 0 311481/2 4790258401660 7 <- java/nio/CharBuffer.array
+ 0 311481/2 4790258401667 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258401675 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258401682 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258401690 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258401697 7 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790258401705 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790258401712 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401719 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401727 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401734 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401743 8 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258401750 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790258401757 7 -> java/nio/Buffer.position
+ 0 311481/2 4790258401765 7 <- java/nio/Buffer.position
+ 0 311481/2 4790258401772 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401780 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401787 7 -> java/nio/Buffer.position
+ 0 311481/2 4790258401794 7 <- java/nio/Buffer.position
+ 0 311481/2 4790258401802 7 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790258401809 7 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790258401817 7 -> java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790258401825 7 <- java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790258401832 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258401840 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258401848 7 <- java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790258401855 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258401863 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790258401871 7 -> java/nio/Buffer.remaining
+ 0 311481/2 4790258401878 7 <- java/nio/Buffer.remaining
+ 0 311481/2 4790258401885 7 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790258401893 7 <- sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790258401901 7 <- java/io/OutputStreamWriter.write
+ 0 311481/2 4790258401908 7 <- java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790258401916 7 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790258401923 7 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790258401931 7 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790258401938 7 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790258401945 7 -> java/nio/Buffer.flip
+ 0 311481/2 4790258401952 7 <- java/nio/Buffer.flip
+ 0 311481/2 4790258401960 7 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790258401967 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790258401975 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401982 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790258401990 7 -> java/io/PrintStream.write
+ 0 311481/2 4790258401997 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258402004 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790258402012 7 -> java/io/BufferedOutputStream.write
+ 0 311481/2 4790258402020 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790258402027 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790258402035 7 <- java/io/BufferedOutputStream.write
+ 0 311481/2 4790258402042 7 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790258402050 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790258402057 7 -> java/io/FileOutputStream.write
+ 0 311481/2 4790258402064 7 -> java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790258402082 17 <- java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790258402090 8 <- java/io/FileOutputStream.write
+ 0 311481/2 4790258402098 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790258402106 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790258402113 7 <- java/io/PrintStream.write
+ 0 311481/2 4790258402121 7 -> java/nio/Buffer.clear
+ 0 311481/2 4790258402128 7 <- java/nio/Buffer.clear
+ 0 311481/2 4790258402136 7 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790258402143 7 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790258402151 7 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790258402159 7 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790258402166 7 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790258402174 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790258402181 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790258402189 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790258402196 7 <- java/io/PrintStream.newLine
+ 0 311481/2 4790258402204 7 <- java/io/PrintStream.println
+ 0 311481/2 4790258402212 7 -> java/lang/Thread.currentThread
+ 0 311481/2 4790258402220 7 <- java/lang/Thread.currentThread
+ 0 311481/2 4790258402228 7 -> java/lang/Thread.sleep
+ 0 311481/2 4790259410328 1008099 <- java/lang/Thread.sleep
+ 0 311481/2 4790259410374 46 -> Func_abc.func_c
+ 0 311481/2 4790259410404 29 -> java/io/PrintStream.println
+ 0 311481/2 4790259410412 8 -> java/io/PrintStream.print
+ 0 311481/2 4790259410420 7 -> java/io/PrintStream.write
+ 0 311481/2 4790259410428 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259410435 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259410444 8 -> java/io/Writer.write
+ 0 311481/2 4790259410453 8 -> java/io/BufferedWriter.write
+ 0 311481/2 4790259410460 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259410467 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259410477 9 -> java/io/BufferedWriter.min
+ 0 311481/2 4790259410484 7 <- java/io/BufferedWriter.min
+ 0 311481/2 4790259410492 8 -> java/lang/String.getChars
+ 0 311481/2 4790259410501 8 -> java/lang/System.arraycopy
+ 0 311481/2 4790259410509 8 <- java/lang/System.arraycopy
+ 0 311481/2 4790259410517 7 <- java/lang/String.getChars
+ 0 311481/2 4790259410525 8 <- java/io/BufferedWriter.write
+ 0 311481/2 4790259410533 7 <- java/io/Writer.write
+ 0 311481/2 4790259410541 7 -> java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790259410548 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259410555 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259410563 8 -> java/io/OutputStreamWriter.write
+ 0 311481/2 4790259410571 7 -> sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790259410579 7 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790259410586 7 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790259410595 8 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790259410602 7 -> java/nio/CharBuffer.wrap
+ 0 311481/2 4790259410610 7 -> java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790259410618 7 -> java/nio/CharBuffer.<init>
+ 0 311481/2 4790259410625 7 -> java/nio/Buffer.<init>
+ 0 311481/2 4790259410633 7 -> java/lang/Object.<init>
+ 0 311481/2 4790259410640 7 <- java/lang/Object.<init>
+ 0 311481/2 4790259410648 8 -> java/nio/Buffer.limit
+ 0 311481/2 4790259410656 7 <- java/nio/Buffer.limit
+ 0 311481/2 4790259410664 7 -> java/nio/Buffer.position
+ 0 311481/2 4790259410671 7 <- java/nio/Buffer.position
+ 0 311481/2 4790259410678 7 <- java/nio/Buffer.<init>
+ 0 311481/2 4790259410686 7 <- java/nio/CharBuffer.<init>
+ 0 311481/2 4790259410694 7 <- java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790259410701 7 <- java/nio/CharBuffer.wrap
+ 0 311481/2 4790259410710 8 -> java/nio/Buffer.hasRemaining
+ 0 311481/2 4790259410717 7 <- java/nio/Buffer.hasRemaining
+ 0 311481/2 4790259410725 8 -> java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790259410733 8 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790259410741 7 -> java/nio/CharBuffer.hasArray
+ 0 311481/2 4790259410749 7 <- java/nio/CharBuffer.hasArray
+ 0 311481/2 4790259410757 8 -> java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790259410764 7 <- java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790259410772 7 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790259410780 7 -> java/nio/CharBuffer.array
+ 0 311481/2 4790259410787 7 <- java/nio/CharBuffer.array
+ 0 311481/2 4790259410795 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259410802 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259410810 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259410817 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259410826 8 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790259410833 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790259410841 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259410848 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259410855 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259410863 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259410873 9 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259410880 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259410888 7 -> java/nio/Buffer.position
+ 0 311481/2 4790259410895 7 <- java/nio/Buffer.position
+ 0 311481/2 4790259410902 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259410910 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259410917 7 -> java/nio/Buffer.position
+ 0 311481/2 4790259410924 7 <- java/nio/Buffer.position
+ 0 311481/2 4790259410932 7 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790259410940 7 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790259410948 8 -> java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790259410955 7 <- java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790259410963 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259410970 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259410978 7 <- java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790259410986 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259410993 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259411001 8 -> java/nio/Buffer.remaining
+ 0 311481/2 4790259411008 7 <- java/nio/Buffer.remaining
+ 0 311481/2 4790259411016 7 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790259411024 7 <- sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790259411031 7 <- java/io/OutputStreamWriter.write
+ 0 311481/2 4790259411039 7 <- java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790259411047 8 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790259411055 7 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790259411062 7 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790259411070 7 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790259411077 7 -> java/nio/Buffer.flip
+ 0 311481/2 4790259411084 6 <- java/nio/Buffer.flip
+ 0 311481/2 4790259411092 8 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790259411100 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790259411107 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411114 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411122 7 -> java/io/PrintStream.write
+ 0 311481/2 4790259411130 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259411137 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259411145 8 -> java/io/BufferedOutputStream.write
+ 0 311481/2 4790259411153 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790259411160 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790259411168 7 <- java/io/BufferedOutputStream.write
+ 0 311481/2 4790259411176 8 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790259411184 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790259411192 7 -> java/io/FileOutputStream.write
+ 0 311481/2 4790259411199 7 -> java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790259411241 41 <- java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790259411249 8 <- java/io/FileOutputStream.write
+ 0 311481/2 4790259411257 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790259411265 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790259411272 7 <- java/io/PrintStream.write
+ 0 311481/2 4790259411280 7 -> java/nio/Buffer.clear
+ 0 311481/2 4790259411288 7 <- java/nio/Buffer.clear
+ 0 311481/2 4790259411295 7 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790259411303 7 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790259411310 7 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790259411318 7 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790259411326 8 -> java/lang/String.indexOf
+ 0 311481/2 4790259411334 7 -> java/lang/String.indexOf
+ 0 311481/2 4790259411342 8 <- java/lang/String.indexOf
+ 0 311481/2 4790259411349 7 <- java/lang/String.indexOf
+ 0 311481/2 4790259411357 7 <- java/io/PrintStream.write
+ 0 311481/2 4790259411365 7 <- java/io/PrintStream.print
+ 0 311481/2 4790259411372 7 -> java/io/PrintStream.newLine
+ 0 311481/2 4790259411380 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259411387 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259411395 7 -> java/io/BufferedWriter.newLine
+ 0 311481/2 4790259411402 7 -> java/io/Writer.write
+ 0 311481/2 4790259411409 7 -> java/io/BufferedWriter.write
+ 0 311481/2 4790259411416 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259411423 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259411431 7 -> java/io/BufferedWriter.min
+ 0 311481/2 4790259411439 7 <- java/io/BufferedWriter.min
+ 0 311481/2 4790259411446 7 -> java/lang/String.getChars
+ 0 311481/2 4790259411454 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790259411461 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790259411468 7 <- java/lang/String.getChars
+ 0 311481/2 4790259411476 7 <- java/io/BufferedWriter.write
+ 0 311481/2 4790259411484 7 <- java/io/Writer.write
+ 0 311481/2 4790259411491 7 <- java/io/BufferedWriter.newLine
+ 0 311481/2 4790259411499 7 -> java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790259411506 7 -> java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259411513 7 <- java/io/BufferedWriter.ensureOpen
+ 0 311481/2 4790259411521 7 -> java/io/OutputStreamWriter.write
+ 0 311481/2 4790259411528 7 -> sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790259411535 7 -> sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790259411543 7 <- sun/nio/cs/StreamEncoder.ensureOpen
+ 0 311481/2 4790259411550 7 -> sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790259411558 7 -> java/nio/CharBuffer.wrap
+ 0 311481/2 4790259411565 7 -> java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790259411572 7 -> java/nio/CharBuffer.<init>
+ 0 311481/2 4790259411579 7 -> java/nio/Buffer.<init>
+ 0 311481/2 4790259411586 6 -> java/lang/Object.<init>
+ 0 311481/2 4790259411594 7 <- java/lang/Object.<init>
+ 0 311481/2 4790259411601 7 -> java/nio/Buffer.limit
+ 0 311481/2 4790259411608 7 <- java/nio/Buffer.limit
+ 0 311481/2 4790259411616 7 -> java/nio/Buffer.position
+ 0 311481/2 4790259411623 7 <- java/nio/Buffer.position
+ 0 311481/2 4790259411631 7 <- java/nio/Buffer.<init>
+ 0 311481/2 4790259411638 7 <- java/nio/CharBuffer.<init>
+ 0 311481/2 4790259411646 7 <- java/nio/HeapCharBuffer.<init>
+ 0 311481/2 4790259411653 7 <- java/nio/CharBuffer.wrap
+ 0 311481/2 4790259411661 7 -> java/nio/Buffer.hasRemaining
+ 0 311481/2 4790259411668 7 <- java/nio/Buffer.hasRemaining
+ 0 311481/2 4790259411676 7 -> java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790259411684 7 -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790259411691 7 -> java/nio/CharBuffer.hasArray
+ 0 311481/2 4790259411698 7 <- java/nio/CharBuffer.hasArray
+ 0 311481/2 4790259411706 7 -> java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790259411713 7 <- java/nio/ByteBuffer.hasArray
+ 0 311481/2 4790259411721 7 -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790259411728 7 -> java/nio/CharBuffer.array
+ 0 311481/2 4790259411735 7 <- java/nio/CharBuffer.array
+ 0 311481/2 4790259411743 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259411750 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259411758 7 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259411765 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259411773 7 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790259411780 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790259411787 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411795 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411802 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411809 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411818 8 -> java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259411825 7 <- java/nio/CharBuffer.arrayOffset
+ 0 311481/2 4790259411833 7 -> java/nio/Buffer.position
+ 0 311481/2 4790259411840 7 <- java/nio/Buffer.position
+ 0 311481/2 4790259411847 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411855 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259411862 7 -> java/nio/Buffer.position
+ 0 311481/2 4790259411869 7 <- java/nio/Buffer.position
+ 0 311481/2 4790259411877 7 <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 0 311481/2 4790259411885 7 <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 0 311481/2 4790259411893 8 -> java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790259411900 7 <- java/nio/charset/CoderResult.isOverflow
+ 0 311481/2 4790259411908 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259411915 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259411923 7 <- java/nio/charset/CharsetEncoder.encode
+ 0 311481/2 4790259411931 7 -> java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259411938 7 <- java/nio/charset/CoderResult.isUnderflow
+ 0 311481/2 4790259411946 7 -> java/nio/Buffer.remaining
+ 0 311481/2 4790259411953 7 <- java/nio/Buffer.remaining
+ 0 311481/2 4790259411960 7 <- sun/nio/cs/StreamEncoder.implWrite
+ 0 311481/2 4790259411968 7 <- sun/nio/cs/StreamEncoder.write
+ 0 311481/2 4790259411976 7 <- java/io/OutputStreamWriter.write
+ 0 311481/2 4790259411983 7 <- java/io/BufferedWriter.flushBuffer
+ 0 311481/2 4790259411991 7 -> java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790259411999 7 -> sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790259412006 7 -> sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790259412013 7 -> sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790259412021 7 -> java/nio/Buffer.flip
+ 0 311481/2 4790259412028 6 <- java/nio/Buffer.flip
+ 0 311481/2 4790259412035 7 -> java/nio/ByteBuffer.array
+ 0 311481/2 4790259412043 7 <- java/nio/ByteBuffer.array
+ 0 311481/2 4790259412050 7 -> java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259412057 7 <- java/nio/ByteBuffer.arrayOffset
+ 0 311481/2 4790259412065 7 -> java/io/PrintStream.write
+ 0 311481/2 4790259412072 7 -> java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259412080 7 <- java/io/PrintStream.ensureOpen
+ 0 311481/2 4790259412087 7 -> java/io/BufferedOutputStream.write
+ 0 311481/2 4790259412095 7 -> java/lang/System.arraycopy
+ 0 311481/2 4790259412102 7 <- java/lang/System.arraycopy
+ 0 311481/2 4790259412110 7 <- java/io/BufferedOutputStream.write
+ 0 311481/2 4790259412118 7 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790259412125 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790259412132 7 -> java/io/FileOutputStream.write
+ 0 311481/2 4790259412140 7 -> java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790259412157 17 <- java/io/FileOutputStream.writeBytes
+ 0 311481/2 4790259412165 8 <- java/io/FileOutputStream.write
+ 0 311481/2 4790259412172 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790259412180 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790259412188 7 <- java/io/PrintStream.write
+ 0 311481/2 4790259412195 7 -> java/nio/Buffer.clear
+ 0 311481/2 4790259412203 7 <- java/nio/Buffer.clear
+ 0 311481/2 4790259412210 7 <- sun/nio/cs/StreamEncoder.writeBytes
+ 0 311481/2 4790259412218 7 <- sun/nio/cs/StreamEncoder.implFlushBuffer
+ 0 311481/2 4790259412226 7 <- sun/nio/cs/StreamEncoder.flushBuffer
+ 0 311481/2 4790259412233 7 <- java/io/OutputStreamWriter.flushBuffer
+ 0 311481/2 4790259412241 7 -> java/io/BufferedOutputStream.flush
+ 0 311481/2 4790259412248 7 -> java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790259412256 7 <- java/io/BufferedOutputStream.flushBuffer
+ 0 311481/2 4790259412263 7 <- java/io/BufferedOutputStream.flush
+ 0 311481/2 4790259412271 7 <- java/io/PrintStream.newLine
+ 0 311481/2 4790259412279 7 <- java/io/PrintStream.println
+ 0 311481/2 4790259412287 8 -> java/lang/Thread.currentThread
+ 0 311481/2 4790259412294 7 <- java/lang/Thread.currentThread
+ 0 311481/2 4790259412302 7 -> java/lang/Thread.sleep
+ 0 311481/2 4790260420044 1007741 <- java/lang/Thread.sleep
+ 0 311481/2 4790260420073 29 <- Func_abc.func_c
+ 0 311481/2 4790260420081 7 <- Func_abc.func_b
+ 0 311481/2 4790260420088 7 <- Func_abc.func_a
+ 0 311481/2 4790260420096 7 <- Func_abc.main
+ 0 311481/2 4790260420121 24 -> java/lang/Thread.exit
+ 0 311481/2 4790260420153 32 -> java/lang/ThreadGroup.remove
+ 0 311481/2 4790260420169 15 -> java/lang/System.arraycopy
+ 0 311481/2 4790260420178 8 <- java/lang/System.arraycopy
+ 0 311481/2 4790260420190 11 -> java/lang/Object.notifyAll
+ 0 311481/2 4790260420203 13 <- java/lang/Object.notifyAll
+ 0 311481/2 4790260420211 8 <- java/lang/ThreadGroup.remove
+ 0 311481/2 4790260420225 13 <- java/lang/Thread.exit
+ 0 311481/2 4790260420438 212 -> java/lang/Thread.<init>
+ 0 311481/2 4790260420447 8 -> java/lang/Object.<init>
+ 0 311481/2 4790260420454 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260420464 9 -> java/lang/Object.<init>
+ 0 311481/2 4790260420471 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260420479 8 -> java/lang/Thread.init
+ 0 311481/2 4790260420486 7 -> java/lang/Thread.currentThread
+ 0 311481/2 4790260420494 7 <- java/lang/Thread.currentThread
+ 0 311481/2 4790260420503 8 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790260420511 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790260420519 8 -> java/lang/ThreadGroup.checkAccess
+ 0 311481/2 4790260420526 7 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790260420534 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790260420542 8 <- java/lang/ThreadGroup.checkAccess
+ 0 311481/2 4790260420550 8 -> java/lang/ThreadGroup.addUnstarted
+ 0 311481/2 4790260420558 7 <- java/lang/ThreadGroup.addUnstarted
+ 0 311481/2 4790260420567 9 -> java/lang/String.toCharArray
+ 0 311481/2 4790260420575 8 -> java/lang/String.getChars
+ 0 311481/2 4790260420584 8 -> java/lang/System.arraycopy
+ 0 311481/2 4790260420592 8 <- java/lang/System.arraycopy
+ 0 311481/2 4790260420599 7 <- java/lang/String.getChars
+ 0 311481/2 4790260420607 7 <- java/lang/String.toCharArray
+ 0 311481/2 4790260420615 7 -> java/lang/Thread.getContextClassLoader
+ 0 311481/2 4790260420622 7 <- java/lang/Thread.getContextClassLoader
+ 0 311481/2 4790260420631 8 -> java/security/AccessController.getContext
+ 0 311481/2 4790260420638 7 -> java/security/AccessController.getStackAccessControlContext
+ 0 311481/2 4790260420653 14 <- java/security/AccessController.getStackAccessControlContext
+ 0 311481/2 4790260420662 8 -> java/security/AccessControlContext.optimize
+ 0 311481/2 4790260420670 8 -> java/security/AccessController.getInheritedAccessControlContext
+ 0 311481/2 4790260420678 8 <- java/security/AccessController.getInheritedAccessControlContext
+ 0 311481/2 4790260420687 8 <- java/security/AccessControlContext.optimize
+ 0 311481/2 4790260420695 7 <- java/security/AccessController.getContext
+ 0 311481/2 4790260420703 8 -> java/lang/Thread.setPriority
+ 0 311481/2 4790260420710 7 -> java/lang/Thread.checkAccess
+ 0 311481/2 4790260420718 7 -> java/lang/System.getSecurityManager
+ 0 311481/2 4790260420725 7 <- java/lang/System.getSecurityManager
+ 0 311481/2 4790260420732 7 <- java/lang/Thread.checkAccess
+ 0 311481/2 4790260420741 8 -> java/lang/Thread.setPriority0
+ 0 311481/2 4790260420760 19 <- java/lang/Thread.setPriority0
+ 0 311481/2 4790260420768 8 <- java/lang/Thread.setPriority
+ 0 311481/2 4790260420777 8 -> java/lang/Thread.nextThreadID
+ 0 311481/2 4790260420785 8 <- java/lang/Thread.nextThreadID
+ 0 311481/2 4790260420793 7 <- java/lang/Thread.init
+ 0 311481/2 4790260420801 7 <- java/lang/Thread.<init>
+ 0 311481/2 4790260420810 9 -> java/lang/ThreadGroup.add
+ 0 311481/2 4790260420819 8 <- java/lang/ThreadGroup.add
+ 0 311481/2 4790260420834 15 -> java/lang/Shutdown.shutdown
+ 0 311481/2 4790260420846 12 -> java/lang/Shutdown.sequence
+ 0 311481/2 4790260420855 9 -> java/lang/Shutdown.runHooks
+ 0 311481/2 4790260420867 11 -> java/util/AbstractList.iterator
+ 0 311481/2 4790260421144 277 -> java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260421156 12 -> java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260421168 11 -> java/lang/Object.<init>
+ 0 311481/2 4790260421175 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260421189 13 <- java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260421197 7 <- java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260421205 7 <- java/util/AbstractList.iterator
+ 0 311481/2 4790260421218 13 -> java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260421229 11 <- java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260421240 10 -> java/util/AbstractList$Itr.next
+ 0 311481/2 4790260421249 9 -> java/util/AbstractList$Itr.checkForComodification
+ 0 311481/2 4790260421256 7 <- java/util/AbstractList$Itr.checkForComodification
+ 0 311481/2 4790260421267 10 -> java/util/ArrayList.get
+ 0 311481/2 4790260421274 7 -> java/util/ArrayList.RangeCheck
+ 0 311481/2 4790260421282 7 <- java/util/ArrayList.RangeCheck
+ 0 311481/2 4790260421290 7 <- java/util/ArrayList.get
+ 0 311481/2 4790260421297 7 <- java/util/AbstractList$Itr.next
+ 0 311481/2 4790260421310 12 -> java/io/Console$1$1.run
+ 0 311481/2 4790260421321 10 -> java/io/Console.access$600
+ 0 311481/2 4790260421330 9 <- java/io/Console.access$600
+ 0 311481/2 4790260421338 7 <- java/io/Console$1$1.run
+ 0 311481/2 4790260421346 7 -> java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260421353 7 <- java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260421361 7 -> java/util/AbstractList$Itr.next
+ 0 311481/2 4790260421368 7 -> java/util/AbstractList$Itr.checkForComodification
+ 0 311481/2 4790260421376 7 <- java/util/AbstractList$Itr.checkForComodification
+ 0 311481/2 4790260421384 8 -> java/util/ArrayList.get
+ 0 311481/2 4790260421391 7 -> java/util/ArrayList.RangeCheck
+ 0 311481/2 4790260421398 7 <- java/util/ArrayList.RangeCheck
+ 0 311481/2 4790260421406 7 <- java/util/ArrayList.get
+ 0 311481/2 4790260421414 7 <- java/util/AbstractList$Itr.next
+ 0 311481/2 4790260421422 8 -> java/lang/ApplicationShutdownHooks.run
+ 0 311481/2 4790260421435 13 -> java/util/IdentityHashMap.keySet
+ 0 311481/2 4790260421598 163 -> java/util/IdentityHashMap$KeySet.<init>
+ 0 311481/2 4790260421610 11 -> java/util/IdentityHashMap$KeySet.<init>
+ 0 311481/2 4790260421622 11 -> java/util/AbstractSet.<init>
+ 0 311481/2 4790260421629 7 -> java/util/AbstractCollection.<init>
+ 0 311481/2 4790260421637 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260421644 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260421652 8 <- java/util/AbstractCollection.<init>
+ 0 311481/2 4790260421660 7 <- java/util/AbstractSet.<init>
+ 0 311481/2 4790260421668 7 <- java/util/IdentityHashMap$KeySet.<init>
+ 0 311481/2 4790260421675 7 <- java/util/IdentityHashMap$KeySet.<init>
+ 0 311481/2 4790260421683 7 <- java/util/IdentityHashMap.keySet
+ 0 311481/2 4790260421695 11 -> java/util/IdentityHashMap$KeySet.iterator
+ 0 311481/2 4790260421882 187 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260421894 11 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260421905 11 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260421915 10 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260421926 10 -> java/lang/Object.<init>
+ 0 311481/2 4790260421934 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260421945 11 -> java/util/IdentityHashMap.access$000
+ 0 311481/2 4790260421954 8 <- java/util/IdentityHashMap.access$000
+ 0 311481/2 4790260421967 12 -> java/util/IdentityHashMap.access$200
+ 0 311481/2 4790260421975 8 <- java/util/IdentityHashMap.access$200
+ 0 311481/2 4790260421986 10 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260421994 8 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260422002 7 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260422010 7 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260422018 7 <- java/util/IdentityHashMap$KeySet.iterator
+ 0 311481/2 4790260422029 11 -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311481/2 4790260422037 8 <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311481/2 4790260422045 8 -> java/util/IdentityHashMap$KeySet.iterator
+ 0 311481/2 4790260422053 7 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260422060 7 -> java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260422068 7 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260422075 7 -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260422083 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260422090 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260422098 8 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260422106 8 <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 0 311481/2 4790260422114 7 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260422121 7 <- java/util/IdentityHashMap$KeyIterator.<init>
+ 0 311481/2 4790260422129 7 <- java/util/IdentityHashMap$KeySet.iterator
+ 0 311481/2 4790260422137 7 -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311481/2 4790260422145 7 <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 0 311481/2 4790260422153 8 <- java/lang/ApplicationShutdownHooks.run
+ 0 311481/2 4790260422161 7 -> java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260422168 7 <- java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260422176 7 -> java/util/AbstractList$Itr.next
+ 0 311481/2 4790260422183 7 -> java/util/AbstractList$Itr.checkForComodification
+ 0 311481/2 4790260422191 7 <- java/util/AbstractList$Itr.checkForComodification
+ 0 311481/2 4790260422199 8 -> java/util/ArrayList.get
+ 0 311481/2 4790260422206 7 -> java/util/ArrayList.RangeCheck
+ 0 311481/2 4790260422213 7 <- java/util/ArrayList.RangeCheck
+ 0 311481/2 4790260422221 7 <- java/util/ArrayList.get
+ 0 311481/2 4790260422229 7 <- java/util/AbstractList$Itr.next
+ 0 311481/2 4790260422237 8 -> java/io/File$1.run
+ 0 311481/2 4790260422318 81 -> java/io/DeleteOnExitHook.<clinit>
+ 0 311481/2 4790260422461 143 -> java/util/LinkedHashSet.<init>
+ 0 311481/2 4790260422473 12 -> java/util/HashSet.<init>
+ 0 311481/2 4790260422481 7 -> java/util/AbstractSet.<init>
+ 0 311481/2 4790260422488 7 -> java/util/AbstractCollection.<init>
+ 0 311481/2 4790260422495 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260422502 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260422511 8 <- java/util/AbstractCollection.<init>
+ 0 311481/2 4790260422519 7 <- java/util/AbstractSet.<init>
+ 0 311481/2 4790260422531 12 -> java/util/LinkedHashMap.<init>
+ 0 311481/2 4790260422541 10 -> java/util/HashMap.<init>
+ 0 311481/2 4790260422549 7 -> java/util/AbstractMap.<init>
+ 0 311481/2 4790260422556 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260422563 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260422571 7 <- java/util/AbstractMap.<init>
+ 0 311481/2 4790260422580 9 -> java/lang/Float.isNaN
+ 0 311481/2 4790260422588 7 <- java/lang/Float.isNaN
+ 0 311481/2 4790260422600 12 -> java/util/LinkedHashMap.init
+ 0 311481/2 4790260422608 8 -> java/util/LinkedHashMap$Entry.<init>
+ 0 311481/2 4790260422615 7 -> java/util/HashMap$Entry.<init>
+ 0 311481/2 4790260422623 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260422630 6 <- java/lang/Object.<init>
+ 0 311481/2 4790260422638 7 <- java/util/HashMap$Entry.<init>
+ 0 311481/2 4790260422645 7 <- java/util/LinkedHashMap$Entry.<init>
+ 0 311481/2 4790260422653 7 <- java/util/LinkedHashMap.init
+ 0 311481/2 4790260422660 7 <- java/util/HashMap.<init>
+ 0 311481/2 4790260422668 7 <- java/util/LinkedHashMap.<init>
+ 0 311481/2 4790260422676 7 <- java/util/HashSet.<init>
+ 0 311481/2 4790260422683 7 <- java/util/LinkedHashSet.<init>
+ 0 311481/2 4790260422692 9 <- java/io/DeleteOnExitHook.<clinit>
+ 0 311481/2 4790260422703 10 -> java/io/DeleteOnExitHook.hook
+ 0 311481/2 4790260422713 10 -> java/io/DeleteOnExitHook.<init>
+ 0 311481/2 4790260422723 9 -> java/lang/Object.<init>
+ 0 311481/2 4790260422730 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260422738 7 <- java/io/DeleteOnExitHook.<init>
+ 0 311481/2 4790260422746 7 <- java/io/DeleteOnExitHook.hook
+ 0 311481/2 4790260422756 10 -> java/io/DeleteOnExitHook.run
+ 0 311481/2 4790260422768 12 -> java/util/ArrayList.<init>
+ 0 311481/2 4790260422775 7 -> java/util/AbstractList.<init>
+ 0 311481/2 4790260422783 7 -> java/util/AbstractCollection.<init>
+ 0 311481/2 4790260422790 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260422797 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260422805 7 <- java/util/AbstractCollection.<init>
+ 0 311481/2 4790260422813 7 <- java/util/AbstractList.<init>
+ 0 311481/2 4790260422824 11 -> java/util/AbstractCollection.toArray
+ 0 311481/2 4790260422835 10 -> java/util/HashSet.size
+ 0 311481/2 4790260422844 9 <- java/util/HashSet.size
+ 0 311481/2 4790260422855 10 -> java/util/HashSet.iterator
+ 0 311481/2 4790260422865 9 -> java/util/HashMap.keySet
+ 0 311481/2 4790260422956 91 -> java/util/HashMap$KeySet.<init>
+ 0 311481/2 4790260422967 10 -> java/util/HashMap$KeySet.<init>
+ 0 311481/2 4790260422978 10 -> java/util/AbstractSet.<init>
+ 0 311481/2 4790260422985 7 -> java/util/AbstractCollection.<init>
+ 0 311481/2 4790260422993 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260423000 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260423008 7 <- java/util/AbstractCollection.<init>
+ 0 311481/2 4790260423015 7 <- java/util/AbstractSet.<init>
+ 0 311481/2 4790260423023 7 <- java/util/HashMap$KeySet.<init>
+ 0 311481/2 4790260423031 7 <- java/util/HashMap$KeySet.<init>
+ 0 311481/2 4790260423038 7 <- java/util/HashMap.keySet
+ 0 311481/2 4790260423049 10 -> java/util/HashMap$KeySet.iterator
+ 0 311481/2 4790260423060 11 -> java/util/LinkedHashMap.newKeyIterator
+ 0 311481/2 4790260423243 182 -> java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311481/2 4790260423254 11 -> java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311481/2 4790260423266 11 -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311481/2 4790260423276 9 -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311481/2 4790260423286 10 -> java/lang/Object.<init>
+ 0 311481/2 4790260423294 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260423311 16 <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311481/2 4790260423319 8 <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 0 311481/2 4790260423327 7 <- java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311481/2 4790260423334 7 <- java/util/LinkedHashMap$KeyIterator.<init>
+ 0 311481/2 4790260423342 7 <- java/util/LinkedHashMap.newKeyIterator
+ 0 311481/2 4790260423350 7 <- java/util/HashMap$KeySet.iterator
+ 0 311481/2 4790260423357 7 <- java/util/HashSet.iterator
+ 0 311481/2 4790260423369 11 -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 0 311481/2 4790260423377 8 <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 0 311481/2 4790260423385 8 <- java/util/AbstractCollection.toArray
+ 0 311481/2 4790260423393 8 -> java/lang/Object.getClass
+ 0 311481/2 4790260423402 8 <- java/lang/Object.getClass
+ 0 311481/2 4790260423410 8 <- java/util/ArrayList.<init>
+ 0 311481/2 4790260423422 11 -> java/util/Collections.reverse
+ 0 311481/2 4790260423435 13 <- java/util/Collections.reverse
+ 0 311481/2 4790260423445 10 -> java/util/AbstractList.iterator
+ 0 311481/2 4790260423453 8 -> java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260423460 7 -> java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260423468 7 -> java/lang/Object.<init>
+ 0 311481/2 4790260423475 7 <- java/lang/Object.<init>
+ 0 311481/2 4790260423483 7 <- java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260423490 7 <- java/util/AbstractList$Itr.<init>
+ 0 311481/2 4790260423498 7 <- java/util/AbstractList.iterator
+ 0 311481/2 4790260423508 10 -> java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260423516 7 <- java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260423524 8 <- java/io/DeleteOnExitHook.run
+ 0 311481/2 4790260423532 7 <- java/io/File$1.run
+ 0 311481/2 4790260423539 7 -> java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260423547 7 <- java/util/AbstractList$Itr.hasNext
+ 0 311481/2 4790260423554 7 <- java/lang/Shutdown.runHooks
+ 0 311481/2 4790260423564 9 <- java/lang/Shutdown.sequence
+ 0 311481/2 4790260423572 7 <- java/lang/Shutdown.shutdown
+
+I truncated 22800 lines from the above output to make it fit here.
+
+The fifth column is indented by 2 spaces to show when a new method begins.
+This shows which method is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+Try skimming down the "DELTA(us)" column to find the largest delta time,
+and see what lines it corresponds with.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+If you see "drops" warnings, see the Notes/ALLjava_notes.txt file for details.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt
new file mode 100644
index 000000000000..22a2b4d1a7e9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt
@@ -0,0 +1,999 @@
+The following are examples of running the j_methodcalls.d script.
+
+This traces calls to methods from all Java processes on the system with hotspot
+provider support (1.6.0). Method calls are only visible when using the flag
+"+ExtendedDTraceProbes". eg, java -XX:+ExtendedDTraceProbes classfile
+
+Here we see it running on Code/Java/Func_abc
+
+# j_methodcalls_example.txt
+Tracing... Hit Ctrl-C to end.
+
+ PID COUNT CLASS.METHOD
+ 311492 1 Func_abc.func_a
+ 311492 1 Func_abc.func_b
+ 311492 1 Func_abc.func_c
+ 311492 1 Func_abc.main
+ 311492 1 java/io/BufferedInputStream.<clinit>
+ 311492 1 java/io/BufferedReader.<clinit>
+ 311492 1 java/io/BufferedReader.close
+ 311492 1 java/io/BufferedWriter.<clinit>
+ 311492 1 java/io/Console$1$1.<init>
+ 311492 1 java/io/Console$1$1.run
+ 311492 1 java/io/Console$1.<init>
+ 311492 1 java/io/Console$1.consoleRestoreHook
+ 311492 1 java/io/Console.<clinit>
+ 311492 1 java/io/Console.access$600
+ 311492 1 java/io/DataInputStream.<init>
+ 311492 1 java/io/DataInputStream.readFully
+ 311492 1 java/io/DeleteOnExitHook.<clinit>
+ 311492 1 java/io/DeleteOnExitHook.<init>
+ 311492 1 java/io/DeleteOnExitHook.hook
+ 311492 1 java/io/DeleteOnExitHook.run
+ 311492 1 java/io/File$1.<init>
+ 311492 1 java/io/File$1.run
+ 311492 1 java/io/File.<clinit>
+ 311492 1 java/io/File.lastModified
+ 311492 1 java/io/File.length
+ 311492 1 java/io/FileDescriptor.<clinit>
+ 311492 1 java/io/FileDescriptor.initIDs
+ 311492 1 java/io/FileInputStream.<clinit>
+ 311492 1 java/io/FileInputStream.available
+ 311492 1 java/io/FileInputStream.initIDs
+ 311492 1 java/io/FileOutputStream.<clinit>
+ 311492 1 java/io/FileOutputStream.initIDs
+ 311492 1 java/io/FilePermission.newPermissionCollection
+ 311492 1 java/io/FilePermissionCollection.<clinit>
+ 311492 1 java/io/FilePermissionCollection.<init>
+ 311492 1 java/io/FilePermissionCollection.add
+ 311492 1 java/io/FileReader.<init>
+ 311492 1 java/io/FileSystem.<clinit>
+ 311492 1 java/io/FileSystem.<init>
+ 311492 1 java/io/FileSystem.getFileSystem
+ 311492 1 java/io/FilterInputStream.close
+ 311492 1 java/io/InputStreamReader.<init>
+ 311492 1 java/io/InputStreamReader.close
+ 311492 1 java/io/ObjectStreamClass.<clinit>
+ 311492 1 java/io/ObjectStreamClass.initNative
+ 311492 1 java/io/UnixFileSystem.<clinit>
+ 311492 1 java/io/UnixFileSystem.<init>
+ 311492 1 java/io/UnixFileSystem.getLastModifiedTime
+ 311492 1 java/io/UnixFileSystem.getLength
+ 311492 1 java/io/UnixFileSystem.initIDs
+ 311492 1 java/lang/AbstractStringBuilder.<clinit>
+ 311492 1 java/lang/ApplicationShutdownHooks.<clinit>
+ 311492 1 java/lang/ApplicationShutdownHooks.<init>
+ 311492 1 java/lang/ApplicationShutdownHooks.hook
+ 311492 1 java/lang/ApplicationShutdownHooks.run
+ 311492 1 java/lang/Boolean.<clinit>
+ 311492 1 java/lang/Byte.<clinit>
+ 311492 1 java/lang/Character.<clinit>
+ 311492 1 java/lang/CharacterDataLatin1.<clinit>
+ 311492 1 java/lang/Class.<clinit>
+ 311492 1 java/lang/Class.access$302
+ 311492 1 java/lang/Class.registerNatives
+ 311492 1 java/lang/ClassLoader$3.<init>
+ 311492 1 java/lang/ClassLoader$3.run
+ 311492 1 java/lang/ClassLoader$NativeLibrary.<init>
+ 311492 1 java/lang/ClassLoader$NativeLibrary.getFromClass
+ 311492 1 java/lang/ClassLoader$NativeLibrary.load
+ 311492 1 java/lang/ClassLoader.<clinit>
+ 311492 1 java/lang/ClassLoader.access$100
+ 311492 1 java/lang/ClassLoader.addClass
+ 311492 1 java/lang/ClassLoader.checkCerts
+ 311492 1 java/lang/ClassLoader.defineClass
+ 311492 1 java/lang/ClassLoader.defineClass1
+ 311492 1 java/lang/ClassLoader.defineClassSourceLocation
+ 311492 1 java/lang/ClassLoader.getSystemClassLoader
+ 311492 1 java/lang/ClassLoader.initSystemClassLoader
+ 311492 1 java/lang/ClassLoader.loadLibrary
+ 311492 1 java/lang/ClassLoader.loadLibrary0
+ 311492 1 java/lang/ClassLoader.postDefineClass
+ 311492 1 java/lang/ClassLoader.preDefineClass
+ 311492 1 java/lang/ClassLoader.registerNatives
+ 311492 1 java/lang/Compiler$1.<init>
+ 311492 1 java/lang/Compiler$1.run
+ 311492 1 java/lang/Compiler.<clinit>
+ 311492 1 java/lang/Compiler.registerNatives
+ 311492 1 java/lang/Double.<clinit>
+ 311492 1 java/lang/Double.doubleToLongBits
+ 311492 1 java/lang/Double.doubleToRawLongBits
+ 311492 1 java/lang/Error.<init>
+ 311492 1 java/lang/Float.<clinit>
+ 311492 1 java/lang/Float.floatToIntBits
+ 311492 1 java/lang/Float.floatToRawIntBits
+ 311492 1 java/lang/IncompatibleClassChangeError.<init>
+ 311492 1 java/lang/Integer.<clinit>
+ 311492 1 java/lang/LinkageError.<init>
+ 311492 1 java/lang/Long.<clinit>
+ 311492 1 java/lang/Math.<clinit>
+ 311492 1 java/lang/NoSuchMethodError.<init>
+ 311492 1 java/lang/Object.<clinit>
+ 311492 1 java/lang/Object.notifyAll
+ 311492 1 java/lang/Object.registerNatives
+ 311492 1 java/lang/Runtime.<clinit>
+ 311492 1 java/lang/Runtime.<init>
+ 311492 1 java/lang/Runtime.loadLibrary0
+ 311492 1 java/lang/Runtime.maxMemory
+ 311492 1 java/lang/Short.<clinit>
+ 311492 1 java/lang/Shutdown.<clinit>
+ 311492 1 java/lang/Shutdown.runHooks
+ 311492 1 java/lang/Shutdown.sequence
+ 311492 1 java/lang/Shutdown.shutdown
+ 311492 1 java/lang/String.<clinit>
+ 311492 1 java/lang/String.checkBounds
+ 311492 1 java/lang/String.length
+ 311492 1 java/lang/String.trim
+ 311492 1 java/lang/StringBuffer.<clinit>
+ 311492 1 java/lang/StringCoding$StringDecoder.decode
+ 311492 1 java/lang/StringCoding.<clinit>
+ 311492 1 java/lang/StringCoding.access$000
+ 311492 1 java/lang/StringCoding.access$100
+ 311492 1 java/lang/StringCoding.decode
+ 311492 1 java/lang/StringCoding.deref
+ 311492 1 java/lang/StringCoding.lookupCharset
+ 311492 1 java/lang/StringCoding.safeTrim
+ 311492 1 java/lang/StringCoding.scale
+ 311492 1 java/lang/StringCoding.set
+ 311492 1 java/lang/System$2.<init>
+ 311492 1 java/lang/System.<clinit>
+ 311492 1 java/lang/System.getCallerClass
+ 311492 1 java/lang/System.initProperties
+ 311492 1 java/lang/System.initializeSystemClass
+ 311492 1 java/lang/System.loadLibrary
+ 311492 1 java/lang/System.mapLibraryName
+ 311492 1 java/lang/System.nullInputStream
+ 311492 1 java/lang/System.registerNatives
+ 311492 1 java/lang/System.setErr0
+ 311492 1 java/lang/System.setIn0
+ 311492 1 java/lang/System.setOut0
+ 311492 1 java/lang/SystemClassLoaderAction.<init>
+ 311492 1 java/lang/SystemClassLoaderAction.run
+ 311492 1 java/lang/Terminator$1.<init>
+ 311492 1 java/lang/Terminator.<clinit>
+ 311492 1 java/lang/Terminator.setup
+ 311492 1 java/lang/Thread.<clinit>
+ 311492 1 java/lang/Thread.exit
+ 311492 1 java/lang/Thread.getPriority
+ 311492 1 java/lang/Thread.interrupted
+ 311492 1 java/lang/Thread.isInterrupted
+ 311492 1 java/lang/Thread.registerNatives
+ 311492 1 java/lang/Thread.setContextClassLoader
+ 311492 1 java/lang/ThreadGroup.remove
+ 311492 1 java/lang/ThreadLocal$ThreadLocalMap$Entry.<init>
+ 311492 1 java/lang/ThreadLocal$ThreadLocalMap.<init>
+ 311492 1 java/lang/ThreadLocal$ThreadLocalMap.access$100
+ 311492 1 java/lang/ThreadLocal$ThreadLocalMap.set
+ 311492 1 java/lang/ThreadLocal$ThreadLocalMap.setThreshold
+ 311492 1 java/lang/ThreadLocal.<clinit>
+ 311492 1 java/lang/ThreadLocal.createMap
+ 311492 1 java/lang/ThreadLocal.get
+ 311492 1 java/lang/ThreadLocal.initialValue
+ 311492 1 java/lang/ThreadLocal.set
+ 311492 1 java/lang/ThreadLocal.setInitialValue
+ 311492 1 java/lang/ref/Finalizer$FinalizerThread.<init>
+ 311492 1 java/lang/ref/Finalizer$FinalizerThread.run
+ 311492 1 java/lang/ref/Finalizer.<clinit>
+ 311492 1 java/lang/ref/Finalizer.access$000
+ 311492 1 java/lang/ref/Reference$ReferenceHandler.<init>
+ 311492 1 java/lang/ref/Reference$ReferenceHandler.run
+ 311492 1 java/lang/ref/Reference.<clinit>
+ 311492 1 java/lang/ref/Reference.access$200
+ 311492 1 java/lang/ref/ReferenceQueue.<clinit>
+ 311492 1 java/lang/ref/ReferenceQueue.reallyPoll
+ 311492 1 java/lang/reflect/AccessibleObject.<clinit>
+ 311492 1 java/lang/reflect/Constructor.<clinit>
+ 311492 1 java/lang/reflect/Field.<clinit>
+ 311492 1 java/lang/reflect/Field.getName
+ 311492 1 java/lang/reflect/Method.<clinit>
+ 311492 1 java/lang/reflect/Method.getModifiers
+ 311492 1 java/lang/reflect/Modifier.<clinit>
+ 311492 1 java/lang/reflect/Modifier.isVolatile
+ 311492 1 java/lang/reflect/ReflectAccess.<init>
+ 311492 1 java/lang/reflect/ReflectPermission.<init>
+ 311492 1 java/net/ContentHandler.<init>
+ 311492 1 java/net/Parts.getQuery
+ 311492 1 java/net/URL.<clinit>
+ 311492 1 java/net/URL.openConnection
+ 311492 1 java/net/URLClassLoader$7.<init>
+ 311492 1 java/net/URLClassLoader.<clinit>
+ 311492 1 java/net/URLClassLoader.access$000
+ 311492 1 java/net/URLClassLoader.defineClass
+ 311492 1 java/net/URLClassLoader.getPermissions
+ 311492 1 java/net/URLConnection.<clinit>
+ 311492 1 java/net/URLConnection.<init>
+ 311492 1 java/net/UnknownContentHandler.<init>
+ 311492 1 java/nio/Bits.<clinit>
+ 311492 1 java/nio/ByteOrder.<clinit>
+ 311492 1 java/nio/charset/Charset.<clinit>
+ 311492 1 java/nio/charset/Charset.<init>
+ 311492 1 java/nio/charset/CharsetDecoder.<clinit>
+ 311492 1 java/nio/charset/CharsetDecoder.flush
+ 311492 1 java/nio/charset/CharsetDecoder.implFlush
+ 311492 1 java/nio/charset/CharsetEncoder.<clinit>
+ 311492 1 java/nio/charset/CoderResult$1.<init>
+ 311492 1 java/nio/charset/CoderResult$2.<init>
+ 311492 1 java/nio/charset/CoderResult.<clinit>
+ 311492 1 java/nio/charset/CodingErrorAction.<clinit>
+ 311492 1 java/nio/charset/spi/CharsetProvider.<init>
+ 311492 1 java/security/AccessControlContext.<clinit>
+ 311492 1 java/security/BasicPermission.newPermissionCollection
+ 311492 1 java/security/BasicPermissionCollection.<clinit>
+ 311492 1 java/security/BasicPermissionCollection.<init>
+ 311492 1 java/security/BasicPermissionCollection.add
+ 311492 1 java/security/CodeSource.<init>
+ 311492 1 java/security/Permissions.<clinit>
+ 311492 1 java/security/Policy$UnsupportedEmptyCollection.<init>
+ 311492 1 java/security/Policy.<clinit>
+ 311492 1 java/security/PrivilegedActionException.<init>
+ 311492 1 java/security/ProtectionDomain.<clinit>
+ 311492 1 java/security/ProtectionDomain.<init>
+ 311492 1 java/security/SecureClassLoader.<clinit>
+ 311492 1 java/security/SecureClassLoader.check
+ 311492 1 java/security/SecureClassLoader.defineClass
+ 311492 1 java/security/SecureClassLoader.getPermissions
+ 311492 1 java/security/SecureClassLoader.getProtectionDomain
+ 311492 1 java/util/AbstractCollection.toArray
+ 311492 1 java/util/BitSet.<clinit>
+ 311492 1 java/util/BitSet.<init>
+ 311492 1 java/util/BitSet.initWords
+ 311492 1 java/util/Collections$SynchronizedMap.<init>
+ 311492 1 java/util/Collections.<clinit>
+ 311492 1 java/util/Collections.reverse
+ 311492 1 java/util/Collections.synchronizedMap
+ 311492 1 java/util/HashMap$KeySet.iterator
+ 311492 1 java/util/HashMap.keySet
+ 311492 1 java/util/HashMap.size
+ 311492 1 java/util/HashSet.<clinit>
+ 311492 1 java/util/HashSet.iterator
+ 311492 1 java/util/HashSet.size
+ 311492 1 java/util/Hashtable$EmptyEnumerator.<init>
+ 311492 1 java/util/Hashtable$EmptyIterator.<init>
+ 311492 1 java/util/Hashtable.<clinit>
+ 311492 1 java/util/IdentityHashMap.<clinit>
+ 311492 1 java/util/IdentityHashMap.<init>
+ 311492 1 java/util/IdentityHashMap.access$000
+ 311492 1 java/util/IdentityHashMap.access$200
+ 311492 1 java/util/IdentityHashMap.init
+ 311492 1 java/util/IdentityHashMap.keySet
+ 311492 1 java/util/LinkedHashMap$LinkedHashIterator.hasNext
+ 311492 1 java/util/LinkedHashMap.newKeyIterator
+ 311492 1 java/util/LinkedHashSet.<init>
+ 311492 1 java/util/Locale.<clinit>
+ 311492 1 java/util/Locale.getInstance
+ 311492 1 java/util/Properties.<clinit>
+ 311492 1 java/util/StringTokenizer.countTokens
+ 311492 1 java/util/StringTokenizer.hasMoreTokens
+ 311492 1 java/util/Vector.contains
+ 311492 1 java/util/Vector.copyInto
+ 311492 1 java/util/Vector.indexOf
+ 311492 1 java/util/concurrent/ConcurrentHashMap$Segment.get
+ 311492 1 java/util/concurrent/ConcurrentHashMap$Segment.getFirst
+ 311492 1 java/util/concurrent/ConcurrentHashMap$Segment.newArray
+ 311492 1 java/util/concurrent/ConcurrentHashMap.get
+ 311492 1 java/util/concurrent/atomic/AtomicInteger.<clinit>
+ 311492 1 java/util/concurrent/atomic/AtomicInteger.<init>
+ 311492 1 java/util/concurrent/atomic/AtomicInteger.get
+ 311492 1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<clinit>
+ 311492 1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl.<init>
+ 311492 1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater.<init>
+ 311492 1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater.newUpdater
+ 311492 1 java/util/concurrent/locks/AbstractQueuedSynchronizer.<clinit>
+ 311492 1 java/util/concurrent/locks/AbstractQueuedSynchronizer.getState
+ 311492 1 java/util/jar/JarEntry.<init>
+ 311492 1 java/util/jar/JarFile$JarFileEntry.<init>
+ 311492 1 java/util/jar/JarFile.<clinit>
+ 311492 1 java/util/jar/JarFile.getManEntry
+ 311492 1 java/util/jar/JarFile.hasClassPathAttribute
+ 311492 1 java/util/jar/JarFile.isKnownToNotHaveClassPathAttribute
+ 311492 1 java/util/jar/JavaUtilJarAccessImpl.<init>
+ 311492 1 java/util/jar/JavaUtilJarAccessImpl.jarFileHasClassPathAttribute
+ 311492 1 java/util/zip/Inflater.<clinit>
+ 311492 1 java/util/zip/Inflater.<init>
+ 311492 1 java/util/zip/Inflater.finished
+ 311492 1 java/util/zip/Inflater.init
+ 311492 1 java/util/zip/Inflater.initIDs
+ 311492 1 java/util/zip/Inflater.needsDictionary
+ 311492 1 java/util/zip/Inflater.needsInput
+ 311492 1 java/util/zip/Inflater.setInput
+ 311492 1 java/util/zip/InflaterInputStream.<init>
+ 311492 1 java/util/zip/InflaterInputStream.ensureOpen
+ 311492 1 java/util/zip/InflaterInputStream.read
+ 311492 1 java/util/zip/ZipEntry.<clinit>
+ 311492 1 java/util/zip/ZipEntry.getSize
+ 311492 1 java/util/zip/ZipEntry.initFields
+ 311492 1 java/util/zip/ZipEntry.initIDs
+ 311492 1 java/util/zip/ZipFile$1.<init>
+ 311492 1 java/util/zip/ZipFile$1.close
+ 311492 1 java/util/zip/ZipFile$1.fill
+ 311492 1 java/util/zip/ZipFile$ZipFileInputStream.<init>
+ 311492 1 java/util/zip/ZipFile$ZipFileInputStream.read
+ 311492 1 java/util/zip/ZipFile.<clinit>
+ 311492 1 java/util/zip/ZipFile.<init>
+ 311492 1 java/util/zip/ZipFile.access$000
+ 311492 1 java/util/zip/ZipFile.access$1000
+ 311492 1 java/util/zip/ZipFile.access$1100
+ 311492 1 java/util/zip/ZipFile.access$1200
+ 311492 1 java/util/zip/ZipFile.access$800
+ 311492 1 java/util/zip/ZipFile.access$900
+ 311492 1 java/util/zip/ZipFile.ensureOpenOrZipException
+ 311492 1 java/util/zip/ZipFile.getCSize
+ 311492 1 java/util/zip/ZipFile.getInflater
+ 311492 1 java/util/zip/ZipFile.getMethod
+ 311492 1 java/util/zip/ZipFile.getTotal
+ 311492 1 java/util/zip/ZipFile.initIDs
+ 311492 1 java/util/zip/ZipFile.open
+ 311492 1 java/util/zip/ZipFile.read
+ 311492 1 java/util/zip/ZipFile.releaseInflater
+ 311492 1 sun/misc/ExtensionDependency.checkExtensionsDependencies
+ 311492 1 sun/misc/FileURLMapper.<init>
+ 311492 1 sun/misc/FileURLMapper.exists
+ 311492 1 sun/misc/JarIndex.getJarIndex
+ 311492 1 sun/misc/Launcher$AppClassLoader$1.<init>
+ 311492 1 sun/misc/Launcher$AppClassLoader$1.run
+ 311492 1 sun/misc/Launcher$AppClassLoader.<clinit>
+ 311492 1 sun/misc/Launcher$AppClassLoader.<init>
+ 311492 1 sun/misc/Launcher$AppClassLoader.getAppClassLoader
+ 311492 1 sun/misc/Launcher$AppClassLoader.getPermissions
+ 311492 1 sun/misc/Launcher$ExtClassLoader$1.<init>
+ 311492 1 sun/misc/Launcher$ExtClassLoader$1.run
+ 311492 1 sun/misc/Launcher$ExtClassLoader.<init>
+ 311492 1 sun/misc/Launcher$ExtClassLoader.getExtClassLoader
+ 311492 1 sun/misc/Launcher$ExtClassLoader.getExtDirs
+ 311492 1 sun/misc/Launcher$ExtClassLoader.getExtURLs
+ 311492 1 sun/misc/Launcher$Factory.<clinit>
+ 311492 1 sun/misc/Launcher.<clinit>
+ 311492 1 sun/misc/Launcher.<init>
+ 311492 1 sun/misc/Launcher.access$200
+ 311492 1 sun/misc/Launcher.access$300
+ 311492 1 sun/misc/Launcher.getClassPath
+ 311492 1 sun/misc/Launcher.getLauncher
+ 311492 1 sun/misc/Launcher.pathToURLs
+ 311492 1 sun/misc/MetaIndex.<clinit>
+ 311492 1 sun/misc/Resource.<init>
+ 311492 1 sun/misc/Resource.getByteBuffer
+ 311492 1 sun/misc/Resource.getBytes
+ 311492 1 sun/misc/Resource.getCodeSigners
+ 311492 1 sun/misc/SharedSecrets.<clinit>
+ 311492 1 sun/misc/SharedSecrets.getJavaIOAccess
+ 311492 1 sun/misc/SharedSecrets.getJavaIODeleteOnExitAccess
+ 311492 1 sun/misc/SharedSecrets.javaUtilJarAccess
+ 311492 1 sun/misc/SharedSecrets.setJavaIOAccess
+ 311492 1 sun/misc/SharedSecrets.setJavaIODeleteOnExitAccess
+ 311492 1 sun/misc/SharedSecrets.setJavaLangAccess
+ 311492 1 sun/misc/SharedSecrets.setJavaNetAccess
+ 311492 1 sun/misc/SharedSecrets.setJavaUtilJarAccess
+ 311492 1 sun/misc/Signal.<clinit>
+ 311492 1 sun/misc/SignalHandler.<clinit>
+ 311492 1 sun/misc/SoftCache.<init>
+ 311492 1 sun/misc/URLClassPath$FileLoader$1.<init>
+ 311492 1 sun/misc/URLClassPath$FileLoader$1.getCodeSourceURL
+ 311492 1 sun/misc/URLClassPath$FileLoader$1.getContentLength
+ 311492 1 sun/misc/URLClassPath$FileLoader$1.getInputStream
+ 311492 1 sun/misc/URLClassPath$FileLoader.<init>
+ 311492 1 sun/misc/URLClassPath$FileLoader.getResource
+ 311492 1 sun/misc/URLClassPath$JarLoader$1.<init>
+ 311492 1 sun/misc/URLClassPath$JarLoader$1.run
+ 311492 1 sun/misc/URLClassPath$JarLoader.access$502
+ 311492 1 sun/misc/URLClassPath$JarLoader.access$600
+ 311492 1 sun/misc/URLClassPath$JarLoader.access$702
+ 311492 1 sun/misc/URLClassPath$JarLoader.getJarFile
+ 311492 1 sun/misc/URLClassPath$JarLoader.parseExtensionsDependencies
+ 311492 1 sun/misc/URLClassPath$Loader.getClassPath
+ 311492 1 sun/misc/URLClassPath.<clinit>
+ 311492 1 sun/misc/URLClassPath.access$300
+ 311492 1 sun/misc/Unsafe.<clinit>
+ 311492 1 sun/misc/Unsafe.<init>
+ 311492 1 sun/misc/Unsafe.allocateMemory
+ 311492 1 sun/misc/Unsafe.ensureClassInitialized
+ 311492 1 sun/misc/Unsafe.freeMemory
+ 311492 1 sun/misc/Unsafe.getByte
+ 311492 1 sun/misc/Unsafe.putLong
+ 311492 1 sun/misc/Unsafe.registerNatives
+ 311492 1 sun/misc/VM.<clinit>
+ 311492 1 sun/misc/VM.booted
+ 311492 1 sun/misc/VM.initialize
+ 311492 1 sun/misc/VM.initializeOSEnvironment
+ 311492 1 sun/misc/Version.<clinit>
+ 311492 1 sun/net/www/MessageHeader.<init>
+ 311492 1 sun/net/www/MessageHeader.grow
+ 311492 1 sun/net/www/ParseUtil.<clinit>
+ 311492 1 sun/net/www/URLConnection.<init>
+ 311492 1 sun/net/www/protocol/file/FileURLConnection.<clinit>
+ 311492 1 sun/net/www/protocol/file/FileURLConnection.<init>
+ 311492 1 sun/net/www/protocol/file/FileURLConnection.getPermission
+ 311492 1 sun/net/www/protocol/file/Handler.<init>
+ 311492 1 sun/net/www/protocol/file/Handler.createFileURLConnection
+ 311492 1 sun/nio/cs/FastCharsetProvider.<init>
+ 311492 1 sun/nio/cs/StandardCharsets$Aliases.init
+ 311492 1 sun/nio/cs/StandardCharsets$Cache.init
+ 311492 1 sun/nio/cs/StandardCharsets$Classes.init
+ 311492 1 sun/nio/cs/StandardCharsets.<clinit>
+ 311492 1 sun/nio/cs/StandardCharsets.<init>
+ 311492 1 sun/nio/cs/StreamDecoder.<clinit>
+ 311492 1 sun/nio/cs/StreamDecoder.close
+ 311492 1 sun/nio/cs/StreamDecoder.forInputStreamReader
+ 311492 1 sun/nio/cs/StreamDecoder.implClose
+ 311492 1 sun/nio/cs/StreamDecoder.inReady
+ 311492 1 sun/nio/cs/StreamEncoder.<clinit>
+ 311492 1 sun/nio/cs/Surrogate$Parser.<clinit>
+ 311492 1 sun/nio/cs/US_ASCII$Decoder.<clinit>
+ 311492 1 sun/nio/cs/US_ASCII$Encoder.<clinit>
+ 311492 1 sun/nio/cs/US_ASCII.<init>
+ 311492 1 sun/reflect/Reflection.<clinit>
+ 311492 1 sun/reflect/ReflectionFactory$1.<init>
+ 311492 1 sun/reflect/ReflectionFactory$1.run
+ 311492 1 sun/reflect/ReflectionFactory.<clinit>
+ 311492 1 sun/reflect/ReflectionFactory.<init>
+ 311492 1 sun/reflect/ReflectionFactory.access$202
+ 311492 1 sun/reflect/ReflectionFactory.setLangReflectAccess
+ 311492 1 sun/reflect/misc/ReflectUtil.ensureMemberAccess
+ 311492 1 sun/security/provider/PolicyFile.<clinit>
+ 311492 1 sun/security/util/Debug.<clinit>
+ 311492 2 java/io/BufferedInputStream.<init>
+ 311492 2 java/io/BufferedOutputStream.<init>
+ 311492 2 java/io/BufferedReader.<init>
+ 311492 2 java/io/BufferedReader.fill
+ 311492 2 java/io/ExpiringCache$1.<init>
+ 311492 2 java/io/File.list
+ 311492 2 java/io/FileInputStream.close
+ 311492 2 java/io/FileInputStream.close0
+ 311492 2 java/io/FileInputStream.open
+ 311492 2 java/io/FileOutputStream.<init>
+ 311492 2 java/io/FilePermission$1.<init>
+ 311492 2 java/io/FilePermission.<init>
+ 311492 2 java/io/FilePermission.getMask
+ 311492 2 java/io/FilePermission.init
+ 311492 2 java/io/FileSystem.getBooleanProperty
+ 311492 2 java/io/InputStreamReader.read
+ 311492 2 java/io/OutputStreamWriter.<init>
+ 311492 2 java/io/PrintStream.init
+ 311492 2 java/io/UnixFileSystem.list
+ 311492 2 java/lang/Character.charCount
+ 311492 2 java/lang/CharacterDataLatin1.toUpperCase
+ 311492 2 java/lang/Class$1.<init>
+ 311492 2 java/lang/Class$1.run
+ 311492 2 java/lang/Class.arrayContentsEq
+ 311492 2 java/lang/Class.getConstructor0
+ 311492 2 java/lang/Class.getDeclaredConstructors0
+ 311492 2 java/lang/Class.isInterface
+ 311492 2 java/lang/Class.privateGetDeclaredConstructors
+ 311492 2 java/lang/ClassLoader.<init>
+ 311492 2 java/lang/ClassLoader.initializePath
+ 311492 2 java/lang/ClassNotFoundException.<init>
+ 311492 2 java/lang/Object.clone
+ 311492 2 java/lang/Runtime.getRuntime
+ 311492 2 java/lang/String$CaseInsensitiveComparator.<init>
+ 311492 2 java/lang/String.concat
+ 311492 2 java/lang/String.regionMatches
+ 311492 2 java/lang/StringCoding$StringDecoder.<init>
+ 311492 2 java/lang/System.getProperties
+ 311492 2 java/lang/System.nullPrintStream
+ 311492 2 java/lang/System.setProperties
+ 311492 2 java/lang/Thread.isAlive
+ 311492 2 java/lang/Thread.setDaemon
+ 311492 2 java/lang/Thread.start
+ 311492 2 java/lang/Thread.start0
+ 311492 2 java/lang/ThreadGroup.<init>
+ 311492 2 java/lang/ref/Reference$Lock.<init>
+ 311492 2 java/lang/ref/Reference.access$100
+ 311492 2 java/lang/ref/ReferenceQueue.remove
+ 311492 2 java/lang/ref/SoftReference.get
+ 311492 2 java/lang/reflect/AccessibleObject.setAccessible
+ 311492 2 java/lang/reflect/AccessibleObject.setAccessible0
+ 311492 2 java/lang/reflect/Constructor.<init>
+ 311492 2 java/lang/reflect/Constructor.acquireConstructorAccessor
+ 311492 2 java/lang/reflect/Constructor.copy
+ 311492 2 java/lang/reflect/Constructor.getParameterTypes
+ 311492 2 java/lang/reflect/Modifier.isAbstract
+ 311492 2 java/lang/reflect/Modifier.isProtected
+ 311492 2 java/lang/reflect/ReflectAccess.copyConstructor
+ 311492 2 java/net/URL.set
+ 311492 2 java/net/URLClassLoader$1.<init>
+ 311492 2 java/net/URLClassLoader$1.run
+ 311492 2 java/net/URLClassLoader.<init>
+ 311492 2 java/net/URLClassLoader.findClass
+ 311492 2 java/net/URLStreamHandler.parseURL
+ 311492 2 java/net/URLStreamHandler.setURL
+ 311492 2 java/nio/ByteOrder.<init>
+ 311492 2 java/nio/CharBuffer.allocate
+ 311492 2 java/nio/HeapByteBuffer.compact
+ 311492 2 java/nio/charset/Charset.cache
+ 311492 2 java/nio/charset/CharsetDecoder.reset
+ 311492 2 java/nio/charset/CharsetEncoder.isLegalReplacement
+ 311492 2 java/nio/charset/CharsetEncoder.onMalformedInput
+ 311492 2 java/nio/charset/CharsetEncoder.onUnmappableCharacter
+ 311492 2 java/nio/charset/CharsetEncoder.replaceWith
+ 311492 2 java/nio/charset/CoderResult.<init>
+ 311492 2 java/nio/charset/CoderResult.isError
+ 311492 2 java/security/AccessControlContext.<init>
+ 311492 2 java/security/BasicPermission.getCanonicalName
+ 311492 2 java/security/CodeSource.getCertificates
+ 311492 2 java/security/CodeSource.hashCode
+ 311492 2 java/security/PermissionCollection.setReadOnly
+ 311492 2 java/security/Permissions.<init>
+ 311492 2 java/security/Permissions.add
+ 311492 2 java/security/Permissions.getPermissionCollection
+ 311492 2 java/security/SecureClassLoader.<init>
+ 311492 2 java/util/AbstractList.iterator
+ 311492 2 java/util/BitSet.ensureCapacity
+ 311492 2 java/util/Collections$EmptyList.<init>
+ 311492 2 java/util/Collections$EmptyMap.<init>
+ 311492 2 java/util/Collections$EmptySet.<init>
+ 311492 2 java/util/Collections$ReverseComparator.<init>
+ 311492 2 java/util/HashMap$KeySet.<init>
+ 311492 2 java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+ 311492 2 java/util/IdentityHashMap$KeySet.<init>
+ 311492 2 java/util/IdentityHashMap$KeySet.iterator
+ 311492 2 java/util/LinkedHashMap$KeyIterator.<init>
+ 311492 2 java/util/LinkedHashMap$LinkedHashIterator.<init>
+ 311492 2 java/util/Properties.<init>
+ 311492 2 java/util/StringTokenizer.setMaxDelimCodePoint
+ 311492 2 java/util/concurrent/ConcurrentHashMap.<init>
+ 311492 2 java/util/jar/JarFile.<init>
+ 311492 2 java/util/zip/Inflater.inflate
+ 311492 2 java/util/zip/Inflater.inflateBytes
+ 311492 2 java/util/zip/ZipEntry.<init>
+ 311492 2 java/util/zip/ZipFile$ZipFileInputStream.close
+ 311492 2 java/util/zip/ZipFile.freeEntry
+ 311492 2 java/util/zip/ZipFile.getInputStream
+ 311492 2 java/util/zip/ZipFile.getSize
+ 311492 2 sun/misc/FileURLMapper.getPath
+ 311492 2 sun/misc/Launcher$Factory.<init>
+ 311492 2 sun/misc/Launcher$Factory.createURLStreamHandler
+ 311492 2 sun/misc/Launcher.access$100
+ 311492 2 sun/misc/MetaIndex.registerDirectory
+ 311492 2 sun/misc/NativeSignalHandler.<init>
+ 311492 2 sun/misc/Resource.cachedInputStream
+ 311492 2 sun/misc/URLClassPath.<init>
+ 311492 2 sun/misc/URLClassPath.getResource
+ 311492 2 sun/misc/URLClassPath.push
+ 311492 2 sun/misc/VM.maxDirectMemory
+ 311492 2 sun/misc/Version.init
+ 311492 2 sun/net/www/protocol/file/Handler.openConnection
+ 311492 2 sun/net/www/protocol/file/Handler.parseURL
+ 311492 2 sun/net/www/protocol/jar/Handler.<init>
+ 311492 2 sun/nio/cs/FastCharsetProvider.charsetForName
+ 311492 2 sun/nio/cs/FastCharsetProvider.lookup
+ 311492 2 sun/nio/cs/FastCharsetProvider.toLower
+ 311492 2 sun/nio/cs/StandardCharsets$Aliases.<init>
+ 311492 2 sun/nio/cs/StandardCharsets$Cache.<init>
+ 311492 2 sun/nio/cs/StandardCharsets$Classes.<init>
+ 311492 2 sun/nio/cs/StreamDecoder.<init>
+ 311492 2 sun/nio/cs/StreamDecoder.ensureOpen
+ 311492 2 sun/nio/cs/StreamDecoder.implRead
+ 311492 2 sun/nio/cs/StreamDecoder.read
+ 311492 2 sun/nio/cs/StreamDecoder.readBytes
+ 311492 2 sun/nio/cs/StreamEncoder.forOutputStreamWriter
+ 311492 2 sun/nio/cs/Surrogate$Parser.<init>
+ 311492 2 sun/nio/cs/US_ASCII.newEncoder
+ 311492 2 sun/reflect/DelegatingConstructorAccessorImpl.<init>
+ 311492 2 sun/reflect/DelegatingConstructorAccessorImpl.setDelegate
+ 311492 2 sun/reflect/NativeConstructorAccessorImpl.<init>
+ 311492 2 sun/reflect/NativeConstructorAccessorImpl.setParent
+ 311492 2 sun/reflect/Reflection.ensureMemberAccess
+ 311492 2 sun/reflect/Reflection.isSubclassOf
+ 311492 2 sun/reflect/Reflection.verifyMemberAccess
+ 311492 2 sun/reflect/ReflectionFactory.checkInitted
+ 311492 2 sun/reflect/ReflectionFactory.copyConstructor
+ 311492 2 sun/reflect/ReflectionFactory.newConstructorAccessor
+ 311492 2 sun/reflect/misc/ReflectUtil.checkPackageAccess
+ 311492 2 sun/security/provider/PolicyFile.canonPath
+ 311492 2 sun/util/PreHashedMap.put
+ 311492 3 java/io/BufferedWriter.newLine
+ 311492 3 java/io/FileInputStream.<init>
+ 311492 3 java/io/FileInputStream.read
+ 311492 3 java/io/FileInputStream.readBytes
+ 311492 3 java/io/FilterInputStream.<init>
+ 311492 3 java/io/PrintStream.newLine
+ 311492 3 java/io/PrintStream.print
+ 311492 3 java/io/PrintStream.println
+ 311492 3 java/io/Reader.<init>
+ 311492 3 java/lang/Boolean.<init>
+ 311492 3 java/lang/Class$3.<init>
+ 311492 3 java/lang/Class$3.run
+ 311492 3 java/lang/Class.forName
+ 311492 3 java/lang/Class.forName0
+ 311492 3 java/lang/Class.newInstance
+ 311492 3 java/lang/Class.newInstance0
+ 311492 3 java/lang/Exception.<init>
+ 311492 3 java/lang/Integer.<init>
+ 311492 3 java/lang/Object.wait
+ 311492 3 java/lang/RuntimePermission.<init>
+ 311492 3 java/lang/Shutdown.add
+ 311492 3 java/lang/Thread.sleep
+ 311492 3 java/lang/ThreadLocal.<init>
+ 311492 3 java/lang/ThreadLocal.getMap
+ 311492 3 java/lang/ThreadLocal.nextHashCode
+ 311492 3 java/lang/ref/WeakReference.<init>
+ 311492 3 java/lang/reflect/Constructor.newInstance
+ 311492 3 java/net/URLStreamHandler.<init>
+ 311492 3 java/nio/ByteBuffer.allocate
+ 311492 3 java/nio/charset/Charset.defaultCharset
+ 311492 3 java/nio/charset/Charset.lookup2
+ 311492 3 java/nio/charset/CharsetDecoder.maxCharsPerByte
+ 311492 3 java/nio/charset/CodingErrorAction.<init>
+ 311492 3 java/util/AbstractList$Itr.checkForComodification
+ 311492 3 java/util/AbstractList$Itr.next
+ 311492 3 java/util/ArrayList.clear
+ 311492 3 java/util/HashSet.<init>
+ 311492 3 java/util/Hashtable.rehash
+ 311492 3 java/util/LinkedHashMap.<init>
+ 311492 3 java/util/LinkedHashMap.init
+ 311492 3 java/util/Stack.<init>
+ 311492 3 java/util/StringTokenizer.nextToken
+ 311492 3 java/util/concurrent/atomic/AtomicInteger.compareAndSet
+ 311492 3 java/util/concurrent/atomic/AtomicInteger.getAndAdd
+ 311492 3 java/util/jar/JarFile.getEntry
+ 311492 3 java/util/jar/JarFile.getJarEntry
+ 311492 3 java/util/zip/ZipFile.access$300
+ 311492 3 sun/misc/Signal.<init>
+ 311492 3 sun/misc/Signal.findSignal
+ 311492 3 sun/misc/Signal.handle
+ 311492 3 sun/misc/Signal.handle0
+ 311492 3 sun/misc/URLClassPath$JarLoader.ensureOpen
+ 311492 3 sun/reflect/DelegatingConstructorAccessorImpl.newInstance
+ 311492 3 sun/reflect/NativeConstructorAccessorImpl.newInstance
+ 311492 3 sun/reflect/NativeConstructorAccessorImpl.newInstance0
+ 311492 3 sun/reflect/Reflection.getClassAccessFlags
+ 311492 3 sun/reflect/Reflection.quickCheckMemberAccess
+ 311492 3 sun/reflect/ReflectionFactory.inflationThreshold
+ 311492 3 sun/util/PreHashedMap.<init>
+ 311492 4 java/io/BufferedWriter.<init>
+ 311492 4 java/io/ExpiringCache$Entry.timestamp
+ 311492 4 java/io/ExpiringCache.<init>
+ 311492 4 java/io/File.compareTo
+ 311492 4 java/io/File.equals
+ 311492 4 java/io/FilePermission$1.run
+ 311492 4 java/io/FilterOutputStream.<init>
+ 311492 4 java/io/PrintStream.<init>
+ 311492 4 java/io/UnixFileSystem.compare
+ 311492 4 java/lang/Character.toUpperCase
+ 311492 4 java/lang/Class.getDeclaredFields0
+ 311492 4 java/lang/Number.<init>
+ 311492 4 java/lang/Shutdown$Lock.<init>
+ 311492 4 java/lang/String.compareTo
+ 311492 4 java/lang/ThreadGroup.getParent
+ 311492 4 java/lang/Throwable.<init>
+ 311492 4 java/lang/Throwable.fillInStackTrace
+ 311492 4 java/lang/ref/ReferenceQueue$Null.<init>
+ 311492 4 java/lang/ref/ReferenceQueue.<init>
+ 311492 4 java/lang/reflect/Array.newArray
+ 311492 4 java/lang/reflect/Array.newInstance
+ 311492 4 java/lang/reflect/Constructor.setConstructorAccessor
+ 311492 4 java/lang/reflect/Modifier.isPublic
+ 311492 4 java/nio/HeapByteBuffer.ix
+ 311492 4 java/nio/charset/Charset.forName
+ 311492 4 java/nio/charset/CharsetDecoder.onMalformedInput
+ 311492 4 java/nio/charset/CharsetDecoder.onUnmappableCharacter
+ 311492 4 java/nio/charset/CharsetDecoder.replaceWith
+ 311492 4 java/nio/charset/CharsetEncoder.<init>
+ 311492 4 java/nio/charset/CoderResult$Cache.<init>
+ 311492 4 java/security/BasicPermission.<init>
+ 311492 4 java/security/BasicPermission.init
+ 311492 4 java/util/AbstractList$Itr.<init>
+ 311492 4 java/util/ArrayList.toArray
+ 311492 4 java/util/Collections$SynchronizedMap.get
+ 311492 4 java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+ 311492 4 java/util/IdentityHashMap$KeyIterator.<init>
+ 311492 4 java/util/LinkedHashMap$Entry.recordAccess
+ 311492 4 java/util/StringTokenizer.<init>
+ 311492 4 java/util/zip/ZipFile.ensureOpen
+ 311492 4 sun/misc/MetaIndex.<init>
+ 311492 4 sun/misc/MetaIndex.mayContain
+ 311492 4 sun/nio/cs/FastCharsetProvider.canonicalize
+ 311492 4 sun/nio/cs/StreamEncoder.<init>
+ 311492 4 sun/nio/cs/US_ASCII$Encoder.<init>
+ 311492 4 sun/nio/cs/US_ASCII.newDecoder
+ 311492 4 sun/reflect/ConstructorAccessorImpl.<init>
+ 311492 4 sun/reflect/MagicAccessorImpl.<init>
+ 311492 4 sun/reflect/Reflection.filterFields
+ 311492 4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction.<init>
+ 311492 4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction.run
+ 311492 4 sun/reflect/ReflectionFactory.getReflectionFactory
+ 311492 4 sun/security/util/Debug.isOn
+ 311492 5 java/io/FileDescriptor.<init>
+ 311492 5 java/lang/Class.getModifiers
+ 311492 5 java/lang/Class.getName0
+ 311492 5 java/lang/String.valueOf
+ 311492 5 java/nio/ByteBuffer.wrap
+ 311492 5 java/nio/charset/Charset.isSupported
+ 311492 5 java/security/PermissionCollection.<init>
+ 311492 5 java/util/AbstractList$Itr.hasNext
+ 311492 5 java/util/Hashtable.remove
+ 311492 5 java/util/StringTokenizer.scanToken
+ 311492 5 java/util/StringTokenizer.skipDelimiters
+ 311492 5 sun/misc/MetaIndex.forJar
+ 311492 5 sun/misc/URLClassPath$JarLoader.<init>
+ 311492 5 sun/misc/URLClassPath$JarLoader.getClassPath
+ 311492 5 sun/misc/URLClassPath$JarLoader.getResource
+ 311492 5 sun/misc/Unsafe.getUnsafe
+ 311492 5 sun/util/PreHashedMap.toV
+ 311492 6 java/io/BufferedOutputStream.write
+ 311492 6 java/io/BufferedWriter.flushBuffer
+ 311492 6 java/io/BufferedWriter.min
+ 311492 6 java/io/BufferedWriter.write
+ 311492 6 java/io/File.getAbsolutePath
+ 311492 6 java/io/FileOutputStream.write
+ 311492 6 java/io/FileOutputStream.writeBytes
+ 311492 6 java/io/OutputStream.<init>
+ 311492 6 java/io/OutputStreamWriter.flushBuffer
+ 311492 6 java/io/OutputStreamWriter.write
+ 311492 6 java/io/UnixFileSystem.canonicalize0
+ 311492 6 java/io/Writer.<init>
+ 311492 6 java/io/Writer.write
+ 311492 6 java/lang/Class.checkMemberAccess
+ 311492 6 java/lang/Class.getComponentType
+ 311492 6 java/lang/Class.getDeclaredField
+ 311492 6 java/lang/Class.getName
+ 311492 6 java/lang/Class.getSuperclass
+ 311492 6 java/lang/Class.privateGetDeclaredFields
+ 311492 6 java/lang/Class.searchFields
+ 311492 6 java/lang/ThreadGroup.add
+ 311492 6 java/lang/reflect/Field.<init>
+ 311492 6 java/lang/reflect/Field.copy
+ 311492 6 java/lang/reflect/ReflectAccess.copyField
+ 311492 6 java/net/URL.getURLStreamHandler
+ 311492 6 java/net/URL.toExternalForm
+ 311492 6 java/net/URL.toString
+ 311492 6 java/net/URLStreamHandler.getDefaultPort
+ 311492 6 java/net/URLStreamHandler.getHostAddress
+ 311492 6 java/net/URLStreamHandler.hashCode
+ 311492 6 java/net/URLStreamHandler.toExternalForm
+ 311492 6 java/nio/Bits.byteOrder
+ 311492 6 java/nio/Buffer.clear
+ 311492 6 java/nio/ByteBuffer.<init>
+ 311492 6 java/nio/HeapByteBuffer.<init>
+ 311492 6 java/nio/charset/CharsetDecoder.decode
+ 311492 6 java/nio/charset/CharsetEncoder.encode
+ 311492 6 java/security/Permission.<init>
+ 311492 6 java/util/AbstractSet.<init>
+ 311492 6 java/util/HashMap.containsKey
+ 311492 6 java/util/Vector.add
+ 311492 6 java/util/concurrent/ConcurrentHashMap$Segment.rehash
+ 311492 6 sun/misc/Launcher.getFileURL
+ 311492 6 sun/misc/MetaIndex.getJarMap
+ 311492 6 sun/misc/URLClassPath$3.<init>
+ 311492 6 sun/misc/URLClassPath$3.run
+ 311492 6 sun/misc/URLClassPath$JarLoader.isOptimizable
+ 311492 6 sun/misc/URLClassPath$Loader.<init>
+ 311492 6 sun/misc/Unsafe.objectFieldOffset
+ 311492 6 sun/net/www/ParseUtil.fileToEncodedURL
+ 311492 6 sun/nio/cs/StreamEncoder.ensureOpen
+ 311492 6 sun/nio/cs/StreamEncoder.flushBuffer
+ 311492 6 sun/nio/cs/StreamEncoder.implFlushBuffer
+ 311492 6 sun/nio/cs/StreamEncoder.implWrite
+ 311492 6 sun/nio/cs/StreamEncoder.write
+ 311492 6 sun/nio/cs/StreamEncoder.writeBytes
+ 311492 6 sun/nio/cs/US_ASCII$Decoder.decodeArrayLoop
+ 311492 6 sun/nio/cs/US_ASCII$Decoder.decodeLoop
+ 311492 6 sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+ 311492 6 sun/nio/cs/US_ASCII$Encoder.encodeLoop
+ 311492 6 sun/reflect/ReflectionFactory.copyField
+ 311492 7 java/io/File.getCanonicalFile
+ 311492 7 java/io/InputStream.<init>
+ 311492 7 java/lang/ClassLoader.checkPackageAccess
+ 311492 7 java/lang/ref/SoftReference.<init>
+ 311492 7 java/util/Dictionary.<init>
+ 311492 7 java/util/HashSet.add
+ 311492 7 java/util/Stack.empty
+ 311492 7 java/util/Stack.pop
+ 311492 7 java/util/Stack.push
+ 311492 7 java/util/Vector.removeElementAt
+ 311492 7 java/util/zip/ZipFile.getEntry
+ 311492 7 sun/util/PreHashedMap.get
+ 311492 8 java/lang/Class.checkInitted
+ 311492 8 java/lang/Class.clearCachesOnClassRedefinition
+ 311492 8 java/lang/Class.getPrimitiveClass
+ 311492 8 java/lang/Class.getReflectionFactory
+ 311492 8 java/lang/Object.getClass
+ 311492 8 java/lang/System.setProperty
+ 311492 8 java/lang/Thread.<init>
+ 311492 8 java/lang/Thread.getContextClassLoader
+ 311492 8 java/lang/Thread.init
+ 311492 8 java/lang/Thread.nextThreadID
+ 311492 8 java/lang/ThreadGroup.addUnstarted
+ 311492 8 java/lang/ref/FinalReference.<init>
+ 311492 8 java/lang/ref/Finalizer.<init>
+ 311492 8 java/lang/ref/Finalizer.add
+ 311492 8 java/lang/ref/Finalizer.register
+ 311492 8 java/lang/ref/ReferenceQueue$Lock.<init>
+ 311492 8 java/lang/reflect/AccessibleObject.<init>
+ 311492 8 java/nio/charset/CharsetDecoder.<init>
+ 311492 8 java/security/AccessControlContext.optimize
+ 311492 8 java/security/AccessController.getInheritedAccessControlContext
+ 311492 8 java/util/Properties.setProperty
+ 311492 8 java/util/Stack.peek
+ 311492 8 sun/nio/cs/US_ASCII$Decoder.<init>
+ 311492 8 sun/reflect/ReflectionFactory.langReflectAccess
+ 311492 8 sun/security/util/Debug.getInstance
+ 311492 9 java/io/BufferedOutputStream.flush
+ 311492 9 java/io/BufferedOutputStream.flushBuffer
+ 311492 9 java/io/File.hashCode
+ 311492 9 java/io/File.isDirectory
+ 311492 9 java/io/PrintStream.write
+ 311492 9 java/io/UnixFileSystem.hashCode
+ 311492 9 java/lang/ClassLoader.findBootstrapClass
+ 311492 9 java/lang/ClassLoader.findBootstrapClass0
+ 311492 9 java/lang/ClassLoader.getCallerClassLoader
+ 311492 9 java/lang/ClassLoader.loadClassInternal
+ 311492 9 java/lang/StringBuffer.<init>
+ 311492 9 java/lang/StringBuffer.toString
+ 311492 9 java/nio/Buffer.flip
+ 311492 9 java/util/ArrayList.RangeCheck
+ 311492 9 java/util/ArrayList.get
+ 311492 9 sun/misc/Launcher$AppClassLoader.loadClass
+ 311492 9 sun/net/www/ParseUtil.decode
+ 311492 9 sun/net/www/ParseUtil.lowMask
+ 311492 10 java/io/File.getCanonicalPath
+ 311492 10 java/io/ObjectStreamClass.getClassSignature
+ 311492 10 java/io/UnixFileSystem.canonicalize
+ 311492 10 java/lang/Class.isPrimitive
+ 311492 10 java/lang/Thread.setPriority
+ 311492 10 java/lang/Thread.setPriority0
+ 311492 10 java/nio/CharBuffer.wrap
+ 311492 10 java/nio/charset/Charset.lookup
+ 311492 10 java/security/AccessController.getContext
+ 311492 10 java/security/AccessController.getStackAccessControlContext
+ 311492 10 java/util/Vector.addElement
+ 311492 11 java/lang/String.replace
+ 311492 11 java/lang/ThreadGroup.checkAccess
+ 311492 11 java/net/Parts.<init>
+ 311492 11 java/nio/CharBuffer.<init>
+ 311492 11 java/nio/HeapCharBuffer.<init>
+ 311492 12 java/io/BufferedWriter.ensureOpen
+ 311492 12 java/io/ExpiringCache$1.removeEldestEntry
+ 311492 12 java/io/ExpiringCache$Entry.<init>
+ 311492 12 java/io/ExpiringCache.put
+ 311492 12 java/io/File.exists
+ 311492 12 java/io/PrintStream.ensureOpen
+ 311492 12 java/lang/Class.isArray
+ 311492 12 java/lang/Thread.checkAccess
+ 311492 12 java/nio/ByteBuffer.hasArray
+ 311492 12 java/nio/CharBuffer.array
+ 311492 12 java/nio/CharBuffer.hasArray
+ 311492 12 java/nio/charset/CoderResult.isOverflow
+ 311492 12 java/util/HashMap.get
+ 311492 12 java/util/LinkedHashMap$Entry.access$600
+ 311492 12 java/util/LinkedHashMap$Entry.addBefore
+ 311492 12 java/util/LinkedHashMap.addEntry
+ 311492 12 java/util/LinkedHashMap.createEntry
+ 311492 12 sun/net/www/ParseUtil.highMask
+ 311492 13 java/io/UnixFileSystem.parentOrNull
+ 311492 13 java/nio/Buffer.hasRemaining
+ 311492 13 java/nio/Buffer.remaining
+ 311492 13 sun/misc/URLClassPath.getLoader
+ 311492 13 sun/net/www/ParseUtil.encodePath
+ 311492 14 java/lang/Float.isNaN
+ 311492 14 java/net/URL.hashCode
+ 311492 14 java/util/Hashtable.<init>
+ 311492 15 java/lang/Object.hashCode
+ 311492 15 java/nio/charset/Charset.checkName
+ 311492 15 java/util/ArrayList.<init>
+ 311492 15 java/util/HashMap.addEntry
+ 311492 15 java/util/LinkedHashMap$Entry.<init>
+ 311492 16 java/io/UnixFileSystem.isAbsolute
+ 311492 16 java/lang/ClassLoader$NativeLibrary.find
+ 311492 16 java/lang/String.intern
+ 311492 16 java/util/Vector.ensureCapacityHelper
+ 311492 16 java/util/concurrent/ConcurrentHashMap$Segment.<init>
+ 311492 16 java/util/concurrent/ConcurrentHashMap$Segment.setTable
+ 311492 16 java/util/concurrent/locks/AbstractOwnableSynchronizer.<init>
+ 311492 16 java/util/concurrent/locks/AbstractQueuedSynchronizer.<init>
+ 311492 16 java/util/concurrent/locks/ReentrantLock$NonfairSync.<init>
+ 311492 16 java/util/concurrent/locks/ReentrantLock$Sync.<init>
+ 311492 16 java/util/concurrent/locks/ReentrantLock.<init>
+ 311492 16 sun/reflect/Reflection.getCallerClass
+ 311492 17 java/lang/ClassLoader.findNative
+ 311492 17 java/lang/Math.max
+ 311492 17 java/lang/String.toCharArray
+ 311492 17 java/nio/Buffer.<init>
+ 311492 17 java/util/Locale.getDefault
+ 311492 17 sun/security/action/GetPropertyAction.<init>
+ 311492 18 java/io/ExpiringCache.get
+ 311492 18 java/lang/Class.desiredAssertionStatus
+ 311492 18 java/lang/Class.desiredAssertionStatus0
+ 311492 18 java/lang/ClassLoader.findLoadedClass
+ 311492 18 java/lang/ClassLoader.findLoadedClass0
+ 311492 19 java/io/BufferedReader.ensureOpen
+ 311492 19 java/lang/System.currentTimeMillis
+ 311492 19 java/nio/Buffer.limit
+ 311492 19 java/util/Locale.<init>
+ 311492 19 java/util/Locale.createSingleton
+ 311492 19 java/util/concurrent/ConcurrentHashMap$Segment.put
+ 311492 19 java/util/concurrent/ConcurrentHashMap.put
+ 311492 19 java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState
+ 311492 19 java/util/concurrent/locks/AbstractQueuedSynchronizer.release
+ 311492 19 java/util/concurrent/locks/AbstractQueuedSynchronizer.setState
+ 311492 19 java/util/concurrent/locks/ReentrantLock$NonfairSync.lock
+ 311492 19 java/util/concurrent/locks/ReentrantLock$Sync.tryRelease
+ 311492 19 java/util/concurrent/locks/ReentrantLock.lock
+ 311492 19 java/util/concurrent/locks/ReentrantLock.unlock
+ 311492 20 java/io/ObjectStreamField.<init>
+ 311492 20 java/nio/ByteBuffer.array
+ 311492 20 java/util/AbstractList.<init>
+ 311492 20 java/util/BitSet.get
+ 311492 20 java/util/concurrent/ConcurrentHashMap.hash
+ 311492 20 java/util/concurrent/ConcurrentHashMap.segmentFor
+ 311492 20 sun/misc/VM.isBooted
+ 311492 21 java/io/File.getName
+ 311492 21 java/io/UnixFileSystem.getBooleanAttributes
+ 311492 21 java/io/UnixFileSystem.getBooleanAttributes0
+ 311492 21 java/lang/StringBuffer.append
+ 311492 21 java/nio/charset/Charset.atBugLevel
+ 311492 22 java/util/concurrent/ConcurrentHashMap$HashEntry.newArray
+ 311492 22 sun/misc/Unsafe.compareAndSwapInt
+ 311492 23 java/util/HashMap.<init>
+ 311492 23 java/util/concurrent/ConcurrentHashMap$HashEntry.<init>
+ 311492 24 java/nio/charset/CoderResult.isUnderflow
+ 311492 24 java/util/AbstractMap.<init>
+ 311492 24 java/util/Vector.elementAt
+ 311492 25 java/lang/Class.getClassLoader
+ 311492 26 java/util/AbstractCollection.<init>
+ 311492 26 java/util/ArrayList.add
+ 311492 26 java/util/ArrayList.ensureCapacity
+ 311492 27 java/lang/ClassLoader.loadClass
+ 311492 27 java/net/URL.<init>
+ 311492 28 java/lang/ClassLoader.check
+ 311492 28 java/lang/ClassLoader.checkName
+ 311492 28 java/lang/ref/Reference.<init>
+ 311492 29 java/lang/String.endsWith
+ 311492 29 sun/misc/VM.allowArraySyntax
+ 311492 30 java/io/ExpiringCache.entryFor
+ 311492 30 java/io/UnixFileSystem.resolve
+ 311492 30 java/util/HashMap$Entry.<init>
+ 311492 30 java/util/LinkedHashMap.get
+ 311492 33 java/util/HashMap.put
+ 311492 33 java/util/Vector.<init>
+ 311492 34 java/io/UnixFileSystem.normalize
+ 311492 34 java/lang/Class.getClassLoader0
+ 311492 34 java/lang/String.toLowerCase
+ 311492 34 sun/security/action/GetPropertyAction.run
+ 311492 36 java/nio/CharBuffer.arrayOffset
+ 311492 36 java/util/HashMap.getEntry
+ 311492 37 java/io/File.<init>
+ 311492 37 java/io/UnixFileSystem.prefixLength
+ 311492 38 java/io/BufferedReader.readLine
+ 311492 38 java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread
+ 311492 41 java/lang/CharacterDataLatin1.toLowerCase
+ 311492 43 java/lang/CharacterDataLatin1.getProperties
+ 311492 43 java/security/AccessController.doPrivileged
+ 311492 43 java/util/Vector.size
+ 311492 44 java/nio/Buffer.position
+ 311492 44 java/nio/ByteBuffer.arrayOffset
+ 311492 48 java/lang/System.getProperty
+ 311492 50 java/util/Properties.getProperty
+ 311492 51 java/util/BitSet.expandTo
+ 311492 51 java/util/BitSet.set
+ 311492 56 java/lang/System.checkKey
+ 311492 57 java/lang/Thread.currentThread
+ 311492 57 java/util/Hashtable$Entry.<init>
+ 311492 59 java/util/Hashtable.get
+ 311492 63 java/util/Hashtable.put
+ 311492 71 java/util/BitSet.checkInvariants
+ 311492 72 java/util/BitSet.wordIndex
+ 311492 73 java/lang/StringBuilder.<init>
+ 311492 73 java/lang/StringBuilder.toString
+ 311492 81 java/lang/AbstractStringBuilder.expandCapacity
+ 311492 81 java/util/HashMap.hash
+ 311492 81 java/util/HashMap.indexFor
+ 311492 82 java/lang/AbstractStringBuilder.<init>
+ 311492 82 java/lang/Character.toLowerCase
+ 311492 83 java/lang/String.startsWith
+ 311492 87 java/util/Arrays.copyOf
+ 311492 90 java/lang/String.lastIndexOf
+ 311492 94 java/lang/String.substring
+ 311492 107 java/util/Arrays.copyOfRange
+ 311492 156 java/lang/String.getChars
+ 311492 174 java/lang/System.getSecurityManager
+ 311492 175 java/lang/String.<init>
+ 311492 202 java/lang/String.equals
+ 311492 208 java/lang/Math.min
+ 311492 213 java/lang/String.hashCode
+ 311492 302 java/lang/String.indexOf
+ 311492 360 java/lang/System.arraycopy
+ 311492 533 java/lang/StringBuilder.append
+ 311492 549 java/lang/AbstractStringBuilder.append
+ 311492 823 java/lang/Object.<init>
+ 311492 1960 java/lang/String.charAt
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt
new file mode 100644
index 000000000000..433c38fcd880
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt
@@ -0,0 +1,1460 @@
+The following are examples of j_objnew.d.
+
+This traces activity of object allocation by Java. It will print a histogram
+of the byte size of allocation of different type, followed by a count of each
+type of allocation.
+
+Here you can see it running on Code/Java/Func_abc
+
+# j_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Java object allocation byte distributions by pid and class,
+
+ 311496 java/io/Console$1
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/io/DeleteOnExitHook
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/io/File$1
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/ApplicationShutdownHooks
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/Compiler$1
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/Runtime
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/String$CaseInsensitiveComparator
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/System$2
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/Terminator$1
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/ref/Reference$Lock
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/lang/reflect/ReflectAccess
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/net/URLClassLoader$7
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/net/UnknownContentHandler
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/util/Collections$EmptySet
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/util/Collections$ReverseComparator
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/util/Hashtable$EmptyEnumerator
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/util/Hashtable$EmptyIterator
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 java/util/jar/JavaUtilJarAccessImpl
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 sun/misc/Launcher$Factory
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 sun/misc/Unsafe
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 sun/net/www/protocol/file/Handler
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 sun/reflect/ReflectionFactory
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 sun/reflect/ReflectionFactory$1
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ 311496 [Ljava/lang/StackTraceElement;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 [Ljava/security/Principal;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 [Ljava/security/cert/Certificate;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/io/Console$1$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/io/FilePermissionCollection
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/io/FileReader
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/io/UnixFileSystem
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/ArithmeticException
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/ClassLoader$3
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/NoSuchMethodError
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/NullPointerException
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/Shutdown$Lock
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 | 0
+
+ 311496 java/lang/StringCoding$StringDecoder
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/SystemClassLoaderAction
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/ThreadLocal$ThreadLocalMap
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/VirtualMachineError
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/reflect/ReflectPermission
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/nio/charset/CoderResult$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/nio/charset/CoderResult$2
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/security/BasicPermissionCollection
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/security/Policy$UnsupportedEmptyCollection
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/BitSet
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/Collections$EmptyList
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/Collections$EmptyMap
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/HashMap$KeySet
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/IdentityHashMap$KeySet
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/LinkedHashSet
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/util/concurrent/atomic/AtomicInteger
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/misc/FileURLMapper
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/misc/Launcher
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/misc/Launcher$AppClassLoader$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/misc/Launcher$ExtClassLoader$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/misc/URLClassPath$FileLoader
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/misc/URLClassPath$JarLoader$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/net/www/MessageHeader
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/net/www/protocol/jar/Handler
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 | 0
+
+ 311496 sun/nio/cs/StandardCharsets
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 sun/nio/cs/US_ASCII
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ 311496 java/lang/Class$3
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 16 | 0
+
+ 311496 [J
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 [Ljava/io/File;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 [Ljava/lang/OutOfMemoryError;
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 [Ljava/lang/ThreadGroup;
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 [Ljava/lang/reflect/Constructor;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/io/BufferedInputStream
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/io/BufferedOutputStream
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/io/BufferedReader
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/io/DataInputStream
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/io/FileOutputStream
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/io/FilePermission$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/io/OutputStreamWriter
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/lang/Class$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/lang/ClassLoader$NativeLibrary
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/lang/ThreadLocal$ThreadLocalMap$Entry
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/lang/ref/ReferenceQueue
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/lang/ref/ReferenceQueue$Lock
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 16 | 0
+
+ 311496 java/lang/ref/ReferenceQueue$Null
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/lang/ref/WeakReference
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/net/URLClassLoader$1
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/nio/ByteOrder
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/nio/charset/CoderResult
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/security/CodeSource
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/security/Permissions
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/security/PrivilegedActionException
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/security/ProtectionDomain
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/AbstractList$Itr
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/util/Collections$SynchronizedMap
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/HashSet
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 java/util/IdentityHashMap
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/LinkedHashMap
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/LinkedHashMap$KeyIterator
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/Properties
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/concurrent/ConcurrentHashMap
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/jar/JarFile
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/zip/Inflater
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/zip/ZipFile$1
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/util/zip/ZipFile$ZipFileInputStream
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/misc/NativeSignalHandler
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 sun/misc/SoftCache
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/misc/URLClassPath$FileLoader$1
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/nio/cs/StandardCharsets$Aliases
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/nio/cs/StandardCharsets$Cache
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/nio/cs/StandardCharsets$Classes
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/nio/cs/StreamDecoder
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 sun/nio/cs/Surrogate$Parser
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 sun/reflect/DelegatingConstructorAccessorImpl
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 sun/reflect/NativeConstructorAccessorImpl
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ 311496 sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 16 | 0
+
+ 311496 [Ljava/net/URL;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 |@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ 311496 java/io/FileInputStream
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 java/lang/Boolean
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 java/lang/Integer
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 java/lang/RuntimePermission
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 java/lang/ThreadLocal
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 java/nio/charset/CodingErrorAction
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 java/util/Stack
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 sun/misc/Signal
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ 311496 [Ljava/lang/Thread;
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 [Ljava/lang/annotation/Annotation;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 32 | 0
+
+ 311496 [Ljava/util/concurrent/ConcurrentHashMap$Segment;
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 java/io/BufferedWriter
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/io/ExpiringCache
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/io/ExpiringCache$1
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/io/FilePermission
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/io/PrintStream
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/lang/ClassNotFoundException
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/lang/ThreadGroup
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/lang/ref/Finalizer$FinalizerThread
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 java/lang/ref/Reference$ReferenceHandler
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 java/lang/reflect/Method
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 java/util/IdentityHashMap$KeyIterator
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/util/StringTokenizer
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/util/jar/JarFile$JarFileEntry
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 java/util/zip/ZipEntry
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 sun/misc/Launcher$AppClassLoader
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 sun/misc/Launcher$ExtClassLoader
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 sun/misc/MetaIndex
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 32 | 0
+
+ 311496 sun/misc/URLClassPath
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 sun/net/www/protocol/file/FileURLConnection
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ 311496 sun/nio/cs/StreamEncoder
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 sun/nio/cs/US_ASCII$Encoder
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ 311496 java/io/FileDescriptor
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 32 | 0
+
+ 311496 sun/misc/URLClassPath$3
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 32 | 0
+
+ 311496 [Ljava/io/ObjectStreamField;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 32 | 0
+
+ 311496 [Ljava/lang/reflect/Field;
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 64 | 0
+
+ 311496 java/lang/Object
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 16 | 0
+
+ 311496 java/lang/OutOfMemoryError
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 32 | 0
+
+ 311496 java/util/ArrayList
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 32 | 0
+
+ 311496 java/util/Vector
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 32 | 0
+
+ 311496 sun/nio/cs/US_ASCII$Decoder
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 64 | 0
+
+ 311496 java/lang/StringBuffer
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9
+ 32 | 0
+
+ 311496 java/security/AccessControlContext
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 32 | 0
+
+ 311496 sun/misc/URLClassPath$JarLoader
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 64 | 0
+
+ 311496 java/net/Parts
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11
+ 32 | 0
+
+ 311496 [Ljava/lang/Class;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12
+ 32 | 0
+
+ 311496 java/io/ExpiringCache$Entry
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 12
+ 32 | 0
+
+ 311496 java/nio/HeapByteBuffer
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 64 | 0
+
+ 311496 java/util/Hashtable
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 64 | 0
+
+ 311496 java/lang/ref/SoftReference
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7
+ 64 | 0
+
+ 311496 java/util/HashMap$Entry
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15
+ 32 | 0
+
+ 311496 java/lang/ref/Finalizer
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 64 | 0
+
+ 311496 java/lang/reflect/Constructor
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 128 | 0
+
+ 311496 java/util/concurrent/locks/ReentrantLock$NonfairSync
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 32 | 0
+
+ 311496 sun/security/action/GetPropertyAction
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17
+ 32 | 0
+
+ 311496 java/io/ObjectStreamField
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 64 | 0
+
+ 311496 java/nio/HeapCharBuffer
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11
+ 64 | 0
+
+ 311496 java/util/concurrent/ConcurrentHashMap$HashEntry
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 23
+ 32 | 0
+
+ 311496 java/lang/Thread
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 128 | 0
+
+ 311496 java/net/URL
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13
+ 64 | 0
+
+ 311496 java/util/HashMap
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 64 | 0
+
+ 311496 java/util/LinkedHashMap$Entry
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15
+ 64 | 0
+
+ 311496 [Ljava/util/concurrent/ConcurrentHashMap$HashEntry;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 32 |@@@@@@@ 4
+ 64 |@@@@ 2
+ 128 | 0
+
+ 311496 java/util/concurrent/ConcurrentHashMap$Segment
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 64 | 0
+
+ 311496 java/io/File
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37
+ 32 | 0
+
+ 311496 java/util/Locale
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 19
+ 64 | 0
+
+ 311496 [Ljava/util/Hashtable$Entry;
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7
+ 64 |@@@@ 1
+ 128 |@@@@ 1
+ 256 |@@@@ 1
+ 512 | 0
+
+ 311496 java/util/Hashtable$Entry
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 57
+ 32 | 0
+
+ 311496 [Ljava/util/HashMap$Entry;
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17
+ 128 | 0
+
+ 311496 java/lang/StringBuilder
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 73
+ 32 | 0
+
+ 311496 [Ljava/lang/String;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@ 26
+ 32 |@@@@@@@@@@@@@@@ 22
+ 64 |@@@@@@ 9
+ 128 | 0
+
+ 311496 java/lang/reflect/Field
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 37
+ 128 | 0
+
+ 311496 [Ljava/lang/Object;
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 296
+ 32 |@@ 18
+ 64 | 0
+ 128 |@ 10
+ 256 | 1
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 1
+ 8192 | 0
+
+ 311496 java/lang/String
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 931
+ 32 | 0
+
+ 311496 [S
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 161
+ 32 |@@@@@@@@@@@@@@@@ 189
+ 64 |@@@@@@@ 82
+ 128 |@@@ 38
+ 256 |@ 12
+ 512 | 4
+ 1024 | 0
+
+ 311496 [[I
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 270
+ 32 |@@@@@@@@@@ 129
+ 64 |@@@@@@ 85
+ 128 |@@@ 34
+ 256 |@@ 22
+ 512 | 1
+ 1024 | 0
+
+ 311496 java/lang/Class
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 395
+ 128 | 0
+
+ 311496 [I
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 | 3
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 276
+ 64 |@@@@@@@@@ 87
+ 128 | 3
+ 256 | 1
+ 512 | 1
+ 1024 | 1
+ 2048 | 0
+ 4096 | 1
+ 8192 | 0
+ 16384 | 1
+ 32768 | 0
+
+ 311496 [B
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@ 87
+ 32 |@@@@@@@@@@ 100
+ 64 |@@@@@@@@ 83
+ 128 |@@@@@@@ 71
+ 256 |@@@@@ 47
+ 512 |@ 14
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 4
+ 16384 | 0
+
+ 311496 [C
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@ 271
+ 32 |@@@@@@@@@@@@@@@@@@@@@ 573
+ 64 |@@@@@@ 150
+ 128 |@@@ 68
+ 256 | 8
+ 512 | 1
+ 1024 | 2
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 3
+ 32768 | 0
+
+Java object allocation count by pid and class,
+
+ PID OBJS CLASS
+ 311496 1 [J
+ 311496 1 [Ljava/lang/OutOfMemoryError;
+ 311496 1 [Ljava/lang/StackTraceElement;
+ 311496 1 [Ljava/lang/ThreadGroup;
+ 311496 1 [Ljava/lang/ThreadLocal$ThreadLocalMap$Entry;
+ 311496 1 [Ljava/security/Principal;
+ 311496 1 [Ljava/security/cert/Certificate;
+ 311496 1 [Ljava/util/concurrent/ConcurrentHashMap$Segment;
+ 311496 1 java/io/BufferedInputStream
+ 311496 1 java/io/BufferedReader
+ 311496 1 java/io/Console$1
+ 311496 1 java/io/Console$1$1
+ 311496 1 java/io/DataInputStream
+ 311496 1 java/io/DeleteOnExitHook
+ 311496 1 java/io/File$1
+ 311496 1 java/io/FilePermissionCollection
+ 311496 1 java/io/FileReader
+ 311496 1 java/io/UnixFileSystem
+ 311496 1 java/lang/ApplicationShutdownHooks
+ 311496 1 java/lang/ArithmeticException
+ 311496 1 java/lang/ClassLoader$3
+ 311496 1 java/lang/ClassLoader$NativeLibrary
+ 311496 1 java/lang/Compiler$1
+ 311496 1 java/lang/NoSuchMethodError
+ 311496 1 java/lang/NullPointerException
+ 311496 1 java/lang/Runtime
+ 311496 1 java/lang/String$CaseInsensitiveComparator
+ 311496 1 java/lang/StringCoding$StringDecoder
+ 311496 1 java/lang/System$2
+ 311496 1 java/lang/SystemClassLoaderAction
+ 311496 1 java/lang/Terminator$1
+ 311496 1 java/lang/ThreadLocal$ThreadLocalMap
+ 311496 1 java/lang/ThreadLocal$ThreadLocalMap$Entry
+ 311496 1 java/lang/VirtualMachineError
+ 311496 1 java/lang/ref/Finalizer$FinalizerThread
+ 311496 1 java/lang/ref/Reference$Lock
+ 311496 1 java/lang/ref/Reference$ReferenceHandler
+ 311496 1 java/lang/reflect/Method
+ 311496 1 java/lang/reflect/ReflectAccess
+ 311496 1 java/lang/reflect/ReflectPermission
+ 311496 1 java/net/URLClassLoader$7
+ 311496 1 java/net/UnknownContentHandler
+ 311496 1 java/nio/charset/CoderResult$1
+ 311496 1 java/nio/charset/CoderResult$2
+ 311496 1 java/security/BasicPermissionCollection
+ 311496 1 java/security/CodeSource
+ 311496 1 java/security/Policy$UnsupportedEmptyCollection
+ 311496 1 java/security/PrivilegedActionException
+ 311496 1 java/security/ProtectionDomain
+ 311496 1 java/util/BitSet
+ 311496 1 java/util/Collections$EmptyList
+ 311496 1 java/util/Collections$EmptyMap
+ 311496 1 java/util/Collections$EmptySet
+ 311496 1 java/util/Collections$ReverseComparator
+ 311496 1 java/util/Collections$SynchronizedMap
+ 311496 1 java/util/HashMap$KeySet
+ 311496 1 java/util/Hashtable$EmptyEnumerator
+ 311496 1 java/util/Hashtable$EmptyIterator
+ 311496 1 java/util/IdentityHashMap
+ 311496 1 java/util/IdentityHashMap$KeySet
+ 311496 1 java/util/LinkedHashMap
+ 311496 1 java/util/LinkedHashMap$KeyIterator
+ 311496 1 java/util/LinkedHashSet
+ 311496 1 java/util/Properties
+ 311496 1 java/util/concurrent/ConcurrentHashMap
+ 311496 1 java/util/concurrent/atomic/AtomicInteger
+ 311496 1 java/util/concurrent/atomic/AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
+ 311496 1 java/util/jar/JarFile
+ 311496 1 java/util/jar/JarFile$JarFileEntry
+ 311496 1 java/util/jar/JavaUtilJarAccessImpl
+ 311496 1 java/util/zip/Inflater
+ 311496 1 java/util/zip/ZipEntry
+ 311496 1 java/util/zip/ZipFile$1
+ 311496 1 java/util/zip/ZipFile$ZipFileInputStream
+ 311496 1 sun/misc/FileURLMapper
+ 311496 1 sun/misc/Launcher
+ 311496 1 sun/misc/Launcher$AppClassLoader
+ 311496 1 sun/misc/Launcher$AppClassLoader$1
+ 311496 1 sun/misc/Launcher$ExtClassLoader
+ 311496 1 sun/misc/Launcher$ExtClassLoader$1
+ 311496 1 sun/misc/Launcher$Factory
+ 311496 1 sun/misc/SoftCache
+ 311496 1 sun/misc/URLClassPath$FileLoader
+ 311496 1 sun/misc/URLClassPath$FileLoader$1
+ 311496 1 sun/misc/URLClassPath$JarLoader$1
+ 311496 1 sun/misc/Unsafe
+ 311496 1 sun/net/www/MessageHeader
+ 311496 1 sun/net/www/protocol/file/FileURLConnection
+ 311496 1 sun/net/www/protocol/file/Handler
+ 311496 1 sun/nio/cs/StandardCharsets
+ 311496 1 sun/nio/cs/StandardCharsets$Aliases
+ 311496 1 sun/nio/cs/StandardCharsets$Cache
+ 311496 1 sun/nio/cs/StandardCharsets$Classes
+ 311496 1 sun/nio/cs/StreamDecoder
+ 311496 1 sun/nio/cs/US_ASCII
+ 311496 1 sun/reflect/ReflectionFactory
+ 311496 1 sun/reflect/ReflectionFactory$1
+ 311496 2 [Ljava/io/File;
+ 311496 2 [Ljava/lang/Thread;
+ 311496 2 [Ljava/lang/reflect/Constructor;
+ 311496 2 [Ljava/net/URL;
+ 311496 2 java/io/BufferedOutputStream
+ 311496 2 java/io/BufferedWriter
+ 311496 2 java/io/ExpiringCache
+ 311496 2 java/io/ExpiringCache$1
+ 311496 2 java/io/FileOutputStream
+ 311496 2 java/io/FilePermission
+ 311496 2 java/io/FilePermission$1
+ 311496 2 java/io/OutputStreamWriter
+ 311496 2 java/io/PrintStream
+ 311496 2 java/lang/Class$1
+ 311496 2 java/lang/ClassNotFoundException
+ 311496 2 java/lang/Shutdown$Lock
+ 311496 2 java/lang/ThreadGroup
+ 311496 2 java/lang/ref/ReferenceQueue
+ 311496 2 java/lang/ref/ReferenceQueue$Null
+ 311496 2 java/lang/ref/WeakReference
+ 311496 2 java/net/URLClassLoader$1
+ 311496 2 java/nio/ByteOrder
+ 311496 2 java/nio/charset/CoderResult
+ 311496 2 java/security/Permissions
+ 311496 2 java/util/AbstractList$Itr
+ 311496 2 java/util/HashSet
+ 311496 2 java/util/IdentityHashMap$KeyIterator
+ 311496 2 java/util/StringTokenizer
+ 311496 2 sun/misc/NativeSignalHandler
+ 311496 2 sun/misc/URLClassPath
+ 311496 2 sun/net/www/protocol/jar/Handler
+ 311496 2 sun/nio/cs/StreamEncoder
+ 311496 2 sun/nio/cs/Surrogate$Parser
+ 311496 2 sun/nio/cs/US_ASCII$Encoder
+ 311496 2 sun/reflect/DelegatingConstructorAccessorImpl
+ 311496 2 sun/reflect/NativeConstructorAccessorImpl
+ 311496 3 java/io/FileInputStream
+ 311496 3 java/lang/Boolean
+ 311496 3 java/lang/Class$3
+ 311496 3 java/lang/Integer
+ 311496 3 java/lang/RuntimePermission
+ 311496 3 java/lang/ThreadLocal
+ 311496 3 java/nio/charset/CodingErrorAction
+ 311496 3 java/util/Stack
+ 311496 3 sun/misc/Signal
+ 311496 4 [Ljava/lang/annotation/Annotation;
+ 311496 4 [Ljava/lang/reflect/Field;
+ 311496 4 java/lang/ref/ReferenceQueue$Lock
+ 311496 4 java/lang/reflect/Constructor
+ 311496 4 sun/misc/MetaIndex
+ 311496 4 sun/nio/cs/US_ASCII$Decoder
+ 311496 4 sun/reflect/ReflectionFactory$GetReflectionFactoryAction
+ 311496 5 java/io/FileDescriptor
+ 311496 5 sun/misc/URLClassPath$JarLoader
+ 311496 6 java/lang/Thread
+ 311496 6 java/nio/HeapByteBuffer
+ 311496 6 java/util/Hashtable
+ 311496 6 sun/misc/URLClassPath$3
+ 311496 7 java/lang/ref/SoftReference
+ 311496 8 [Ljava/io/ObjectStreamField;
+ 311496 8 java/lang/OutOfMemoryError
+ 311496 8 java/lang/ref/Finalizer
+ 311496 8 java/util/ArrayList
+ 311496 8 java/util/Vector
+ 311496 9 java/lang/StringBuffer
+ 311496 10 [Ljava/util/Hashtable$Entry;
+ 311496 10 java/io/ObjectStreamField
+ 311496 10 java/security/AccessControlContext
+ 311496 11 java/net/Parts
+ 311496 11 java/nio/HeapCharBuffer
+ 311496 12 [Ljava/lang/Class;
+ 311496 12 java/io/ExpiringCache$Entry
+ 311496 13 java/net/URL
+ 311496 14 java/util/HashMap
+ 311496 15 java/util/HashMap$Entry
+ 311496 15 java/util/LinkedHashMap$Entry
+ 311496 16 java/lang/Object
+ 311496 16 java/util/concurrent/ConcurrentHashMap$Segment
+ 311496 16 java/util/concurrent/locks/ReentrantLock$NonfairSync
+ 311496 17 [Ljava/util/HashMap$Entry;
+ 311496 17 sun/security/action/GetPropertyAction
+ 311496 19 java/util/Locale
+ 311496 22 [Ljava/util/concurrent/ConcurrentHashMap$HashEntry;
+ 311496 23 java/util/concurrent/ConcurrentHashMap$HashEntry
+ 311496 37 java/io/File
+ 311496 37 java/lang/reflect/Field
+ 311496 57 [Ljava/lang/String;
+ 311496 57 java/util/Hashtable$Entry
+ 311496 73 java/lang/StringBuilder
+ 311496 326 [Ljava/lang/Object;
+ 311496 374 [I
+ 311496 395 java/lang/Class
+ 311496 406 [B
+ 311496 486 [S
+ 311496 541 [[I
+ 311496 931 java/lang/String
+ 311496 1076 [C
+
+In the first section - Java object allocation byte distributions by PID and
+class, you can see in graphical form the range of sizes of each type of
+object. For example:
+
+ 311496 [C
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@ 271
+ 32 |@@@@@@@@@@@@@@@@@@@@@ 573
+ 64 |@@@@@@ 150
+ 128 |@@@ 68
+ 256 | 8
+ 512 | 1
+ 1024 | 2
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 3
+ 32768 | 0
+
+shows that there were 271 objects of type [C and size 16 bytes to 31 bytes
+created. It is important to pay close attention to the third column,
+"count" as this will indicate if there were any instances in a particular
+size, even if the number is too small to show up on the histogram scale.
+
+In the second section - Java object allocation count by pid and class, you can
+easily see that there were 395 objects of java/lang/Class created, and 931
+objects of java/lang/String.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt
new file mode 100644
index 000000000000..0d4da29d9e90
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt
@@ -0,0 +1,44 @@
+The following are examples of j_package.d.
+
+This script will show you the number of times a class is loaded from
+particular packages.
+
+Here you can see it running when Code/Java/Func_abc runs.
+
+# j_package.d
+Tracing... Hit Ctrl-C to end.
+
+ PID LOADS PACKAGE
+ 311500 1 .
+ 311500 1 java/lang/annotation
+ 311500 1 java/nio/charset/spi
+ 311500 1 java/security/cert
+ 311500 1 sun/net/www/protocol/jar
+ 311500 1 sun/nio
+ 311500 1 sun/reflect/misc
+ 311500 1 sun/security/action
+ 311500 1 sun/security/provider
+ 311500 1 sun/security/util
+ 311500 1 sun/util
+ 311500 2 sun/net/www/protocol/file
+ 311500 3 java/util/concurrent/atomic
+ 311500 3 sun/net/www
+ 311500 4 java/util/concurrent
+ 311500 4 java/util/jar
+ 311500 7 java/nio
+ 311500 7 java/util/concurrent/locks
+ 311500 7 java/util/zip
+ 311500 8 java/nio/charset
+ 311500 10 java/net
+ 311500 12 java/lang/ref
+ 311500 12 java/lang/reflect
+ 311500 13 sun/nio/cs
+ 311500 18 sun/reflect
+ 311500 19 java/security
+ 311500 34 sun/misc
+ 311500 38 java/io
+ 311500 46 java/util
+ 311500 69 java/lang
+
+You can see that 69 classes from the java/lang package were loaded during the
+time this script was running.
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt
new file mode 100644
index 000000000000..bb45c4b3f759
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt
@@ -0,0 +1,209 @@
+The following are examples of j_profile.d.
+
+This script samples on-CPU stack traces and prints them with Java
+translations. With DTrace, as well as tracing events, you can also sample
+them. Each approach has its own advantages and disadvantages and you are
+encouraged to try both when investigating performance issues (especially
+tracing). Sampling is inaccurate and can miss events, yet is a quick and
+easy way to discover a certain set of performance issues involving on-CPU
+load.
+
+This script samples at 101 Hertz, printing out the 25 most frequently seen
+stack traces down to 10 lines deep. All of these values can be tweaked in
+the script.
+
+Here we run the script on Code/Java/Func_loop. The argument fed to the script
+is the PID of the Java program we wish to investigate. Here the raw output is
+show, then again after filtering using c++filt.
+
+# j_profile.d -p 1312
+Sampling 10-level stacks at 101 Hertz... Hit Ctrl-C to end.
+^C
+
+Top 25 most frequently sampled stacks,
+
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 30
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 31
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 32
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 33
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 41
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 72
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`__1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x1a3
+ libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v2468_v_+0x27
+ libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_+0x2f
+ libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_jobject_nLJNICallType_pnK_jmethodID_pnSJNI_ArgumentPusher_pnGThread__v_+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 116
+
+
+The most frequent stacks had Func_loop.func_c() on CPU, with a stack trace
+showing func_b() and func_a() - as expected from the source to Func_loop.java.
+
+
+Now passing that output through c++filt to translate the compiled C++ symbols
+of the JVM.
+
+# j_profile.d -p 1312 -o out.j_profile
+# c++filt out.j_profile
+Sampling 10-level stacks at 101 Hertz... Hit Ctrl-C to end.
+
+Top 25 most frequently sampled stacks,
+
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 10
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 13
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 19
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 21
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 29
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 53
+
+ Func_loop.func_c()V
+ Func_loop.func_b()V
+ Func_loop.func_a()V
+ Func_loop.main([Ljava/lang/String;)V
+ StubRoutines (1)
+ libjvm.so`void JavaCalls::call_helper(JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x1a3
+ libjvm.so`void os::os_exception_wrapper(void(*)(JavaValue*,methodHandle*,JavaCallArguments*,Thread*),JavaValue*,methodHandle*,JavaCallArguments*,Thread*)+0x27
+ libjvm.so`void JavaCalls::call(JavaValue*,methodHandle,JavaCallArguments*,Thread*)+0x2f
+ libjvm.so`void jni_invoke_static(JNIEnv_*,JavaValue*,_jobject*,JNICallType,_jmethodID*,JNI_ArgumentPusher*,Thread*)+0x1df
+ libjvm.so`jni_CallStaticVoidMethod+0x15d
+ 74
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt
new file mode 100644
index 000000000000..6c7e12e99cfa
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt
@@ -0,0 +1,33 @@
+The following are examples of running j_stat.d.
+
+j_stat.d shows you the number of events per second that have happened since
+the last line output. The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the j_stat.d script reflecting the Code/Ruby/Func_abc script.
+
+# j_stat.d
+TIME EXEC/s THREAD/s METHOD/s OBJNEW/s CLOAD/s EXCP/s GC/s
+2007 Sep 24 04:00:34 0 0 0 0 0 0 0
+2007 Sep 24 04:00:35 2 6 11660 5306 318 41 0
+2007 Sep 24 04:00:36 0 0 124 4 0 2 0
+2007 Sep 24 04:00:37 0 0 124 4 0 2 0
+2007 Sep 24 04:00:38 0 0 123 75 9 1 0
+2007 Sep 24 04:00:39 0 0 0 0 0 0 0
+2007 Sep 24 04:00:40 0 0 0 0 0 0 0
+^C
+
+Here we can see that at 2007 Sep 24 04:00:35 there were 2 Java programs
+executed, (this number will include those without Java provider support),
+there were 6 threads created, 11,660 methods called, 5306 new objects created,
+318 class loads, 41 exceptions raised and no garbage collects.
+
+The numbers are per second counts for the interval specified. The default
+interval is 1 second.
+
+If you see a count in "EXECS" but not in the other columns, then your Java
+software is probably not running with the DTrace hotspot provider.
+
+If you see counts in "CLOAD" but not in "METHODS", then you Java software
+probably isn't running with "+ExtendedDTraceProbes".
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt
new file mode 100644
index 000000000000..911d4b0ec5c5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt
@@ -0,0 +1,165 @@
+The following are examples of j_syscalls.d.
+
+This is a simple script to count executed Java methods and system calls.
+Here it traces an example program, Code/Java/Func_abc.
+
+# j_syscalls.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+ PID TYPE NAME COUNT
+ 311536 method Func_abc.func_a 1
+ 311536 method Func_abc.func_b 1
+ 311536 method Func_abc.func_c 1
+ 311536 method Func_abc.main 1
+ 311536 method java/io/BufferedInputStream.<clinit> 1
+ 311536 method java/io/BufferedReader.<clinit> 1
+ 311536 method java/io/BufferedReader.close 1
+ 311536 method java/io/BufferedWriter.<clinit> 1
+ 311536 method java/io/Console$1$1.<init> 1
+ 311536 method java/io/Console$1$1.run 1
+ 311536 method java/io/Console$1.<init> 1
+ 311536 method java/io/Console$1.consoleRestoreHook 1
+ 311536 method java/io/Console.<clinit> 1
+ 311536 method java/io/Console.access$600 1
+ 311536 method java/io/DataInputStream.<init> 1
+ 311536 method java/io/DataInputStream.readFully 1
+ 311536 method java/io/DeleteOnExitHook.<clinit> 1
+ 311536 method java/io/DeleteOnExitHook.<init> 1
+ 311536 method java/io/DeleteOnExitHook.hook 1
+ 311536 method java/io/DeleteOnExitHook.run 1
+[... 900 lines truncated ...]
+ 311536 method java/io/ExpiringCache.get 18
+ 311536 method java/lang/Class.desiredAssertionStatus 18
+ 311536 method java/lang/Class.desiredAssertionStatus0 18
+ 311536 method java/lang/ClassLoader.findLoadedClass 18
+ 311536 method java/lang/ClassLoader.findLoadedClass0 18
+ 311536 method java/io/BufferedReader.ensureOpen 19
+ 311536 method java/lang/System.currentTimeMillis 19
+ 311536 method java/nio/Buffer.limit 19
+ 311536 method java/util/Locale.<init> 19
+ 311536 method java/util/Locale.createSingleton 19
+ 311536 method java/util/concurrent/ConcurrentHashMap$Segment.put 19
+ 311536 method java/util/concurrent/ConcurrentHashMap.put 19
+ 311536 method java/util/concurrent/locks/AbstractQueuedSynchronizer.compareAndSetState 19
+ 311536 method java/util/concurrent/locks/AbstractQueuedSynchronizer.release 19
+ 311536 method java/util/concurrent/locks/AbstractQueuedSynchronizer.setState 19
+ 311536 method java/util/concurrent/locks/ReentrantLock$NonfairSync.lock 19
+ 311536 method java/util/concurrent/locks/ReentrantLock$Sync.tryRelease 19
+ 311536 method java/util/concurrent/locks/ReentrantLock.lock 19
+ 311536 method java/util/concurrent/locks/ReentrantLock.unlock 19
+ 311536 method java/io/ObjectStreamField.<init> 20
+ 311536 method java/nio/ByteBuffer.array 20
+ 311536 method java/util/AbstractList.<init> 20
+ 311536 method java/util/BitSet.get 20
+ 311536 method java/util/concurrent/ConcurrentHashMap.hash 20
+ 311536 method java/util/concurrent/ConcurrentHashMap.segmentFor 20
+ 311536 method sun/misc/VM.isBooted 20
+ 311536 syscall memcntl 20
+ 311536 method java/io/File.getName 21
+ 311536 method java/io/UnixFileSystem.getBooleanAttributes 21
+ 311536 method java/io/UnixFileSystem.getBooleanAttributes0 21
+ 311536 method java/lang/StringBuffer.append 21
+ 311536 method java/nio/charset/Charset.atBugLevel 21
+ 311536 method java/util/concurrent/ConcurrentHashMap$HashEntry.newArray 22
+ 311536 method sun/misc/Unsafe.compareAndSwapInt 22
+ 311536 method java/util/HashMap.<init> 23
+ 311536 method java/util/concurrent/ConcurrentHashMap$HashEntry.<init> 23
+ 311536 syscall stat64 23
+ 311536 method java/nio/charset/CoderResult.isUnderflow 24
+ 311536 method java/util/AbstractMap.<init> 24
+ 311536 method java/util/Vector.elementAt 24
+ 311536 syscall munmap 24
+ 311536 method java/lang/Class.getClassLoader 25
+ 311536 syscall lwp_sigmask 25
+ 311536 syscall sigaction 25
+ 311536 method java/util/AbstractCollection.<init> 26
+ 311536 method java/util/ArrayList.add 26
+ 311536 method java/util/ArrayList.ensureCapacity 26
+ 311536 method java/lang/ClassLoader.loadClass 27
+ 311536 method java/net/URL.<init> 27
+ 311536 method java/lang/ClassLoader.check 28
+ 311536 method java/lang/ClassLoader.checkName 28
+ 311536 method java/lang/ref/Reference.<init> 28
+ 311536 method java/lang/String.endsWith 29
+ 311536 method sun/misc/VM.allowArraySyntax 29
+ 311536 method java/io/ExpiringCache.entryFor 30
+ 311536 method java/io/UnixFileSystem.resolve 30
+ 311536 method java/util/HashMap$Entry.<init> 30
+ 311536 method java/util/LinkedHashMap.get 30
+ 311536 syscall priocntlsys 30
+ 311536 method java/util/HashMap.put 33
+ 311536 method java/util/Vector.<init> 33
+ 311536 method java/io/UnixFileSystem.normalize 34
+ 311536 method java/lang/Class.getClassLoader0 34
+ 311536 method java/lang/String.toLowerCase 34
+ 311536 method sun/security/action/GetPropertyAction.run 34
+ 311536 method java/nio/CharBuffer.arrayOffset 36
+ 311536 method java/util/HashMap.getEntry 36
+ 311536 method java/io/File.<init> 37
+ 311536 method java/io/UnixFileSystem.prefixLength 37
+ 311536 method java/io/BufferedReader.readLine 38
+ 311536 method java/util/concurrent/locks/AbstractOwnableSynchronizer.setExclusiveOwnerThread 38
+ 311536 syscall resolvepath 38
+ 311536 method java/lang/CharacterDataLatin1.toLowerCase 41
+ 311536 method java/lang/CharacterDataLatin1.getProperties 43
+ 311536 method java/security/AccessController.doPrivileged 43
+ 311536 method java/util/Vector.size 43
+ 311536 method java/nio/Buffer.position 44
+ 311536 method java/nio/ByteBuffer.arrayOffset 44
+ 311536 method java/lang/System.getProperty 48
+ 311536 method java/util/Properties.getProperty 50
+ 311536 method java/util/BitSet.expandTo 51
+ 311536 method java/util/BitSet.set 51
+ 311536 syscall pollsys 55
+ 311536 method java/lang/System.checkKey 56
+ 311536 method java/lang/Thread.currentThread 57
+ 311536 method java/util/Hashtable$Entry.<init> 57
+ 311536 method java/util/Hashtable.get 59
+ 311536 method java/util/Hashtable.put 63
+ 311536 method java/util/BitSet.checkInvariants 71
+ 311536 method java/util/BitSet.wordIndex 72
+ 311536 method java/lang/StringBuilder.<init> 73
+ 311536 method java/lang/StringBuilder.toString 73
+ 311536 method java/lang/AbstractStringBuilder.expandCapacity 81
+ 311536 method java/util/HashMap.hash 81
+ 311536 method java/util/HashMap.indexFor 81
+ 311536 method java/lang/AbstractStringBuilder.<init> 82
+ 311536 method java/lang/Character.toLowerCase 82
+ 311536 method java/lang/String.startsWith 83
+ 311536 method java/util/Arrays.copyOf 87
+ 311536 method java/lang/String.lastIndexOf 90
+ 311536 method java/lang/String.substring 94
+ 311536 syscall brk 102
+ 311536 syscall ioctl 103
+ 311536 method java/util/Arrays.copyOfRange 107
+ 311536 syscall mmap 127
+ 311536 syscall open 129
+ 311536 syscall close 133
+ 311536 method java/lang/String.getChars 156
+ 311536 method java/lang/System.getSecurityManager 174
+ 311536 method java/lang/String.<init> 175
+ 311536 syscall xstat 188
+ 311536 method java/lang/String.equals 202
+ 311536 method java/lang/Math.min 208
+ 311536 method java/lang/String.hashCode 213
+ 311536 syscall lwp_exit 291
+ 311536 method java/lang/String.indexOf 302
+ 311536 method java/lang/System.arraycopy 360
+ 311536 method java/lang/StringBuilder.append 545
+ 311536 method java/lang/AbstractStringBuilder.append 561
+ 311536 syscall llseek 664
+ 311536 syscall read 668
+ 311536 method java/lang/Object.<init> 823
+ 311536 method java/lang/String.charAt 1987
+
+While tracing there were numerous system calls made, including 668 reads()'s,
+and 664 llseek()'s. Many Java methods were also called, with 1987
+java/lang/String.charAt being the most of a particular kind.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application method calls and
+system calls in the same output.
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt
new file mode 100644
index 000000000000..3b130ee8883b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt
@@ -0,0 +1,1550 @@
+The following are examples of j_syscolors.d.
+
+This is a simple script to trace the method flow of Java methods within a
+program, and the system calls made. It watches Java method entries and
+returns, and indents child * method calls. It renders the output in color
+("colour") using terminal escape sequences (which you can tweak by modifying
+the script).
+
+Here it traces the example program, Code/Java/Func_abc.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+The fields in the output are, in order; CPU-id, Process ID/Thread ID, Elapsed
+time from previous line to current line, Type of call (func/syscall) and name
+of Java method or syscall.
+
+If the flow appears to jump, check the TID column - the JVM may have switched
+to another thread.
+
+WARNING: Watch the first column carefully, it prints the CPU-id. If it changes,
+then it is very likely that the output has been shuffled. Changes in TID will
+appear to shuffle output, as we change from one thread depth to the next. See
+Docs/Notes/ALLjavaflow.txt for additional notes.
+
+# j_syscolors.d -c 'java -XX:+ExtendedDTraceProbes Func_abc'
+C PID/TID DELTA(us) TYPE -- NAME
+0 311542/1 2 syscall -> munmap
+0 311542/1 33 syscall <- munmap
+0 311542/1 52 syscall -> mmap
+0 311542/1 16 syscall <- mmap
+0 311542/1 34 syscall -> setcontext
+0 311542/1 7 syscall <- setcontext
+0 311542/1 7 syscall -> getrlimit
+0 311542/1 7 syscall <- getrlimit
+0 311542/1 7 syscall -> getpid
+0 311542/1 6 syscall <- getpid
+0 311542/1 58 syscall -> setcontext
+0 311542/1 6 syscall <- setcontext
+0 311542/1 975 syscall -> sysi86
+0 311542/1 9 syscall <- sysi86
+0 311542/1 134 syscall -> brk
+0 311542/1 8 syscall <- brk
+0 311542/1 7 syscall -> brk
+0 311542/1 10 syscall <- brk
+0 311542/1 47 syscall -> sysconfig
+0 311542/1 6 syscall <- sysconfig
+0 311542/1 36 syscall -> resolvepath
+0 311542/1 31 syscall <- resolvepath
+0 311542/1 9 syscall -> resolvepath
+0 311542/1 18 syscall <- resolvepath
+0 311542/1 85 syscall -> access
+0 311542/1 20 syscall <- access
+0 311542/1 8 syscall -> access
+0 311542/1 24 syscall <- access
+0 311542/1 115 syscall -> open
+0 311542/1 27 syscall <- open
+0 311542/1 14 syscall -> fstat64
+0 311542/1 7 syscall <- fstat64
+0 311542/1 11 syscall -> fstat64
+0 311542/1 6 syscall <- fstat64
+0 311542/1 22 syscall -> ioctl
+0 311542/1 7 syscall <- ioctl
+0 311542/1 11 syscall -> read
+0 311542/1 43 syscall <- read
+0 311542/1 39 syscall -> read
+0 311542/1 7 syscall <- read
+0 311542/1 10 syscall -> llseek
+0 311542/1 7 syscall <- llseek
+0 311542/1 8 syscall -> close
+0 311542/1 9 syscall <- close
+0 311542/1 12 syscall -> sysconfig
+0 311542/1 6 syscall <- sysconfig
+0 311542/1 7 syscall -> sysconfig
+0 311542/1 6 syscall <- sysconfig
+0 311542/1 6 syscall -> sysconfig
+0 311542/1 6 syscall <- sysconfig
+0 311542/1 11 syscall -> xstat
+0 311542/1 27 syscall <- xstat
+0 311542/1 19 syscall -> exece
+0 311542/1 684 syscall <- exece
+0 311542/1 3320 syscall -> mmap
+0 311542/1 22 syscall <- mmap
+0 311542/1 26 syscall -> resolvepath
+0 311542/1 52 syscall <- resolvepath
+0 311542/1 8 syscall -> resolvepath
+0 311542/1 25 syscall <- resolvepath
+0 311542/1 7 syscall -> sysconfig
+0 311542/1 6 syscall <- sysconfig
+0 311542/1 9 syscall -> xstat
+0 311542/1 18 syscall <- xstat
+0 311542/1 7 syscall -> open
+0 311542/1 18 syscall <- open
+0 311542/1 7 syscall -> fxstat
+0 311542/1 7 syscall <- fxstat
+0 311542/1 6 syscall -> mmap
+0 311542/1 11 syscall <- mmap
+0 311542/1 7 syscall -> close
+0 311542/1 10 syscall <- close
+0 311542/1 42 syscall -> xstat
+0 311542/1 27 syscall <- xstat
+0 311542/1 8 syscall -> xstat
+0 311542/1 19 syscall <- xstat
+0 311542/1 7 syscall -> xstat
+0 311542/1 25 syscall <- xstat
+[... 31000 lines truncated ...]
+0 311542/2 10 method <- java/util/HashSet.add
+0 311542/2 10 method <- java/lang/ClassLoader.checkPackageAccess
+0 311542/2 28 method -> java/lang/reflect/Method.getModifiers
+0 311542/2 14 method <- java/lang/reflect/Method.getModifiers
+0 311542/2 17 method -> Func_abc.main
+0 311542/2 14 method -> Func_abc.func_a
+0 311542/2 12 method -> java/lang/ClassLoader.checkPackageAccess
+0 311542/2 10 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 11 method -> java/util/HashSet.add
+0 311542/2 10 method -> java/util/HashMap.put
+0 311542/2 9 method -> java/lang/Object.hashCode
+0 311542/2 10 method <- java/lang/Object.hashCode
+0 311542/2 10 method -> java/util/HashMap.hash
+0 311542/2 10 method <- java/util/HashMap.hash
+0 311542/2 10 method -> java/util/HashMap.indexFor
+0 311542/2 10 method <- java/util/HashMap.indexFor
+0 311542/2 10 method <- java/util/HashMap.put
+0 311542/2 10 method <- java/util/HashSet.add
+0 311542/2 10 method <- java/lang/ClassLoader.checkPackageAccess
+0 311542/2 20 syscall -> brk
+0 311542/2 15 syscall <- brk
+0 311542/2 13 syscall -> brk
+0 311542/2 17 syscall <- brk
+0 311542/2 47 method -> java/lang/ClassLoader.loadClassInternal
+0 311542/2 12 method -> java/lang/ClassLoader.loadClass
+0 311542/2 10 method -> sun/misc/Launcher$AppClassLoader.loadClass
+0 311542/2 10 method -> java/lang/String.lastIndexOf
+0 311542/2 10 method -> java/lang/String.lastIndexOf
+0 311542/2 11 method <- java/lang/String.lastIndexOf
+0 311542/2 10 method <- java/lang/String.lastIndexOf
+0 311542/2 10 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 10 method -> java/lang/ClassLoader.loadClass
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass
+0 311542/2 10 method -> java/lang/ClassLoader.check
+0 311542/2 9 method <- java/lang/ClassLoader.check
+0 311542/2 10 method -> java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 11 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method -> sun/misc/VM.allowArraySyntax
+0 311542/2 10 method <- sun/misc/VM.allowArraySyntax
+0 311542/2 10 method -> java/lang/String.charAt
+0 311542/2 10 method <- java/lang/String.charAt
+0 311542/2 10 method <- java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass0
+0 311542/2 12 method <- java/lang/ClassLoader.findLoadedClass0
+0 311542/2 10 method <- java/lang/ClassLoader.findLoadedClass
+0 311542/2 11 method -> java/lang/ClassLoader.loadClass
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass
+0 311542/2 10 method -> java/lang/ClassLoader.check
+0 311542/2 9 method <- java/lang/ClassLoader.check
+0 311542/2 10 method -> java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method -> sun/misc/VM.allowArraySyntax
+0 311542/2 10 method <- sun/misc/VM.allowArraySyntax
+0 311542/2 10 method -> java/lang/String.charAt
+0 311542/2 9 method <- java/lang/String.charAt
+0 311542/2 10 method <- java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass0
+0 311542/2 11 method <- java/lang/ClassLoader.findLoadedClass0
+0 311542/2 10 method <- java/lang/ClassLoader.findLoadedClass
+0 311542/2 10 method -> java/lang/ClassLoader.findBootstrapClass0
+0 311542/2 10 method -> java/lang/ClassLoader.check
+0 311542/2 10 method <- java/lang/ClassLoader.check
+0 311542/2 10 method -> java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method -> sun/misc/VM.allowArraySyntax
+0 311542/2 10 method <- sun/misc/VM.allowArraySyntax
+0 311542/2 10 method -> java/lang/String.charAt
+0 311542/2 9 method <- java/lang/String.charAt
+0 311542/2 10 method <- java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/ClassLoader.findBootstrapClass
+0 311542/2 12 method <- java/lang/ClassLoader.findBootstrapClass
+0 311542/2 10 method <- java/lang/ClassLoader.findBootstrapClass0
+0 311542/2 11 method <- java/lang/ClassLoader.loadClass
+0 311542/2 10 method <- java/lang/ClassLoader.loadClass
+0 311542/2 10 method <- sun/misc/Launcher$AppClassLoader.loadClass
+0 311542/2 10 method <- java/lang/ClassLoader.loadClass
+0 311542/2 10 method <- java/lang/ClassLoader.loadClassInternal
+0 311542/2 14 method -> java/lang/ClassLoader.checkPackageAccess
+0 311542/2 10 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 10 method -> java/util/HashSet.add
+0 311542/2 10 method -> java/util/HashMap.put
+0 311542/2 10 method -> java/lang/Object.hashCode
+0 311542/2 9 method <- java/lang/Object.hashCode
+0 311542/2 10 method -> java/util/HashMap.hash
+0 311542/2 10 method <- java/util/HashMap.hash
+0 311542/2 10 method -> java/util/HashMap.indexFor
+0 311542/2 10 method <- java/util/HashMap.indexFor
+0 311542/2 11 method <- java/util/HashMap.put
+0 311542/2 10 method <- java/util/HashSet.add
+0 311542/2 10 method <- java/lang/ClassLoader.checkPackageAccess
+0 311542/2 18 method -> java/io/PrintStream.println
+0 311542/2 13 method -> java/io/PrintStream.print
+0 311542/2 12 method -> java/io/PrintStream.write
+0 311542/2 12 method -> java/io/PrintStream.ensureOpen
+0 311542/2 13 method <- java/io/PrintStream.ensureOpen
+0 311542/2 15 method -> java/io/Writer.write
+0 311542/2 16 method -> java/io/BufferedWriter.write
+0 311542/2 13 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 12 method -> java/io/BufferedWriter.min
+0 311542/2 10 method <- java/io/BufferedWriter.min
+0 311542/2 13 method -> java/lang/String.getChars
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 11 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 10 method <- java/io/BufferedWriter.write
+0 311542/2 10 method <- java/io/Writer.write
+0 311542/2 13 method -> java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 13 method -> java/io/OutputStreamWriter.write
+0 311542/2 13 method -> sun/nio/cs/StreamEncoder.write
+0 311542/2 13 method -> sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 13 method -> sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 14 method -> java/nio/CharBuffer.wrap
+0 311542/2 11 method -> java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method -> java/nio/CharBuffer.<init>
+0 311542/2 10 method -> java/nio/Buffer.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method -> java/nio/Buffer.limit
+0 311542/2 10 method <- java/nio/Buffer.limit
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.<init>
+0 311542/2 10 method <- java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.wrap
+0 311542/2 13 method -> java/nio/Buffer.hasRemaining
+0 311542/2 10 method <- java/nio/Buffer.hasRemaining
+0 311542/2 14 method -> java/nio/charset/CharsetEncoder.encode
+0 311542/2 13 method -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 13 method -> java/nio/CharBuffer.hasArray
+0 311542/2 10 method <- java/nio/CharBuffer.hasArray
+0 311542/2 14 method -> java/nio/ByteBuffer.hasArray
+0 311542/2 10 method <- java/nio/ByteBuffer.hasArray
+0 311542/2 13 method -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 56 method -> java/nio/CharBuffer.array
+0 311542/2 11 method <- java/nio/CharBuffer.array
+0 311542/2 12 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 13 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 16 method -> java/nio/ByteBuffer.array
+0 311542/2 10 method <- java/nio/ByteBuffer.array
+0 311542/2 12 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 12 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 17 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 12 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 12 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 12 method -> java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isOverflow
+0 311542/2 12 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CharsetEncoder.encode
+0 311542/2 13 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 14 method -> java/nio/Buffer.remaining
+0 311542/2 10 method <- java/nio/Buffer.remaining
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method <- java/io/OutputStreamWriter.write
+0 311542/2 10 method <- java/io/BufferedWriter.flushBuffer
+0 311542/2 13 method -> java/io/OutputStreamWriter.flushBuffer
+0 311542/2 12 method -> sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 13 method -> sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 13 method -> sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 12 method -> java/nio/Buffer.flip
+0 311542/2 10 method <- java/nio/Buffer.flip
+0 311542/2 14 method -> java/nio/ByteBuffer.array
+0 311542/2 10 method <- java/nio/ByteBuffer.array
+0 311542/2 12 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 14 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 10 method <- java/io/PrintStream.ensureOpen
+0 311542/2 13 method -> java/io/BufferedOutputStream.write
+0 311542/2 15 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/io/BufferedOutputStream.write
+0 311542/2 12 method -> java/io/BufferedOutputStream.flush
+0 311542/2 12 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 15 method -> java/io/FileOutputStream.write
+0 311542/2 12 method -> java/io/FileOutputStream.writeBytes
+0 311542/2 55 syscall -> write
+0 311542/2 160 syscall <- write
+0 311542/2 12 method <- java/io/FileOutputStream.writeBytes
+0 311542/2 12 method <- java/io/FileOutputStream.write
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 13 method <- java/io/BufferedOutputStream.flush
+0 311542/2 11 method <- java/io/PrintStream.write
+0 311542/2 13 method -> java/nio/Buffer.clear
+0 311542/2 11 method <- java/nio/Buffer.clear
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method <- java/io/OutputStreamWriter.flushBuffer
+0 311542/2 15 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method <- java/io/PrintStream.print
+0 311542/2 12 method -> java/io/PrintStream.newLine
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 10 method <- java/io/PrintStream.ensureOpen
+0 311542/2 12 method -> java/io/BufferedWriter.newLine
+0 311542/2 12 method -> java/io/Writer.write
+0 311542/2 10 method -> java/io/BufferedWriter.write
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 11 method -> java/io/BufferedWriter.min
+0 311542/2 10 method <- java/io/BufferedWriter.min
+0 311542/2 10 method -> java/lang/String.getChars
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 10 method <- java/io/BufferedWriter.write
+0 311542/2 10 method <- java/io/Writer.write
+0 311542/2 10 method <- java/io/BufferedWriter.newLine
+0 311542/2 10 method -> java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method -> java/io/OutputStreamWriter.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.write
+0 311542/2 9 method -> sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method -> java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method -> java/nio/CharBuffer.<init>
+0 311542/2 10 method -> java/nio/Buffer.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 9 method <- java/lang/Object.<init>
+0 311542/2 10 method -> java/nio/Buffer.limit
+0 311542/2 10 method <- java/nio/Buffer.limit
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.<init>
+0 311542/2 10 method <- java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/Buffer.hasRemaining
+0 311542/2 10 method <- java/nio/Buffer.hasRemaining
+0 311542/2 10 method -> java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/CharBuffer.hasArray
+0 311542/2 9 method <- java/nio/CharBuffer.hasArray
+0 311542/2 10 method -> java/nio/ByteBuffer.hasArray
+0 311542/2 9 method <- java/nio/ByteBuffer.hasArray
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method -> java/nio/CharBuffer.array
+0 311542/2 9 method <- java/nio/CharBuffer.array
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/ByteBuffer.array
+0 311542/2 10 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 9 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method -> java/nio/Buffer.remaining
+0 311542/2 10 method <- java/nio/Buffer.remaining
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method <- java/io/OutputStreamWriter.write
+0 311542/2 10 method <- java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method -> java/nio/Buffer.flip
+0 311542/2 9 method <- java/nio/Buffer.flip
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 9 method <- java/io/PrintStream.ensureOpen
+0 311542/2 10 method -> java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method -> java/io/FileOutputStream.write
+0 311542/2 10 method -> java/io/FileOutputStream.writeBytes
+0 311542/2 12 syscall -> write
+0 311542/2 63 syscall <- write
+0 311542/2 8 method <- java/io/FileOutputStream.writeBytes
+0 311542/2 11 method <- java/io/FileOutputStream.write
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method -> java/nio/Buffer.clear
+0 311542/2 10 method <- java/nio/Buffer.clear
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method <- java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.newLine
+0 311542/2 10 method <- java/io/PrintStream.println
+0 311542/2 23 method -> java/lang/ClassLoader.loadClassInternal
+0 311542/2 11 method -> java/lang/ClassLoader.loadClass
+0 311542/2 10 method -> sun/misc/Launcher$AppClassLoader.loadClass
+0 311542/2 10 method -> java/lang/String.lastIndexOf
+0 311542/2 10 method -> java/lang/String.lastIndexOf
+0 311542/2 10 method <- java/lang/String.lastIndexOf
+0 311542/2 10 method <- java/lang/String.lastIndexOf
+0 311542/2 10 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 10 method -> java/lang/ClassLoader.loadClass
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass
+0 311542/2 10 method -> java/lang/ClassLoader.check
+0 311542/2 10 method <- java/lang/ClassLoader.check
+0 311542/2 10 method -> java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method -> sun/misc/VM.allowArraySyntax
+0 311542/2 9 method <- sun/misc/VM.allowArraySyntax
+0 311542/2 10 method -> java/lang/String.charAt
+0 311542/2 10 method <- java/lang/String.charAt
+0 311542/2 10 method <- java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass0
+0 311542/2 14 method <- java/lang/ClassLoader.findLoadedClass0
+0 311542/2 10 method <- java/lang/ClassLoader.findLoadedClass
+0 311542/2 12 method -> java/lang/ClassLoader.loadClass
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass
+0 311542/2 10 method -> java/lang/ClassLoader.check
+0 311542/2 9 method <- java/lang/ClassLoader.check
+0 311542/2 10 method -> java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 9 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method -> sun/misc/VM.allowArraySyntax
+0 311542/2 10 method <- sun/misc/VM.allowArraySyntax
+0 311542/2 10 method -> java/lang/String.charAt
+0 311542/2 9 method <- java/lang/String.charAt
+0 311542/2 10 method <- java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/ClassLoader.findLoadedClass0
+0 311542/2 12 method <- java/lang/ClassLoader.findLoadedClass0
+0 311542/2 10 method <- java/lang/ClassLoader.findLoadedClass
+0 311542/2 10 method -> java/lang/ClassLoader.findBootstrapClass0
+0 311542/2 10 method -> java/lang/ClassLoader.check
+0 311542/2 9 method <- java/lang/ClassLoader.check
+0 311542/2 10 method -> java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 9 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method -> sun/misc/VM.allowArraySyntax
+0 311542/2 10 method <- sun/misc/VM.allowArraySyntax
+0 311542/2 10 method -> java/lang/String.charAt
+0 311542/2 10 method <- java/lang/String.charAt
+0 311542/2 10 method <- java/lang/ClassLoader.checkName
+0 311542/2 10 method -> java/lang/ClassLoader.findBootstrapClass
+0 311542/2 15 method <- java/lang/ClassLoader.findBootstrapClass
+0 311542/2 10 method <- java/lang/ClassLoader.findBootstrapClass0
+0 311542/2 11 method <- java/lang/ClassLoader.loadClass
+0 311542/2 10 method <- java/lang/ClassLoader.loadClass
+0 311542/2 10 method <- sun/misc/Launcher$AppClassLoader.loadClass
+0 311542/2 10 method <- java/lang/ClassLoader.loadClass
+0 311542/2 10 method <- java/lang/ClassLoader.loadClassInternal
+0 311542/2 17 method -> java/lang/ClassLoader.checkPackageAccess
+0 311542/2 10 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 11 method -> java/util/HashSet.add
+0 311542/2 10 method -> java/util/HashMap.put
+0 311542/2 10 method -> java/lang/Object.hashCode
+0 311542/2 10 method <- java/lang/Object.hashCode
+0 311542/2 10 method -> java/util/HashMap.hash
+0 311542/2 10 method <- java/util/HashMap.hash
+0 311542/2 10 method -> java/util/HashMap.indexFor
+0 311542/2 10 method <- java/util/HashMap.indexFor
+0 311542/2 11 method <- java/util/HashMap.put
+0 311542/2 10 method <- java/util/HashSet.add
+0 311542/2 10 method <- java/lang/ClassLoader.checkPackageAccess
+0 311542/2 20 method -> java/lang/Thread.currentThread
+0 311542/2 11 method <- java/lang/Thread.currentThread
+0 311542/2 13 method -> java/lang/Thread.sleep
+0 311542/2 21 syscall -> pollsys
+0 311542/10 59827 syscall <- pollsys
+0 311542/10 31 syscall -> pollsys
+0 311542/10 59842 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 60087 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59871 syscall <- pollsys
+0 311542/10 26 syscall -> pollsys
+0 311542/3 1008044 syscall <- lwp_cond_wait
+0 311542/3 37 syscall -> lwp_cond_wait
+0 311542/10 59402 syscall <- pollsys
+0 311542/10 18 syscall -> pollsys
+0 311542/10 59999 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59965 syscall <- pollsys
+0 311542/10 25 syscall -> pollsys
+0 311542/10 59979 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 51241 syscall <- pollsys
+0 311542/10 31 syscall -> pollsys
+0 311542/10 58679 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 50215 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59734 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59977 syscall <- pollsys
+0 311542/10 26 syscall -> pollsys
+0 311542/10 59970 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59966 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 60013 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59924 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+Function B
+0 311542/2 1003741 syscall <- pollsys
+0 311542/2 28 method <- java/lang/Thread.sleep
+0 311542/2 45 method -> Func_abc.func_b
+0 311542/2 36 method -> java/io/PrintStream.println
+0 311542/2 11 method -> java/io/PrintStream.print
+0 311542/2 10 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 10 method <- java/io/PrintStream.ensureOpen
+0 311542/2 11 method -> java/io/Writer.write
+0 311542/2 11 method -> java/io/BufferedWriter.write
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 12 method -> java/io/BufferedWriter.min
+0 311542/2 10 method <- java/io/BufferedWriter.min
+0 311542/2 11 method -> java/lang/String.getChars
+0 311542/2 11 method -> java/lang/System.arraycopy
+0 311542/2 11 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 11 method <- java/io/BufferedWriter.write
+0 311542/2 10 method <- java/io/Writer.write
+0 311542/2 10 method -> java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 11 method -> java/io/OutputStreamWriter.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 11 method -> sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method -> java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method -> java/nio/CharBuffer.<init>
+0 311542/2 10 method -> java/nio/Buffer.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method -> java/nio/Buffer.limit
+0 311542/2 10 method <- java/nio/Buffer.limit
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.<init>
+0 311542/2 10 method <- java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.wrap
+0 311542/2 11 method -> java/nio/Buffer.hasRemaining
+0 311542/2 10 method <- java/nio/Buffer.hasRemaining
+0 311542/2 11 method -> java/nio/charset/CharsetEncoder.encode
+0 311542/2 11 method -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/CharBuffer.hasArray
+0 311542/2 10 method <- java/nio/CharBuffer.hasArray
+0 311542/2 11 method -> java/nio/ByteBuffer.hasArray
+0 311542/2 10 method <- java/nio/ByteBuffer.hasArray
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method -> java/nio/CharBuffer.array
+0 311542/2 10 method <- java/nio/CharBuffer.array
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 10 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 9 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 12 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 11 method -> java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method -> java/nio/Buffer.remaining
+0 311542/2 10 method <- java/nio/Buffer.remaining
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method <- java/io/OutputStreamWriter.write
+0 311542/2 10 method <- java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method -> java/nio/Buffer.flip
+0 311542/2 9 method <- java/nio/Buffer.flip
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 9 method <- java/io/PrintStream.ensureOpen
+0 311542/2 11 method -> java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method -> java/io/FileOutputStream.write
+0 311542/2 10 method -> java/io/FileOutputStream.writeBytes
+0 311542/2 17 syscall -> write
+0 311542/2 104 syscall <- write
+0 311542/2 9 method <- java/io/FileOutputStream.writeBytes
+0 311542/2 11 method <- java/io/FileOutputStream.write
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method -> java/nio/Buffer.clear
+0 311542/2 10 method <- java/nio/Buffer.clear
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method <- java/io/OutputStreamWriter.flushBuffer
+0 311542/2 11 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 11 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method <- java/io/PrintStream.print
+0 311542/2 10 method -> java/io/PrintStream.newLine
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 10 method <- java/io/PrintStream.ensureOpen
+0 311542/2 10 method -> java/io/BufferedWriter.newLine
+0 311542/2 10 method -> java/io/Writer.write
+0 311542/2 10 method -> java/io/BufferedWriter.write
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 9 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method -> java/io/BufferedWriter.min
+0 311542/2 9 method <- java/io/BufferedWriter.min
+0 311542/2 10 method -> java/lang/String.getChars
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 10 method <- java/io/BufferedWriter.write
+0 311542/2 10 method <- java/io/Writer.write
+0 311542/2 10 method <- java/io/BufferedWriter.newLine
+0 311542/2 10 method -> java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 9 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method -> java/io/OutputStreamWriter.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method -> java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method -> java/nio/CharBuffer.<init>
+0 311542/2 10 method -> java/nio/Buffer.<init>
+0 311542/2 9 method -> java/lang/Object.<init>
+0 311542/2 9 method <- java/lang/Object.<init>
+0 311542/2 10 method -> java/nio/Buffer.limit
+0 311542/2 10 method <- java/nio/Buffer.limit
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.<init>
+0 311542/2 10 method <- java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/Buffer.hasRemaining
+0 311542/2 10 method <- java/nio/Buffer.hasRemaining
+0 311542/2 10 method -> java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/CharBuffer.hasArray
+0 311542/2 10 method <- java/nio/CharBuffer.hasArray
+0 311542/2 10 method -> java/nio/ByteBuffer.hasArray
+0 311542/2 10 method <- java/nio/ByteBuffer.hasArray
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method -> java/nio/CharBuffer.array
+0 311542/2 10 method <- java/nio/CharBuffer.array
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 9 method <- java/nio/Buffer.position
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method -> java/nio/Buffer.remaining
+0 311542/2 10 method <- java/nio/Buffer.remaining
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method <- java/io/OutputStreamWriter.write
+0 311542/2 10 method <- java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method -> java/nio/Buffer.flip
+0 311542/2 10 method <- java/nio/Buffer.flip
+0 311542/2 10 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 9 method <- java/io/PrintStream.ensureOpen
+0 311542/2 10 method -> java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method -> java/io/FileOutputStream.write
+0 311542/2 10 method -> java/io/FileOutputStream.writeBytes
+0 311542/2 11 syscall -> write
+0 311542/2 64 syscall <- write
+0 311542/2 8 method <- java/io/FileOutputStream.writeBytes
+0 311542/2 11 method <- java/io/FileOutputStream.write
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method -> java/nio/Buffer.clear
+0 311542/2 10 method <- java/nio/Buffer.clear
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method <- java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.newLine
+0 311542/2 10 method <- java/io/PrintStream.println
+0 311542/2 10 method -> java/lang/Thread.currentThread
+0 311542/2 10 method <- java/lang/Thread.currentThread
+0 311542/2 10 method -> java/lang/Thread.sleep
+0 311542/2 14 syscall -> pollsys
+0 311542/10 59985 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59968 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59981 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59960 syscall <- pollsys
+0 311542/10 28 syscall -> pollsys
+0 311542/10 59967 syscall <- pollsys
+0 311542/10 22 syscall -> pollsys
+0 311542/3 1050003 syscall <- lwp_cond_wait
+0 311542/3 14 syscall -> lwp_cond_wait
+0 311542/10 59985 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59969 syscall <- pollsys
+0 311542/10 25 syscall -> pollsys
+0 311542/10 59980 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 51269 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 58678 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 50207 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59714 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59967 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59965 syscall <- pollsys
+0 311542/10 28 syscall -> pollsys
+0 311542/10 59970 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59952 syscall <- pollsys
+0 311542/10 31 syscall -> pollsys
+0 311542/10 59969 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+Function C
+0 311542/2 1006879 syscall <- pollsys
+0 311542/2 29 method <- java/lang/Thread.sleep
+0 311542/2 45 method -> Func_abc.func_c
+0 311542/2 36 method -> java/io/PrintStream.println
+0 311542/2 11 method -> java/io/PrintStream.print
+0 311542/2 10 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 10 method <- java/io/PrintStream.ensureOpen
+0 311542/2 11 method -> java/io/Writer.write
+0 311542/2 11 method -> java/io/BufferedWriter.write
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 12 method -> java/io/BufferedWriter.min
+0 311542/2 10 method <- java/io/BufferedWriter.min
+0 311542/2 11 method -> java/lang/String.getChars
+0 311542/2 11 method -> java/lang/System.arraycopy
+0 311542/2 11 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 11 method <- java/io/BufferedWriter.write
+0 311542/2 10 method <- java/io/Writer.write
+0 311542/2 10 method -> java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 11 method -> java/io/OutputStreamWriter.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 11 method -> sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method -> java/nio/CharBuffer.wrap
+0 311542/2 11 method -> java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method -> java/nio/CharBuffer.<init>
+0 311542/2 10 method -> java/nio/Buffer.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method -> java/nio/Buffer.limit
+0 311542/2 10 method <- java/nio/Buffer.limit
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.<init>
+0 311542/2 10 method <- java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.wrap
+0 311542/2 11 method -> java/nio/Buffer.hasRemaining
+0 311542/2 10 method <- java/nio/Buffer.hasRemaining
+0 311542/2 11 method -> java/nio/charset/CharsetEncoder.encode
+0 311542/2 11 method -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/CharBuffer.hasArray
+0 311542/2 10 method <- java/nio/CharBuffer.hasArray
+0 311542/2 11 method -> java/nio/ByteBuffer.hasArray
+0 311542/2 10 method <- java/nio/ByteBuffer.hasArray
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method -> java/nio/CharBuffer.array
+0 311542/2 9 method <- java/nio/CharBuffer.array
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 10 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 12 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 11 method -> java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method -> java/nio/Buffer.remaining
+0 311542/2 10 method <- java/nio/Buffer.remaining
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method <- java/io/OutputStreamWriter.write
+0 311542/2 10 method <- java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method -> java/nio/Buffer.flip
+0 311542/2 9 method <- java/nio/Buffer.flip
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 11 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 9 method <- java/io/PrintStream.ensureOpen
+0 311542/2 11 method -> java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/io/BufferedOutputStream.write
+0 311542/2 11 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method -> java/io/FileOutputStream.write
+0 311542/2 10 method -> java/io/FileOutputStream.writeBytes
+0 311542/2 17 syscall -> write
+0 311542/2 143 syscall <- write
+0 311542/2 9 method <- java/io/FileOutputStream.writeBytes
+0 311542/2 11 method <- java/io/FileOutputStream.write
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method -> java/nio/Buffer.clear
+0 311542/2 10 method <- java/nio/Buffer.clear
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method <- java/io/OutputStreamWriter.flushBuffer
+0 311542/2 11 method -> java/lang/String.indexOf
+0 311542/2 10 method -> java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/lang/String.indexOf
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method <- java/io/PrintStream.print
+0 311542/2 10 method -> java/io/PrintStream.newLine
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 10 method <- java/io/PrintStream.ensureOpen
+0 311542/2 10 method -> java/io/BufferedWriter.newLine
+0 311542/2 10 method -> java/io/Writer.write
+0 311542/2 10 method -> java/io/BufferedWriter.write
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 9 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method -> java/io/BufferedWriter.min
+0 311542/2 9 method <- java/io/BufferedWriter.min
+0 311542/2 10 method -> java/lang/String.getChars
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 10 method <- java/io/BufferedWriter.write
+0 311542/2 10 method <- java/io/Writer.write
+0 311542/2 10 method <- java/io/BufferedWriter.newLine
+0 311542/2 10 method -> java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method <- java/io/BufferedWriter.ensureOpen
+0 311542/2 10 method -> java/io/OutputStreamWriter.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.ensureOpen
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method -> java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method -> java/nio/CharBuffer.<init>
+0 311542/2 10 method -> java/nio/Buffer.<init>
+0 311542/2 9 method -> java/lang/Object.<init>
+0 311542/2 9 method <- java/lang/Object.<init>
+0 311542/2 10 method -> java/nio/Buffer.limit
+0 311542/2 10 method <- java/nio/Buffer.limit
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.<init>
+0 311542/2 10 method <- java/nio/HeapCharBuffer.<init>
+0 311542/2 10 method <- java/nio/CharBuffer.wrap
+0 311542/2 10 method -> java/nio/Buffer.hasRemaining
+0 311542/2 10 method <- java/nio/Buffer.hasRemaining
+0 311542/2 10 method -> java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/CharBuffer.hasArray
+0 311542/2 10 method <- java/nio/CharBuffer.hasArray
+0 311542/2 10 method -> java/nio/ByteBuffer.hasArray
+0 311542/2 10 method <- java/nio/ByteBuffer.hasArray
+0 311542/2 10 method -> sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method -> java/nio/CharBuffer.array
+0 311542/2 10 method <- java/nio/CharBuffer.array
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 11 method -> java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/CharBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 9 method <- java/nio/Buffer.position
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/nio/Buffer.position
+0 311542/2 10 method <- java/nio/Buffer.position
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeArrayLoop
+0 311542/2 10 method <- sun/nio/cs/US_ASCII$Encoder.encodeLoop
+0 311542/2 10 method -> java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isOverflow
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CharsetEncoder.encode
+0 311542/2 10 method -> java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method <- java/nio/charset/CoderResult.isUnderflow
+0 311542/2 10 method -> java/nio/Buffer.remaining
+0 311542/2 10 method <- java/nio/Buffer.remaining
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implWrite
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.write
+0 311542/2 10 method <- java/io/OutputStreamWriter.write
+0 311542/2 10 method <- java/io/BufferedWriter.flushBuffer
+0 311542/2 10 method -> java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method -> sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method -> java/nio/Buffer.flip
+0 311542/2 10 method <- java/nio/Buffer.flip
+0 311542/2 10 method -> java/nio/ByteBuffer.array
+0 311542/2 9 method <- java/nio/ByteBuffer.array
+0 311542/2 10 method -> java/nio/ByteBuffer.arrayOffset
+0 311542/2 9 method <- java/nio/ByteBuffer.arrayOffset
+0 311542/2 10 method -> java/io/PrintStream.write
+0 311542/2 10 method -> java/io/PrintStream.ensureOpen
+0 311542/2 9 method <- java/io/PrintStream.ensureOpen
+0 311542/2 10 method -> java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/io/BufferedOutputStream.write
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method -> java/io/FileOutputStream.write
+0 311542/2 10 method -> java/io/FileOutputStream.writeBytes
+0 311542/2 11 syscall -> write
+0 311542/2 63 syscall <- write
+0 311542/2 8 method <- java/io/FileOutputStream.writeBytes
+0 311542/2 11 method <- java/io/FileOutputStream.write
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.write
+0 311542/2 10 method -> java/nio/Buffer.clear
+0 311542/2 10 method <- java/nio/Buffer.clear
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.writeBytes
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.implFlushBuffer
+0 311542/2 10 method <- sun/nio/cs/StreamEncoder.flushBuffer
+0 311542/2 10 method <- java/io/OutputStreamWriter.flushBuffer
+0 311542/2 10 method -> java/io/BufferedOutputStream.flush
+0 311542/2 10 method -> java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flushBuffer
+0 311542/2 10 method <- java/io/BufferedOutputStream.flush
+0 311542/2 10 method <- java/io/PrintStream.newLine
+0 311542/2 10 method <- java/io/PrintStream.println
+0 311542/2 10 method -> java/lang/Thread.currentThread
+0 311542/2 10 method <- java/lang/Thread.currentThread
+0 311542/2 11 method -> java/lang/Thread.sleep
+0 311542/2 14 syscall -> pollsys
+0 311542/10 59975 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59963 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59976 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59961 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 59968 syscall <- pollsys
+0 311542/10 22 syscall -> pollsys
+0 311542/3 1009924 syscall <- lwp_cond_wait
+0 311542/3 17 syscall -> lwp_cond_wait
+0 311542/10 50021 syscall <- pollsys
+0 311542/10 31 syscall -> pollsys
+0 311542/10 59941 syscall <- pollsys
+0 311542/10 27 syscall -> pollsys
+0 311542/10 60034 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 61298 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 58590 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 50205 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59723 syscall <- pollsys
+0 311542/10 29 syscall -> pollsys
+0 311542/10 60208 syscall <- pollsys
+0 311542/10 28 syscall -> pollsys
+0 311542/10 59733 syscall <- pollsys
+0 311542/10 28 syscall -> pollsys
+0 311542/10 59986 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59938 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/10 59968 syscall <- pollsys
+0 311542/10 30 syscall -> pollsys
+0 311542/2 1007088 syscall <- pollsys
+0 311542/2 30 method <- java/lang/Thread.sleep
+0 311542/2 28 method <- Func_abc.func_c
+0 311542/2 10 method <- Func_abc.func_b
+0 311542/2 10 method <- Func_abc.func_a
+0 311542/2 10 method <- Func_abc.main
+0 311542/2 27 method -> java/lang/Thread.exit
+0 311542/2 38 method -> java/lang/ThreadGroup.remove
+0 311542/2 19 method -> java/lang/System.arraycopy
+0 311542/2 11 method <- java/lang/System.arraycopy
+0 311542/2 14 method -> java/lang/Object.notifyAll
+0 311542/2 16 method <- java/lang/Object.notifyAll
+0 311542/2 11 method <- java/lang/ThreadGroup.remove
+0 311542/2 16 method <- java/lang/Thread.exit
+0 311542/2 22 syscall -> mprotect
+0 311542/2 19 syscall <- mprotect
+0 311542/2 19 syscall -> lwp_sigmask
+0 311542/2 7 syscall <- lwp_sigmask
+0 311542/2 25 syscall -> lwp_self
+0 311542/2 6 syscall <- lwp_self
+0 311542/2 7 syscall -> lwp_sigmask
+0 311542/2 5 syscall <- lwp_sigmask
+0 311542/2 6 syscall -> lwp_sigmask
+0 311542/2 6 syscall <- lwp_sigmask
+0 311542/2 124 method -> java/lang/Thread.<init>
+0 311542/2 12 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method -> java/lang/Thread.init
+0 311542/2 10 method -> java/lang/Thread.currentThread
+0 311542/2 10 method <- java/lang/Thread.currentThread
+0 311542/2 11 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 11 method -> java/lang/ThreadGroup.checkAccess
+0 311542/2 10 method -> java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/ThreadGroup.checkAccess
+0 311542/2 10 method -> java/lang/ThreadGroup.addUnstarted
+0 311542/2 10 method <- java/lang/ThreadGroup.addUnstarted
+0 311542/2 11 method -> java/lang/String.toCharArray
+0 311542/2 11 method -> java/lang/String.getChars
+0 311542/2 10 method -> java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/System.arraycopy
+0 311542/2 10 method <- java/lang/String.getChars
+0 311542/2 10 method <- java/lang/String.toCharArray
+0 311542/2 10 method -> java/lang/Thread.getContextClassLoader
+0 311542/2 10 method <- java/lang/Thread.getContextClassLoader
+0 311542/2 11 method -> java/security/AccessController.getContext
+0 311542/2 10 method -> java/security/AccessController.getStackAccessControlContext
+0 311542/2 17 method <- java/security/AccessController.getStackAccessControlContext
+0 311542/2 11 method -> java/security/AccessControlContext.optimize
+0 311542/2 10 method -> java/security/AccessController.getInheritedAccessControlContext
+0 311542/2 11 method <- java/security/AccessController.getInheritedAccessControlContext
+0 311542/2 11 method <- java/security/AccessControlContext.optimize
+0 311542/2 10 method <- java/security/AccessController.getContext
+0 311542/2 10 method -> java/lang/Thread.setPriority
+0 311542/2 10 method -> java/lang/Thread.checkAccess
+0 311542/2 9 method -> java/lang/System.getSecurityManager
+0 311542/2 9 method <- java/lang/System.getSecurityManager
+0 311542/2 10 method <- java/lang/Thread.checkAccess
+0 311542/2 11 method -> java/lang/Thread.setPriority0
+0 311542/2 15 syscall -> priocntlsys
+0 311542/2 9 syscall <- priocntlsys
+0 311542/2 7 syscall -> priocntlsys
+0 311542/2 8 syscall <- priocntlsys
+0 311542/2 7 method <- java/lang/Thread.setPriority0
+0 311542/2 10 method <- java/lang/Thread.setPriority
+0 311542/2 11 method -> java/lang/Thread.nextThreadID
+0 311542/2 11 method <- java/lang/Thread.nextThreadID
+0 311542/2 10 method <- java/lang/Thread.init
+0 311542/2 10 method <- java/lang/Thread.<init>
+0 311542/2 12 method -> java/lang/ThreadGroup.add
+0 311542/2 11 method <- java/lang/ThreadGroup.add
+0 311542/2 10 syscall -> mprotect
+0 311542/2 7 syscall <- mprotect
+0 311542/2 12 method -> java/lang/Shutdown.shutdown
+0 311542/2 15 method -> java/lang/Shutdown.sequence
+0 311542/2 12 method -> java/lang/Shutdown.runHooks
+0 311542/2 14 method -> java/util/AbstractList.iterator
+0 311542/2 30 syscall -> llseek
+0 311542/2 9 syscall <- llseek
+0 311542/2 8 syscall -> read
+0 311542/2 1709 syscall <- read
+0 311542/2 27 syscall -> llseek
+0 311542/2 14 syscall <- llseek
+0 311542/2 7 syscall -> read
+0 311542/2 23 syscall <- read
+0 311542/2 280 method -> java/util/AbstractList$Itr.<init>
+0 311542/2 28 method -> java/util/AbstractList$Itr.<init>
+0 311542/2 17 method -> java/lang/Object.<init>
+0 311542/2 12 method <- java/lang/Object.<init>
+0 311542/2 25 method <- java/util/AbstractList$Itr.<init>
+0 311542/2 11 method <- java/util/AbstractList$Itr.<init>
+0 311542/2 10 method <- java/util/AbstractList.iterator
+0 311542/2 17 method -> java/util/AbstractList$Itr.hasNext
+0 311542/2 16 method <- java/util/AbstractList$Itr.hasNext
+0 311542/2 13 method -> java/util/AbstractList$Itr.next
+0 311542/2 12 method -> java/util/AbstractList$Itr.checkForComodification
+0 311542/2 10 method <- java/util/AbstractList$Itr.checkForComodification
+0 311542/2 13 method -> java/util/ArrayList.get
+0 311542/2 11 method -> java/util/ArrayList.RangeCheck
+0 311542/2 10 method <- java/util/ArrayList.RangeCheck
+0 311542/2 10 method <- java/util/ArrayList.get
+0 311542/2 10 method <- java/util/AbstractList$Itr.next
+0 311542/2 15 method -> java/io/Console$1$1.run
+0 311542/2 14 method -> java/io/Console.access$600
+0 311542/2 12 method <- java/io/Console.access$600
+0 311542/2 10 method <- java/io/Console$1$1.run
+0 311542/2 10 method -> java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method <- java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method -> java/util/AbstractList$Itr.next
+0 311542/2 10 method -> java/util/AbstractList$Itr.checkForComodification
+0 311542/2 10 method <- java/util/AbstractList$Itr.checkForComodification
+0 311542/2 11 method -> java/util/ArrayList.get
+0 311542/2 10 method -> java/util/ArrayList.RangeCheck
+0 311542/2 10 method <- java/util/ArrayList.RangeCheck
+0 311542/2 10 method <- java/util/ArrayList.get
+0 311542/2 10 method <- java/util/AbstractList$Itr.next
+0 311542/2 11 method -> java/lang/ApplicationShutdownHooks.run
+0 311542/2 16 method -> java/util/IdentityHashMap.keySet
+0 311542/2 27 syscall -> llseek
+0 311542/2 7 syscall <- llseek
+0 311542/2 8 syscall -> read
+0 311542/2 18 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 17 syscall <- read
+0 311542/2 139 method -> java/util/IdentityHashMap$KeySet.<init>
+0 311542/2 14 method -> java/util/IdentityHashMap$KeySet.<init>
+0 311542/2 14 method -> java/util/AbstractSet.<init>
+0 311542/2 10 method -> java/util/AbstractCollection.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method <- java/util/AbstractCollection.<init>
+0 311542/2 10 method <- java/util/AbstractSet.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeySet.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeySet.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap.keySet
+0 311542/2 14 method -> java/util/IdentityHashMap$KeySet.iterator
+0 311542/2 17 syscall -> llseek
+0 311542/2 7 syscall <- llseek
+0 311542/2 7 syscall -> read
+0 311542/2 15 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 12 syscall <- read
+0 311542/2 30 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 7 syscall -> read
+0 311542/2 14 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 17 syscall <- read
+0 311542/2 125 method -> java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 14 method -> java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 14 method -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 13 method -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 57 method -> java/lang/Object.<init>
+0 311542/2 11 method <- java/lang/Object.<init>
+0 311542/2 15 method -> java/util/IdentityHashMap.access$000
+0 311542/2 11 method <- java/util/IdentityHashMap.access$000
+0 311542/2 15 method -> java/util/IdentityHashMap.access$200
+0 311542/2 11 method <- java/util/IdentityHashMap.access$200
+0 311542/2 13 method <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeySet.iterator
+0 311542/2 14 method -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+0 311542/2 11 method <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+0 311542/2 11 method -> java/util/IdentityHashMap$KeySet.iterator
+0 311542/2 10 method -> java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 10 method -> java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 10 method -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 10 method -> java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$IdentityHashMapIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeyIterator.<init>
+0 311542/2 10 method <- java/util/IdentityHashMap$KeySet.iterator
+0 311542/2 10 method -> java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+0 311542/2 10 method <- java/util/IdentityHashMap$IdentityHashMapIterator.hasNext
+0 311542/2 11 method <- java/lang/ApplicationShutdownHooks.run
+0 311542/2 10 method -> java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method <- java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method -> java/util/AbstractList$Itr.next
+0 311542/2 10 method -> java/util/AbstractList$Itr.checkForComodification
+0 311542/2 10 method <- java/util/AbstractList$Itr.checkForComodification
+0 311542/2 11 method -> java/util/ArrayList.get
+0 311542/2 10 method -> java/util/ArrayList.RangeCheck
+0 311542/2 10 method <- java/util/ArrayList.RangeCheck
+0 311542/2 10 method <- java/util/ArrayList.get
+0 311542/2 10 method <- java/util/AbstractList$Itr.next
+0 311542/2 11 method -> java/io/File$1.run
+0 311542/2 17 syscall -> llseek
+0 311542/2 8 syscall <- llseek
+0 311542/2 8 syscall -> read
+0 311542/2 17 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 12 syscall <- read
+0 311542/2 62 method -> java/io/DeleteOnExitHook.<clinit>
+0 311542/2 19 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 7 syscall -> read
+0 311542/2 14 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 12 syscall <- read
+0 311542/2 130 method -> java/util/LinkedHashSet.<init>
+0 311542/2 15 method -> java/util/HashSet.<init>
+0 311542/2 10 method -> java/util/AbstractSet.<init>
+0 311542/2 10 method -> java/util/AbstractCollection.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method <- java/util/AbstractCollection.<init>
+0 311542/2 10 method <- java/util/AbstractSet.<init>
+0 311542/2 15 method -> java/util/LinkedHashMap.<init>
+0 311542/2 13 method -> java/util/HashMap.<init>
+0 311542/2 10 method -> java/util/AbstractMap.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 10 method <- java/util/AbstractMap.<init>
+0 311542/2 12 method -> java/lang/Float.isNaN
+0 311542/2 10 method <- java/lang/Float.isNaN
+0 311542/2 15 method -> java/util/LinkedHashMap.init
+0 311542/2 10 method -> java/util/LinkedHashMap$Entry.<init>
+0 311542/2 10 method -> java/util/HashMap$Entry.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 9 method <- java/lang/Object.<init>
+0 311542/2 10 method <- java/util/HashMap$Entry.<init>
+0 311542/2 10 method <- java/util/LinkedHashMap$Entry.<init>
+0 311542/2 10 method <- java/util/LinkedHashMap.init
+0 311542/2 10 method <- java/util/HashMap.<init>
+0 311542/2 10 method <- java/util/LinkedHashMap.<init>
+0 311542/2 10 method <- java/util/HashSet.<init>
+0 311542/2 10 method <- java/util/LinkedHashSet.<init>
+0 311542/2 12 method <- java/io/DeleteOnExitHook.<clinit>
+0 311542/2 13 method -> java/io/DeleteOnExitHook.hook
+0 311542/2 13 method -> java/io/DeleteOnExitHook.<init>
+0 311542/2 12 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 10 method <- java/io/DeleteOnExitHook.<init>
+0 311542/2 10 method <- java/io/DeleteOnExitHook.hook
+0 311542/2 13 method -> java/io/DeleteOnExitHook.run
+0 311542/2 15 method -> java/util/ArrayList.<init>
+0 311542/2 10 method -> java/util/AbstractList.<init>
+0 311542/2 10 method -> java/util/AbstractCollection.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 9 method <- java/lang/Object.<init>
+0 311542/2 10 method <- java/util/AbstractCollection.<init>
+0 311542/2 10 method <- java/util/AbstractList.<init>
+0 311542/2 15 method -> java/util/AbstractCollection.toArray
+0 311542/2 13 method -> java/util/HashSet.size
+0 311542/2 12 method <- java/util/HashSet.size
+0 311542/2 13 method -> java/util/HashSet.iterator
+0 311542/2 12 method -> java/util/HashMap.keySet
+0 311542/2 19 syscall -> llseek
+0 311542/2 7 syscall <- llseek
+0 311542/2 8 syscall -> read
+0 311542/2 17 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 12 syscall <- read
+0 311542/2 68 method -> java/util/HashMap$KeySet.<init>
+0 311542/2 14 method -> java/util/HashMap$KeySet.<init>
+0 311542/2 14 method -> java/util/AbstractSet.<init>
+0 311542/2 10 method -> java/util/AbstractCollection.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 11 method <- java/util/AbstractCollection.<init>
+0 311542/2 10 method <- java/util/AbstractSet.<init>
+0 311542/2 10 method <- java/util/HashMap$KeySet.<init>
+0 311542/2 10 method <- java/util/HashMap$KeySet.<init>
+0 311542/2 10 method <- java/util/HashMap.keySet
+0 311542/2 13 method -> java/util/HashMap$KeySet.iterator
+0 311542/2 14 method -> java/util/LinkedHashMap.newKeyIterator
+0 311542/2 16 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 7 syscall -> read
+0 311542/2 14 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 16 syscall <- read
+0 311542/2 81 syscall -> llseek
+0 311542/2 7 syscall <- llseek
+0 311542/2 7 syscall -> read
+0 311542/2 14 syscall <- read
+0 311542/2 7 syscall -> llseek
+0 311542/2 6 syscall <- llseek
+0 311542/2 6 syscall -> read
+0 311542/2 12 syscall <- read
+0 311542/2 77 method -> java/util/LinkedHashMap$KeyIterator.<init>
+0 311542/2 14 method -> java/util/LinkedHashMap$KeyIterator.<init>
+0 311542/2 14 method -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+0 311542/2 12 method -> java/util/LinkedHashMap$LinkedHashIterator.<init>
+0 311542/2 13 method -> java/lang/Object.<init>
+0 311542/2 10 method <- java/lang/Object.<init>
+0 311542/2 19 method <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+0 311542/2 11 method <- java/util/LinkedHashMap$LinkedHashIterator.<init>
+0 311542/2 10 method <- java/util/LinkedHashMap$KeyIterator.<init>
+0 311542/2 10 method <- java/util/LinkedHashMap$KeyIterator.<init>
+0 311542/2 10 method <- java/util/LinkedHashMap.newKeyIterator
+0 311542/2 10 method <- java/util/HashMap$KeySet.iterator
+0 311542/2 10 method <- java/util/HashSet.iterator
+0 311542/2 14 method -> java/util/LinkedHashMap$LinkedHashIterator.hasNext
+0 311542/2 11 method <- java/util/LinkedHashMap$LinkedHashIterator.hasNext
+0 311542/2 11 method <- java/util/AbstractCollection.toArray
+0 311542/2 11 method -> java/lang/Object.getClass
+0 311542/2 12 method <- java/lang/Object.getClass
+0 311542/2 11 method <- java/util/ArrayList.<init>
+0 311542/2 14 method -> java/util/Collections.reverse
+0 311542/2 15 method <- java/util/Collections.reverse
+0 311542/2 13 method -> java/util/AbstractList.iterator
+0 311542/2 11 method -> java/util/AbstractList$Itr.<init>
+0 311542/2 10 method -> java/util/AbstractList$Itr.<init>
+0 311542/2 10 method -> java/lang/Object.<init>
+0 311542/2 9 method <- java/lang/Object.<init>
+0 311542/2 10 method <- java/util/AbstractList$Itr.<init>
+0 311542/2 10 method <- java/util/AbstractList$Itr.<init>
+0 311542/2 10 method <- java/util/AbstractList.iterator
+0 311542/2 13 method -> java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method <- java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method <- java/io/DeleteOnExitHook.run
+0 311542/2 10 method <- java/io/File$1.run
+0 311542/2 10 method -> java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method <- java/util/AbstractList$Itr.hasNext
+0 311542/2 10 method <- java/lang/Shutdown.runHooks
+0 311542/2 12 method <- java/lang/Shutdown.sequence
+0 311542/2 10 method <- java/lang/Shutdown.shutdown
+0 311542/2 16 syscall -> lwp_cond_wait
+0 311542/10 59973 syscall <- pollsys
+0 311542/10 31 syscall -> lwp_cond_signal
+0 311542/10 15 syscall <- lwp_cond_signal
+0 311542/10 12 syscall -> lwp_sigmask
+0 311542/10 7 syscall <- lwp_sigmask
+0 311542/10 29 syscall -> lwp_exit
+0 311542/2 13322 syscall <- lwp_cond_wait
+0 311542/2 22 syscall -> lwp_park
+0 311542/2 8 syscall <- lwp_park
+0 311542/2 17 syscall -> mprotect
+0 311542/2 16 syscall <- mprotect
+0 311542/2 12 syscall -> lwp_cond_signal
+0 311542/2 7 syscall <- lwp_cond_signal
+0 311542/2 8 syscall -> lwp_cond_wait
+0 311542/3 750221 syscall <- lwp_cond_wait
+0 311542/3 36 syscall -> mprotect
+0 311542/3 9 syscall <- mprotect
+0 311542/3 7 syscall -> mprotect
+0 311542/3 8 syscall <- mprotect
+0 311542/3 14 syscall -> mprotect
+0 311542/3 6 syscall <- mprotect
+0 311542/3 40 syscall -> lwp_cond_signal
+0 311542/3 7 syscall <- lwp_cond_signal
+0 311542/3 7 syscall -> lwp_sigmask
+0 311542/3 6 syscall <- lwp_sigmask
+0 311542/3 11 syscall -> lwp_exit
+0 311542/2 184 syscall <- lwp_cond_wait
+0 311542/2 16 syscall -> lwp_sigmask
+0 311542/2 6 syscall <- lwp_sigmask
+0 311542/2 108 syscall -> unlink
+0 311542/2 36 syscall <- unlink
+0 311542/2 9 syscall -> lwp_sigmask
+0 311542/2 6 syscall <- lwp_sigmask
+0 311542/2 50 syscall -> lwp_exit
+0 311542/1 6423404 syscall <- lwp_wait
+0 311542/1 40 syscall -> open64
+0 311542/1 101 syscall <- open64
+0 311542/1 8 syscall -> ioctl
+0 311542/1 14 syscall <- ioctl
+0 311542/1 10 syscall -> close
+0 311542/1 14 syscall <- close
+0 311542/1 8 syscall -> open64
+0 311542/1 31 syscall <- open64
+0 311542/1 7 syscall -> ioctl
+0 311542/1 7 syscall <- ioctl
+0 311542/1 7 syscall -> close
+0 311542/1 9 syscall <- close
+0 311542/1 27 syscall -> rexit
+0 311542/9 3298915 syscall <- lwp_cond_wait
+0 311542/8 3375816 syscall <- lwp_cond_wait
+0 311542/7 3376775 syscall <- lwp_cond_wait
+0 311542/5 3738267 syscall <- lwp_cond_wait
+0 311542/4 3760581 syscall <- lwp_cond_wait
+0 311542/6 3376767 syscall <- lwp_park
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt
new file mode 100644
index 000000000000..3c5e83c6ee02
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt
@@ -0,0 +1,20 @@
+Following we see examples of the results of running j_thread.d.
+
+Here it is running while Code/Java/Func_abc is executing.
+
+# j_thread.d
+TIME PID/TID -- THREAD
+2007 Sep 24 04:01:34 311512/5 => Finalizer
+2007 Sep 24 04:01:34 311512/4 => Reference Handler
+2007 Sep 24 04:01:34 311512/7 => CompilerThread0
+2007 Sep 24 04:01:34 311512/6 => Signal Dispatcher
+2007 Sep 24 04:01:34 311512/8 => CompilerThread1
+2007 Sep 24 04:01:34 311512/9 => Low Memory Detector
+^C
+
+The fields of the output are, in order, Event time, Process ID/Thread ID,
+entry (=>) or exit (<=) and Thread name.
+
+In this example we see six different threads starting, but we do not see
+thread exit events as the JVM exited when the program stopped.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt
new file mode 100644
index 000000000000..f765d4852b8b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt
@@ -0,0 +1,17 @@
+In many cases, in order to get interesting or in-depth results the
+ExtendedDTraceProbes flag needs to be set when DTracing Java programs. In
+this case, because of the probes we have chosen to trace, running the program
+Code/Java/Func_abc, both with (PID 311517) and without (311526) this flag,
+and we can see that it has made no difference, with each reporting 35 lines
+executed.
+
+# j_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID CALLS ARGS
+ 194441 100 18 /usr/local/lib/opera/9.02-20060919.1/opera
+ 309790 100 20 java_vm
+ 311517 100 35 java -XX:+ExtendedDTraceProbes Func_abc
+ 311526 100 35 java Func_abc
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt
new file mode 100644
index 000000000000..57058b7d9a77
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt
@@ -0,0 +1,110 @@
+The following are examples of running js_calldist.d.
+
+Here it is running while the code at Code/JavaScript/func_clock.html is
+being executed.
+
+# js_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+ func_clock.html, obj-new, Date
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 16 | 0
+
+
+Exclusive function elapsed times (us),
+ func_clock.html, func, setTimeout
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 128 | 0
+
+ func_clock.html, func, getElementById
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@ 1
+ 16 |@@@@@@@@@@@@@@@@@@ 9
+ 32 |@@@@@@@@@@@@@@@@@@@@ 10
+ 64 | 0
+
+ func_clock.html, func, start
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 2048 | 0
+
+ func_clock.html, func, func_a
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 32768 | 0
+
+ func_clock.html, func, func_b
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 65536 | 0
+
+ func_clock.html, func, func_c
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 65536 | 0
+
+
+Inclusive function elapsed times (us),
+ func_clock.html, func, setTimeout
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 128 | 0
+
+ func_clock.html, func, getElementById
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@ 1
+ 16 |@@@@@@@@@@@@@@@@@@ 9
+ 32 |@@@@@@@@@@@@@@@@@@@@ 10
+ 64 | 0
+
+ func_clock.html, func, func_c
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 65536 | 0
+
+ func_clock.html, func, func_a
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 131072 | 0
+
+ func_clock.html, func, func_b
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 131072 | 0
+
+ func_clock.html, func, start
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 131072 | 0
+
+The elapsed times show us that the script spent some small amount of time
+processing various events that were not functions. In this case there was
+five new Date objects, and each event took between 8 microseconds and 15
+microseconds.
+
+The exclusive function elapsed times show the time each of our functions
+takes, excluding the time spent in subroutines called by that function. We
+can see in this example that func_a took between 16384 microseconds and 32767
+microseconds.
+
+The inclusive function elapsed times show that func_a took between 65536
+microseconds and 131071 microseconds, including the time spent in any
+subroutines it calls.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt
new file mode 100644
index 000000000000..848e4362c9d9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt
@@ -0,0 +1,312 @@
+The following are examples of the results of running js_calls.d
+
+A JavaScript program that behaves like a clock is frequently used by these
+examples, since it can be left running in the background without browser
+input. Browser input, such as hitting the reload button or using menus,
+triggers many other JavaScript events since much of the browser uses
+JavaScript.
+
+With Code/JavaScript/func_clock.html loaded, we trace one second of activity:
+
+# js_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE TYPE NAME CALLS
+ func_clock.html exec . 1
+ func_clock.html func func_a 1
+ func_clock.html func func_b 1
+ func_clock.html func func_c 1
+ func_clock.html func setTimeout 1
+ func_clock.html func start 1
+ func_clock.html obj-new Date 1
+ func_clock.html func getElementById 4
+
+This shows the type of calls made, 1 exec, one obj-new, several func; a more
+descriptive name of each call; and a count of how many times a particular call
+was made.
+
+
+The following demonstrates what happens when a different program -
+Code/JavaScript/func_slow.html is reloaded by hitting the reload button on the
+browser. Apart from the func_slow.html JavaScript events, all those events
+from the browser caused by moving the mouse pointer over the screen etc. have
+been traced as well.
+
+# js_calls.d
+Tracing... Hit Ctrl-C to end.
+
+ FILE TYPE NAME CALLS
+ <null> obj-free BarProp 1
+ <null> obj-free CSSStyleDeclaration 1
+ <null> obj-free Global Scope Polluter 1
+ <null> obj-free HTMLCollection 1
+ <null> obj-free HTMLDocument 1
+ <null> obj-free HTMLHtmlElement 1
+ <null> obj-free KeyboardEvent 1
+ <null> obj-free Location 1
+ <null> obj-free NodeList 1
+ <null> obj-free StyleSheetList 1
+ <null> obj-free TreeSelection 1
+ <null> obj-free Window 1
+ <null> obj-free XULCommandDispatcher 1
+ <null> obj-free chrome://global/content/bindings/scrollbar.xml#scrollbar 8c35ec2 1
+ <null> obj-free nsXPCComponents_Classes 1
+ <null> obj-free xpcTempGlobalClass 1
+ <null> obj-new BarProp 1
+ <null> obj-new CSSStyleDeclaration 1
+ <null> obj-new Global Scope Polluter 1
+ <null> obj-new HTMLCollection 1
+ <null> obj-new HTMLDocument 1
+ <null> obj-new HTMLHtmlElement 1
+ <null> obj-new KeyboardEvent 1
+ <null> obj-new NodeList 1
+ <null> obj-new StyleSheetList 1
+ <null> obj-new TreeSelection 1
+ <null> obj-new Window 1
+ <null> obj-new XULCommandDispatcher 1
+ <null> obj-new chrome://global/content/bindings/popup.xml#popup 8befc22 1
+ <null> obj-new chrome://global/content/bindings/popup.xml#popup 8befcea 1
+ <null> obj-new chrome://global/content/bindings/scrollbar.xml#scrollbar 8ce1c1a 1
+ <null> obj-new nsXPCComponents_Classes 1
+ <null> obj-new xpcTempGlobalClass 1
+ autocomplete.xml func apply 1
+ autocomplete.xml func attachController 1
+ autocomplete.xml func detachController 1
+ autocomplete.xml func fireEvent 1
+ autocomplete.xml func getPreventDefault 1
+ autocomplete.xml func handleEnter 1
+ autocomplete.xml func onKeyPress 1
+ autocomplete.xml obj-new Object 1
+ browser.js func BrowserLoadURL 1
+ browser.js func SetPageProxyState 1
+ browser.js func URLBarFocusHandler 1
+ browser.js func UpdateBackForwardButtons 1
+ browser.js func addEventListener 1
+ browser.js func addToUrlbarHistory 1
+ browser.js func canonizeUrl 1
+ browser.js func charsetLoadListener 1
+ browser.js func checkForDirectoryListing 1
+ browser.js func contentAreaClick 1
+ browser.js func createExposableURI 1
+ browser.js func createFixupURI 1
+ browser.js func getShortcutOrURI 1
+ browser.js func getWebNavigation 1
+ browser.js func handleURLBarCommand 1
+ browser.js func isSuccessCode 1
+ browser.js func markPageAsTyped 1
+ browser.js func resolveKeyword 1
+ browser.js func search 1
+ browser.js func test 1
+ browser.js func updateLastVisitedDate 1
+ browser.js obj-new Object 1
+ browser.js obj-new XPC_WN_NoMods_Proto_JSClass 1
+ browser.js obj-new nsJSCID 1
+ browser.xml func attachFormFill 1
+ browser.xml func getAttribute 1
+ browser.xml func getBoolPref 1
+ consoleAPI.js obj-new Call 1
+ findBar.js func getElementById 1
+ firebug.js func addEventListener 1
+ firebug.js obj-new Constructor 1
+ firebug.js obj-new Location 1
+ firebug.js obj-new Object 1
+ firebug.js obj-new XPC_WN_ModsAllowed_Proto_JSClass 1
+ func_slow.html exec . 1
+ func_slow.html func func_a 1
+ func_slow.html func func_b 1
+ func_slow.html func func_c 1
+ func_slow.html obj-new Function 1
+ preferences.js obj-new nsJSCID 1
+ reporterOverlay.js func getElementById 1
+ reporterOverlay.js func setAttribute 1
+ tabbox.xml func getAttribute 1
+ tabbrowser.xml func QueryInterface 1
+ tabbrowser.xml func getAnonymousElementByAttribute 1
+ tabbrowser.xml func getBrowserIndexForDocument 1
+ tabbrowser.xml func indexOf 1
+ tabbrowser.xml func push 1
+ tabbrowser.xml func setIcon 1
+ tabbrowser.xml func setTabTitle 1
+ tabbrowser.xml func shouldLoadFavIcon 1
+ tabbrowser.xml func updateTitlebar 1
+ tabbrowser.xml func useDefaultIcon 1
+ tabbrowser.xml obj-new Array 1
+ tabbrowser.xml obj-new String 1
+ textbox.xml func hasAttribute 1
+ textbox.xml func setAttribute 1
+ webdeveloper.js func getAttribute 1
+ webdeveloper.js func hasAttribute 1
+ webdeveloper.js func toLowerCase 1
+ webdeveloper.js func webdeveloper_changeOptions 1
+ webdeveloper.js func webdeveloper_configureElement 1
+ webdeveloper.js func webdeveloper_openToolbarButton 1
+ webdeveloper.js func webdeveloper_updateMetaRedirects 1
+ webdeveloper.js func webdeveloper_updateRenderMode 1
+ webdeveloper.js obj-new Array 1
+ webdeveloper.js obj-new String 1
+ <null> obj-free BoxObject 2
+ <null> obj-free HTMLBodyElement 2
+ <null> obj-free JSOptions 2
+ <null> obj-free JavaArray 2
+ <null> obj-free JavaClass 2
+ <null> obj-free JavaMember 2
+ <null> obj-free JavaObject 2
+ <null> obj-free PageTransitionEvent 2
+ <null> obj-free nsJSCID 2
+ <null> obj-new BoxObject 2
+ <null> obj-new HTMLBodyElement 2
+ <null> obj-new JSOptions 2
+ <null> obj-new JavaArray 2
+ <null> obj-new JavaClass 2
+ <null> obj-new JavaMember 2
+ <null> obj-new JavaObject 2
+ <null> obj-new PageTransitionEvent 2
+ autocomplete.xml func ensureRowIsVisible 2
+ autocomplete.xml func initSearchNames 2
+ autocomplete.xml func select 2
+ autocomplete.xml obj-new Function 2
+ browser.js func PageProxyClearIcon 2
+ browser.js func PageProxySetIcon 2
+ browser.js func URLBarClickHandler 2
+ browser.js func URLBarMouseDownHandler 2
+ browser.js func XPCNativeWrapper function wrapper 2
+ browser.js func getService 2
+ browser.js func loadURI 2
+ browser.js func notifyObservers 2
+ css.js func <null> 2
+ dom.js func <null> 2
+ events.js func <null> 2
+ firebug.js func appendChild 2
+ firebug.js obj-new XPC_WN_NoMods_Proto_JSClass 2
+ general.xml func getAttribute 2
+ layout.js func <null> 2
+ preferences.js func webdeveloper_getStringPreference 2
+ progressmeter.xml func createEvent 2
+ progressmeter.xml func dispatchEvent 2
+ progressmeter.xml func initEvent 2
+ progressmeter.xml func setAttribute 2
+ reporterOverlay.js obj-new Function 2
+ scrollbar.xml func indexOf 2
+ source.js func <null> 2
+ style.js func <null> 2
+ tabbox.xml func setAttribute 2
+ tabbrowser.xml func getBoolPref 2
+ tabbrowser.xml func getBrowserAtIndex 2
+ tabbrowser.xml func schemeIs 2
+ tabbrowser.xml func setAttribute 2
+ textbox.xml func setSelectionRange 2
+ toolbar.xml func updateStatusText 2
+ tree.xml obj-new Function 2
+ webdeveloper.js func getElementsByTagName 2
+ webdeveloper.js func removeAttribute 2
+ <null> obj-free DOM Constructor.prototype 3
+ <null> obj-free With 3
+ <null> obj-free nsXPCComponents 3
+ <null> obj-new Array 3
+ <null> obj-new DOM Constructor.prototype 3
+ <null> obj-new With 3
+ <null> obj-new XPC_WN_NoMods_Proto_JSClass 3
+ <null> obj-new nsXPCComponents 3
+ autocomplete.xml func getAttribute 3
+ browser.js func QueryInterface 3
+ func_slow.html func write 3
+ globalOverlay.js obj-new Function 3
+ progressmeter.xml func getAttribute 3
+ progressmeter.xml func round 3
+ scrollbar.xml obj-new String 3
+ tabbrowser.xml func <null> 3
+ tabbrowser.xml func hasAttribute 3
+ tabbrowser.xml func updateIcon 3
+ text.xml func setAttribute 3
+ textbox.xml func removeAttribute 3
+ utils.js func join 3
+ utils.js func splice 3
+ utils.js func toLowerCase 3
+ utils.js obj-new Array 3
+ utils.js obj-new String 3
+ autocomplete.xml func closePopup 4
+ browser.js func indexOf 4
+ browser.js obj-new Call 4
+ browser.xml func getInterface 4
+ preferences.js func webdeveloper_getBooleanPreference 4
+ tabbrowser.xml func getAttribute 4
+ tabbrowser.xml func removeAttribute 4
+ utilityOverlay.js func goUpdateGlobalEditMenuItems 4
+ utils.js func isElement 4
+ <null> obj-free Call 5
+ view.js func <null> 5
+ <null> obj-free XPCNativeWrapper 6
+ <null> obj-free XPC_WN_NoMods_Proto_JSClass 6
+ <null> obj-new XPCNativeWrapper 6
+ XStringBundle func GetStringFromName 6
+ XStringBundle func getString 6
+ autocomplete.xml func createEvent 6
+ autocomplete.xml func dispatchEvent 6
+ autocomplete.xml func initEvent 6
+ browser.js func getBrowser 6
+ browser.js func setTimeout 6
+ browser.js obj-new String 6
+ preferences.js func getBranch 6
+ preferences.js func getService 6
+ preferences.js func prefHasUserValue 6
+ preferences.js func webdeveloper_isPreferenceSet 6
+ tabbrowser.xml func getBrowserForTab 6
+ utils.js func <null> 6
+ webdeveloper.js obj-new Function 6
+ <null> obj-new Object 7
+ firebug.js func removeAttribute 7
+ tabbrowser.xml obj-new Function 7
+ tree.xml func QueryInterface 7
+ <null> obj-free Array 8
+ browser.js func hasAttribute 8
+ globalOverlay.js func removeAttribute 8
+ reporterOverlay.js func <null> 8
+ browser.js func getElementById 9
+ browser.js func setAttribute 9
+ browser.xml obj-new Function 9
+ webdeveloper.js func getElementById 9
+ <null> obj-free Constructor 10
+ <null> obj-free Object 10
+ <null> obj-free XPC_WN_ModsAllowed_Proto_JSClass 10
+ <null> obj-new Constructor 10
+ <null> obj-new XPC_WN_ModsAllowed_Proto_JSClass 10
+ browser.js func removeAttribute 10
+ firebug.js obj-new Function 10
+ text.xml obj-new String 12
+ webdeveloper.js func item 14
+ firebug.js func getElementById 15
+ <null> obj-free XULElement 16
+ button.xml func hasAttribute 16
+ <null> obj-free Event 17
+ browser.js func <null> 17
+ <null> obj-new Event 18
+ text.xml func getAttribute 19
+ firebug.js func getAttribute 20
+ globalOverlay.js func setAttribute 20
+ <null> obj-free MouseEvent 22
+ <null> obj-new MouseEvent 22
+ globalOverlay.js func isCommandEnabled 22
+ webdeveloper.js func setAttribute 22
+ <null> obj-free String 26
+ firebug.js func setAttribute 26
+ <null> obj-free RegExp 28
+ <null> obj-new RegExp 28
+ globalOverlay.js func getControllerForCommand 28
+ globalOverlay.js func getElementById 28
+ globalOverlay.js func goSetCommandEnabled 28
+ globalOverlay.js func goUpdateCommand 28
+ text.xml func test 28
+ browser.js obj-new Function 30
+ <null> obj-free XPCWrappedNative_NoHelper 32
+ <null> obj-new XPCWrappedNative_NoHelper 32
+ consoleAPI.js obj-new Function 33
+ browser.xml func QueryInterface 38
+ <null> obj-free JavaPackage 41
+ <null> obj-new JavaPackage 41
+ scrollbar.xml obj-new Function 61
+ firebug.js func <null> 62
+ text.xml exec . 84
+ <null> obj-new XULElement 85
+ <null> obj-new Function 172
+ <null> obj-free Function 310
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt
new file mode 100644
index 000000000000..0b69b76e0a7a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt
@@ -0,0 +1,60 @@
+The following are examples of js_calltime.d.
+
+This script traces the elapsed time of JavaScript functions and
+prints a report. Here it traces the example program,
+Code/JavaScript/func_clock.html
+
+# js_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ func_clock.html func func_a 3
+ func_clock.html func func_b 3
+ func_clock.html func func_c 3
+ func_clock.html func setTimeout 3
+ func_clock.html func start 3
+ func_clock.html obj-new Date 3
+ func_clock.html func getElementById 12
+ - total - 30
+
+Elapsed times (us),
+ FILE TYPE NAME TOTAL
+ - total - 29
+ func_clock.html obj-new Date 29
+
+Exclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_clock.html func setTimeout 229
+ func_clock.html func getElementById 378
+ func_clock.html func start 4061
+ func_clock.html func func_a 51080
+ func_clock.html func func_b 102943
+ func_clock.html func func_c 153330
+ - total - 312024
+
+Inclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_clock.html func setTimeout 229
+ func_clock.html func getElementById 378
+ func_clock.html func func_c 153454
+ func_clock.html func func_b 256470
+ func_clock.html func func_a 307601
+ func_clock.html func start 312054
+
+Counts shows us how many times each different function was called, and how
+many functions were called in total.
+
+The elapsed time shows us the time spent not in a JavaScript function.
+
+The exclusive function elapsed times show the time that each function spent
+processing code - while not in other functions.
+
+The inclusive function elapsed times show the time that each function spent
+processing code, including the time spent in other calls.
+
+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.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt
new file mode 100644
index 000000000000..c71a2ad82a2e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt
@@ -0,0 +1,112 @@
+The following are examples of js_cpudist.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a report
+in the form of a histogram. Here it traces the example program,
+Code/JavaScript/func_clock.html
+
+# js_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+ func_clock.html, obj-new, Date
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8 | 0
+
+
+Exclusive function on-CPU times (us),
+ func_clock.html, func, setTimeout
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@@@@@@@@ 2
+ 128 | 0
+
+ func_clock.html, func, getElementById
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@ 4
+ 16 |@@@@@@@@@@ 4
+ 32 |@@@@@@@@@@@@@@@@@@@@ 8
+ 64 | 0
+
+ func_clock.html, func, start
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 1024 | 0
+
+ func_clock.html, func, func_a
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 32768 | 0
+
+ func_clock.html, func, func_b
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 65536 | 0
+
+ func_clock.html, func, func_c
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 65536 | 0
+
+
+Inclusive function on-CPU times (us),
+ func_clock.html, func, setTimeout
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@@@@@@@@ 2
+ 128 | 0
+
+ func_clock.html, func, getElementById
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@ 4
+ 16 |@@@@@@@@@@ 4
+ 32 |@@@@@@@@@@@@@@@@@@@@ 8
+ 64 | 0
+
+ func_clock.html, func, func_c
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 65536 | 0
+
+ func_clock.html, func, func_a
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 131072 | 0
+
+ func_clock.html, func, func_b
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 131072 | 0
+
+ func_clock.html, func, start
+ value ------------- Distribution ------------- count
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 131072 | 0
+
+The first section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines. You can
+see here that func_a had four instances of being on-CPU between 16384
+microseconds and 32767 microseconds.
+
+The second section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions. You can see that here func_a had four instances of being
+on-CPU between 65536 microseconds and 131071 microseconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt
new file mode 100644
index 000000000000..dff42fdca9fa
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt
@@ -0,0 +1,69 @@
+The following are examples of js_cputime.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a report.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ func_clock.html func func_a 5
+ func_clock.html func func_b 5
+ func_clock.html func func_c 5
+ func_clock.html func setTimeout 5
+ func_clock.html func start 5
+ func_clock.html obj-new Date 5
+ func_clock.html func getElementById 20
+ - total - 50
+
+Elapsed times (us),
+ FILE TYPE NAME TOTAL
+ - total - 37
+ func_clock.html obj-new Date 37
+
+Exclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_clock.html func setTimeout 316
+ func_clock.html func getElementById 588
+ func_clock.html func start 4734
+ func_clock.html func func_a 83465
+ func_clock.html func func_b 166613
+ func_clock.html func func_c 247683
+ - total - 503402
+
+Inclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_clock.html func setTimeout 316
+ func_clock.html func getElementById 588
+ func_clock.html func func_c 247872
+ func_clock.html func func_b 414601
+ func_clock.html func func_a 498142
+ func_clock.html func start 503439
+
+You can see the results are printed in four sections.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"func", in this case the only elements reported here are Date obj-new.
+
+The exclusive subroutine on-CPU times shows, amongst other results, that func_a
+spent around 83,000 microseconds on-CPU. This time excludes time spent in
+other subroutines.
+
+The inclusive subroutine on-CPU times show that func_a spent around 0.5
+seconds on-CPU. This includes the time spent in other subroutines
+called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt
new file mode 100644
index 000000000000..d555c1a1c27d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt
@@ -0,0 +1,15 @@
+The following examples show the results of running the script js_execs.d.
+
+Here it runs on the program Code/JavaScript/func_clock.html. The script will
+show you every time something is executed, including page reloads and
+timeouts.
+
+# js_execs.d
+TIME FILE:LINENO
+2007 Sep 23 22:54:31 func_clock.html:32
+2007 Sep 23 22:54:32 func_clock.html:32
+2007 Sep 23 22:54:34 func_clock.html:32
+2007 Sep 23 22:54:35 func_clock.html:32
+2007 Sep 23 22:54:36 func_clock.html:32
+^C
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt
new file mode 100644
index 000000000000..7a9278d7ce6b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt
@@ -0,0 +1,41 @@
+The following are examples of js_flow.d.
+
+This is a simple script to trace the flow of JavaScript functions.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_flow.d
+ C TIME(us) FILE -- FUNC
+ 0 3650471830941 func_clock.html -> start
+ 0 3650471831005 func_clock.html -> getElementById
+ 0 3650471831058 func_clock.html <- getElementById
+ 0 3650471831890 func_clock.html -> func_a
+ 0 3650471831906 func_clock.html -> getElementById
+ 0 3650471831929 func_clock.html <- getElementById
+ 0 3650471850084 func_clock.html -> func_b
+ 0 3650471850111 func_clock.html -> getElementById
+ 0 3650471850146 func_clock.html <- getElementById
+ 0 3650471886534 func_clock.html -> func_c
+ 0 3650471886573 func_clock.html -> getElementById
+ 0 3650471886624 func_clock.html <- getElementById
+ 0 3650471942212 func_clock.html <- func_c
+ 0 3650471942231 func_clock.html <- func_b
+ 0 3650471942242 func_clock.html <- func_a
+ 0 3650471942300 func_clock.html -> setTimeout
+ 0 3650471942392 func_clock.html <- setTimeout
+ 0 3650471942404 func_clock.html <- start
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above shows that
+func_a called func_b, which in turn called func_c.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt
new file mode 100644
index 000000000000..45970c1f9e64
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt
@@ -0,0 +1,42 @@
+Following are examples of js_flowinfo.d.
+
+This is a simple script to trace the flow of JavaScript functions. Here it
+traces the example program Code/JavaScript/func_clock.html
+
+# js_flowinfo.d
+ C PID DELTA(us) FILE:LINE TYPE -- FUNC
+ 0 11651 2 .:0 func -> start
+ 0 11651 75 func_clock.html:30 func -> getElementById
+ 0 11651 51 func_clock.html:- func <- getElementById
+ 0 11651 479 func_clock.html:31 func -> func_a
+ 0 11651 25 func_clock.html:21 func -> getElementById
+ 0 11651 23 func_clock.html:- func <- getElementById
+ 0 11651 30611 func_clock.html:25 func -> func_b
+ 0 11651 79 func_clock.html:13 func -> getElementById
+ 0 11651 51 func_clock.html:- func <- getElementById
+ 0 11651 33922 func_clock.html:17 func -> func_c
+ 0 11651 75 func_clock.html:6 func -> getElementById
+ 0 11651 50 func_clock.html:- func <- getElementById
+ 0 11651 50481 func_clock.html:- func <- func_c
+ 0 11651 24 func_clock.html:- func <- func_b
+ 0 11651 10 func_clock.html:- func <- func_a
+ 0 11651 39 func_clock.html:32 func -> setTimeout
+ 0 11651 118 func_clock.html:- func <- setTimeout
+ 0 11651 11 func_clock.html:- func <- start
+^C
+
+As each function is entered, the last column is indented by 2 spaces. This
+shows which function is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The FILE::LINE column shows which line in which file was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt
new file mode 100644
index 000000000000..46b2f2f12b28
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt
@@ -0,0 +1,42 @@
+The following are examples of js_flowtime.d.
+
+This is a simple script to trace the flow of JavaScript functions.
+Here it traces the example program, Code/JavaScript/func_clock.html
+
+# js_flowtime.d
+ C TIME(us) FILE DELTA(us) -- FUNC
+ 0 3650523390654 func_clock.html 2 -> start
+ 0 3650523390721 func_clock.html 67 -> getElementById
+ 0 3650523390773 func_clock.html 51 <- getElementById
+ 0 3650523391609 func_clock.html 835 -> func_a
+ 0 3650523391627 func_clock.html 18 -> getElementById
+ 0 3650523391651 func_clock.html 23 <- getElementById
+ 0 3650523409735 func_clock.html 18084 -> func_b
+ 0 3650523409763 func_clock.html 27 -> getElementById
+ 0 3650523409795 func_clock.html 32 <- getElementById
+ 0 3650523445921 func_clock.html 36125 -> func_c
+ 0 3650523445959 func_clock.html 38 -> getElementById
+ 0 3650523446004 func_clock.html 44 <- getElementById
+ 0 3650523500557 func_clock.html 54552 <- func_c
+ 0 3650523500581 func_clock.html 24 <- func_b
+ 0 3650523500593 func_clock.html 11 <- func_a
+ 0 3650523500648 func_clock.html 54 -> setTimeout
+ 0 3650523500736 func_clock.html 88 <- setTimeout
+ 0 3650523500749 func_clock.html 12 <- start
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+shows that a getElementById function happened 67 microseconds after start.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt
new file mode 100644
index 000000000000..9e9a957ff9b9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt
@@ -0,0 +1,317 @@
+The following are examples of running js_objcpu.d.
+
+This script will show the time on-CPU of object creation events in graphical
+format.
+
+Here we see it running on Code/JavaScript/func_clock.html
+
+# js_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 0
+
+Object creation on-CPU time distributions (us),
+
+ Date
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 | 0
+
+We can see that there were two object creation events, both of type 'Date'
+that spent between 8 microseconds and 15 microseconds on-CPU each.
+
+
+Here we see the results of having Code/JavaScript/func_slow.html in a browser
+window and hitting reload. This includes events that happen due to mouse
+movement.
+
+# js_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 2
+
+Object creation on-CPU time distributions (us),
+
+ HTMLBodyElement
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ HTMLCollection
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ HTMLDocument
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ HTMLHtmlElement
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ Location
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ NodeList
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ StyleSheetList
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ Window
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ chrome://global/content/bindings/popup.xml#popup 8830492
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ chrome://global/content/bindings/scrollbar.xml#scrollbar 8beef52
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ BarProp
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ BoxObject
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ CSSStyleDeclaration
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ chrome://global/content/bindings/popup.xml#popup 8bef592
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ nsXPCComponents_Classes
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ nsJSCID
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ nsXPCComponents
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ Global Scope Polluter
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ JavaArray
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ JavaClass
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ JavaMember
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ JavaObject
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ KeyboardEvent
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ XPC_WN_NoMods_Proto_JSClass
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 |@@@@@@@@@@ 1
+ 8 | 0
+
+ PageTransitionEvent
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ JSOptions
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 | 0
+
+ Call
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 8 | 0
+
+ DOM Constructor.prototype
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ With
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@ 1
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 | 0
+
+ Constructor
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9
+ 4 |@@@@ 1
+ 8 | 0
+
+ Object
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@ 3
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 8 | 0
+
+ XPCNativeWrapper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@ 1
+ 16 | 0
+
+ XULElement
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@ 5
+ 4 |@@@@@@@@@@@@@@@@@@ 4
+ 8 | 0
+
+ Array
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 8 | 0
+
+ XPCWrappedNative_NoHelper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@ 3
+ 4 |@@@@@@@@@@@@@@@@@@@@ 4
+ 8 |@@@@@ 1
+ 16 | 0
+
+ XPC_WN_ModsAllowed_Proto_JSClass
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 4 |@@@@@@@@@@@@ 3
+ 8 |@@@@ 1
+ 16 | 0
+
+ MouseEvent
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@ 3
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 16 | 0
+
+ String
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 11
+ 8 | 0
+
+ Event
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 8 |@@@@@@@@@ 3
+ 16 | 0
+
+ JavaPackage
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 40
+ 4 | 0
+ 8 |@ 1
+ 16 | 0
+
+ Function
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 246
+ 4 |@@@@@@@ 58
+ 8 |@ 8
+ 16 |@ 9
+ 32 | 0
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt
new file mode 100644
index 000000000000..711b223d08e6
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt
@@ -0,0 +1,230 @@
+Following are examples of running js_objgc.d.
+
+This script reports on the garbage collection of Java objects. That is it
+will keep track of when resources are allocated to an object, and when
+resources are freed from an object. It is useful for providing information on
+when garbage collection is not working correctly, as this can cause the
+browser to have a memory leak.
+
+We trace object creation (+1) and destruction (-1), and provide a summary
+each second of the running tally of the object class and originating filename.
+
+Here we can see it running on Code/JavaScript/func_clock.html
+
+# js_objgc.d
+Tracing... Hit Ctrl-C to end.
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:24
+ func_clock.html 1 Date
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:25
+ func_clock.html 2 Date
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:26
+ func_clock.html 3 Date
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:27
+ func_clock.html 4 Date
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:28
+ func_clock.html 5 Date
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:29
+ browser.js 3 Function
+ <null> 5 Function
+ func_clock.html 6 Date
+ <null> 7 MouseEvent
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:30
+ browser.js 3 Function
+ <null> 5 Function
+ func_clock.html 7 Date
+ <null> 10 MouseEvent
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:31
+ <null> 1 Constructor
+ <null> 1 HTMLBodyElement
+ <null> 1 XPCNativeWrapper
+ <null> 1 XPC_WN_ModsAllowed_Proto_JSClass
+ browser.js 1 Array
+ browser.js 1 XPCNativeWrapper
+ popup.xml 1 Array
+ func_clock.html 7 Date
+ <null> 13 MouseEvent
+ <null> 18 Function
+ browser.js 20 Function
+
+ FILE TOTAL CLASS 2007 Sep 23 22:59:32
+ <null> 1 BoxObject
+ <null> 1 Constructor
+ <null> 1 HTMLBodyElement
+ <null> 1 NodeList
+ <null> 1 UIEvent
+ <null> 1 XPCNativeWrapper
+ <null> 1 XPC_WN_ModsAllowed_Proto_JSClass
+ <null> 1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null> 1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ bookmarksMenu.js 1 Function
+ browser.js 1 Array
+ browser.js 1 XPCNativeWrapper
+ popup.xml 1 Function
+ scrollbox.xml 1 Function
+ <null> 2 Event
+ popup.xml 2 Array
+ bookmarks.js 3 With
+ firebug-service.js 3 Object
+ bookmarks.js 6 Object
+ bookmarks.js 6 XPCWrappedNative_NoHelper
+ func_clock.html 8 Date
+ firebug-service.js 10 Function
+ <null> 15 MouseEvent
+ bookmarks.js 19 Error
+ browser.js 20 Function
+ bookmarks.js 22 Function
+ <null> 39 XPCWrappedNative_NoHelper
+ <null> 44 Function
+ <null> 60 RegExp
+ <null> 191 XULElement
+
+[... 39 seconds deleted ...]
+
+ FILE TOTAL CLASS 2007 Sep 23 23:00:10
+ <null> 1 HTMLBodyElement
+ <null> 1 HTMLCollection
+ <null> 1 TreeColumns
+ <null> 1 XPCNativeWrapper
+ <null> 1 XPC_WN_NoMods_Proto_JSClass
+ <null> 1 XULTreeBuilder
+ <null> 1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null> 1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ <null> 1 chrome://global/content/bindings/tree.xml#treebody 84caa3a
+ <null> 1 chrome://global/content/bindings/tree.xml#treebody 84e3a72
+ <null> 1 nsXPCComponents_Interfaces
+ <null> 1 nsXPCComponents_Results
+ bookmarksMenu.js 1 Function
+ browser.js 1 Array
+ browser.js 1 XPCNativeWrapper
+ browser.js 1 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js 1 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js 1 nsJSCID
+ popup.xml 1 Function
+ scrollbar.xml 1 String
+ scrollbox.xml 1 Function
+ tree.xml 1 Array
+ <null> 2 Constructor
+ <null> 2 UIEvent
+ <null> 2 XPC_WN_ModsAllowed_Proto_JSClass
+ <null> 2 nsXPCComponents_Classes
+ browser.js 2 nsJSCID
+ browser.js 2 nsJSIID
+ utilityOverlay.js 2 nsJSCID
+ utilityOverlay.js 2 nsJSIID
+ <null> 3 Array
+ <null> 3 NodeList
+ nsUpdateService.js 3 Array
+ nsUpdateService.js 3 Object
+ nsUpdateService.js 3 With
+ utilityOverlay.js 3 Call
+ tree.xml 4 Function
+ utilityOverlay.js 4 Function
+ nsUpdateService.js 7 nsJSIID
+ nsUpdateService.js 15 Function
+ bookmarks.js 22 Function
+ text.xml 23 String
+ <null> 36 BoxObject
+ func_clock.html 42 Date
+ bookmarks.js 57 With
+ firebug-service.js 57 Object
+ bookmarks.js 73 Error
+ browser.js 78 Function
+ popup.xml 82 Array
+ bookmarks.js 114 Object
+ bookmarks.js 114 XPCWrappedNative_NoHelper
+ <null> 157 MouseEvent
+ firebug-service.js 172 Function
+ <null> 307 XPCWrappedNative_NoHelper
+ <null> 388 RegExp
+ <null> 488 Event
+ <null> 876 XULElement
+ <null> 1221 Function
+
+ FILE TOTAL CLASS 2007 Sep 23 23:00:11
+ <missed> -94 Date
+ <missed> -34 Function
+ <missed> -4 MouseEvent
+ <missed> -2 Array
+ <missed> -1 HTMLBodyElement
+ <missed> -1 HTMLCollection
+ <missed> -1 XPCNativeWrapper
+ <missed> -1 XPC_WN_ModsAllowed_Proto_JSClass
+ <null> 0 Array
+ <null> 0 HTMLBodyElement
+ <null> 0 HTMLCollection
+ <null> 0 RegExp
+ <null> 0 TreeColumns
+ <null> 0 UIEvent
+ <null> 0 XPC_WN_NoMods_Proto_JSClass
+ <null> 0 XULTreeBuilder
+ <null> 0 nsXPCComponents_Classes
+ <null> 0 nsXPCComponents_Interfaces
+ <null> 0 nsXPCComponents_Results
+ browser.js 0 Array
+ browser.js 0 XPCNativeWrapper
+ browser.js 0 XPC_WN_NoMods_Proto_JSClass
+ browser.js 0 nsJSCID
+ nsUpdateService.js 0 Array
+ nsUpdateService.js 0 Function
+ nsUpdateService.js 0 Object
+ nsUpdateService.js 0 With
+ nsUpdateService.js 0 XPC_WN_NoMods_Proto_JSClass
+ nsUpdateService.js 0 nsJSCID
+ nsUpdateService.js 0 nsJSIID
+ scrollbar.xml 0 String
+ text.xml 0 String
+ tree.xml 0 Array
+ utilityOverlay.js 0 Call
+ utilityOverlay.js 0 Function
+ utilityOverlay.js 0 nsJSCID
+ <null> 1 NodeList
+ <null> 1 XPCNativeWrapper
+ <null> 1 chrome://global/content/bindings/menu.xml#menu-iconic 84ff45a
+ <null> 1 chrome://global/content/bindings/menu.xml#menu-iconic 8befbba
+ <null> 1 chrome://global/content/bindings/tree.xml#treebody 84caa3a
+ <null> 1 chrome://global/content/bindings/tree.xml#treebody 84e3a72
+ bookmarksMenu.js 1 Function
+ browser.xul 1 Function
+ func_clock.html 1 Date
+ popup.xml 1 Function
+ scrollbox.xml 1 XULElement
+ scrollbox.xml 1 nsJSIID
+ <null> 2 Constructor
+ <null> 2 XPC_WN_ModsAllowed_Proto_JSClass
+ browser.js 2 nsJSIID
+ scrollbox.xml 2 Function
+ tree.xml 2 Function
+ utilityOverlay.js 2 nsJSIID
+ popup.xml 3 Array
+ bookmarks.js 5 With
+ firebug-service.js 5 Object
+ <null> 6 Event
+ <null> 6 MouseEvent
+ bookmarks.js 9 XPCWrappedNative_NoHelper
+ <null> 10 XPCWrappedNative_NoHelper
+ bookmarks.js 10 Object
+ browser.js 10 Function
+ bookmarks.js 15 Function
+ firebug-service.js 16 Function
+ <null> 18 BoxObject
+ bookmarks.js 75 Error
+ <null> 79 Function
+ <null> 315 XULElement
+^C
+
+Just after time 23:00:10, garbage collection fired cleaning up many objects.
+The final output shows a much reduced object count including a negative
+count for objects created before this script was tracing.
+
+If over the period of several minutes an object type is still steadily
+increasing, then that would be of interest. Be patient, depending on the rate
+of object creation it can take over ten minutes for garbage collect to kick in.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt
new file mode 100644
index 000000000000..c3a888120f78
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt
@@ -0,0 +1,100 @@
+The following are examples of the results of running js_objnew.d.
+
+It reports on the class type of new objects created.
+
+Here we can see it running on the program Code/JavaScript/func_clock.html.
+
+# js_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE CLASS COUNT
+ func_clock.html Date 2
+
+The results are very simple, func_clock.html caused two new objects to be
+created, both of type 'Date'.
+
+
+Here is a more complicated example, running on the program
+Code/JavaScript/func_slow.html, with the results of that plus JavaScript caused
+by hitting reload on the browser.
+
+
+# js_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE CLASS COUNT
+ <null> BarProp 1
+ <null> CSSStyleDeclaration 1
+ <null> Global Scope Polluter 1
+ <null> HTMLBodyElement 1
+ <null> HTMLDocument 1
+ <null> HTMLHtmlElement 1
+ <null> NodeList 1
+ <null> StyleSheetList 1
+ <null> TreeSelection 1
+ <null> Window 1
+ <null> XULCommandDispatcher 1
+ <null> chrome://global/content/bindings/popup.xml#popup 8c35c92 1
+ <null> chrome://global/content/bindings/popup.xml#popup 8fb299a 1
+ <null> chrome://global/content/bindings/scrollbar.xml#scrollbar 8fb2ea2 1
+ <null> nsXPCComponents_Classes 1
+ <null> xpcTempGlobalClass 1
+ autocomplete.xml Object 1
+ browser.js Array 1
+ browser.js Object 1
+ browser.js XPC_WN_NoMods_Proto_JSClass 1
+ browser.js nsJSCID 1
+ consoleAPI.js Call 1
+ firebug.js Constructor 1
+ firebug.js Location 1
+ firebug.js Object 1
+ firebug.js XPC_WN_ModsAllowed_Proto_JSClass 1
+ func_slow.html Function 1
+ popup.xml Array 1
+ preferences.js nsJSCID 1
+ tabbrowser.xml Array 1
+ tabbrowser.xml String 1
+ webdeveloper.js Array 1
+ webdeveloper.js String 1
+ <null> BoxObject 2
+ <null> JSOptions 2
+ <null> JavaArray 2
+ <null> JavaClass 2
+ <null> JavaMember 2
+ <null> JavaObject 2
+ <null> PageTransitionEvent 2
+ autocomplete.xml Function 2
+ firebug.js XPC_WN_NoMods_Proto_JSClass 2
+ reporterOverlay.js Function 2
+ tree.xml Function 2
+ <null> Array 3
+ <null> DOM Constructor.prototype 3
+ <null> With 3
+ <null> XPC_WN_NoMods_Proto_JSClass 3
+ <null> nsXPCComponents 3
+ globalOverlay.js Function 3
+ scrollbar.xml String 3
+ utils.js Array 3
+ utils.js String 3
+ browser.js Call 4
+ func_clock.html Date 4
+ webdeveloper.js Function 4
+ <null> XPCNativeWrapper 5
+ browser.js String 6
+ <null> Object 7
+ tabbrowser.xml Function 7
+ <null> XPC_WN_ModsAllowed_Proto_JSClass 8
+ <null> Constructor 9
+ browser.xml Function 9
+ firebug.js Function 10
+ <null> MouseEvent 12
+ <null> XPCWrappedNative_NoHelper 13
+ <null> KeyboardEvent 14
+ <null> XULElement 16
+ <null> Event 29
+ browser.js Function 33
+ consoleAPI.js Function 33
+ <null> JavaPackage 41
+ scrollbar.xml Function 61
+ <null> Function 211
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt
new file mode 100644
index 000000000000..b658b4f05422
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt
@@ -0,0 +1,35 @@
+The following are examples of running js_stat.d
+
+Here is the result after running the program Code/JavaScript/func_clock.html.
+
+# js_stat.d
+TIME EXEC/s FUNC/s OBJNEW/s OBJFRE/s
+2007 Sep 23 23:04:59 1 9 1 0
+2007 Sep 23 23:05:00 1 9 1 0
+2007 Sep 23 23:05:01 1 9 1 0
+2007 Sep 23 23:05:02 1 6 1 0
+2007 Sep 23 23:05:03 0 3 0 0
+2007 Sep 23 23:05:04 1 9 1 0
+2007 Sep 23 23:05:05 1 9 1 0
+2007 Sep 23 23:05:06 1 9 1 0
+^C
+
+We can see that at 2007 Sep 23 23:05:02 there was one JavaScript program
+executed, six functions called, one new object created and no objects freed.
+
+
+Here is the result after running the program Code/JavaScript/func_slow.html.
+This also includes browser JavaScript.
+
+# js_stat.d
+TIME EXEC/s FUNC/s OBJNEW/s OBJFRE/s
+2007 Sep 23 23:05:48 1 124 41 0
+2007 Sep 23 23:05:49 1 29 19 0
+2007 Sep 23 23:05:50 1 29 25 0
+2007 Sep 23 23:05:51 1 670 497 0
+2007 Sep 23 23:05:52 0 62 11 0
+2007 Sep 23 23:05:53 0 0 6 617
+2007 Sep 23 23:05:54 0 0 0 0
+2007 Sep 23 23:05:55 0 0 0 0
+^C
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt
new file mode 100644
index 000000000000..06e3e31c6020
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt
@@ -0,0 +1,59 @@
+The following examples are the results of running the js_who.d script while
+various JavaScript events happen.
+
+A JavaScript program that behaves like a clock is frequently used by these
+examples, since it can be left running in the background without browser
+input. Browser input, such as hitting the reload button or using menus,
+triggers many other JavaScript events since much of the browser uses
+JavaScript. This makes for interesting longer examples, but would be
+overwhelming for example #1.
+
+In the first example, we can see what happens when we run this program,
+Code/JavaScript/func_clock.html
+
+# js_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID FUNCS FILE
+ 10530 100 18 file:///export/home/brendan/Lang/JavaScript/func_clock.html
+
+
+The second example is more complex, the reason for this is that the program
+Code/Javascript/func_slow.html was loaded in the browser, and the reload
+button was pressed. This output captured the many browser events that occured
+when moving the mouse pointer to do so.
+
+# js_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID FUNCS FILE
+ 10530 100 2 chrome://firebug/content/views/css.js
+ 10530 100 2 chrome://firebug/content/views/dom.js
+ 10530 100 2 chrome://firebug/content/views/events.js
+ 10530 100 2 chrome://firebug/content/views/layout.js
+ 10530 100 2 chrome://firebug/content/views/source.js
+ 10530 100 2 chrome://firebug/content/views/style.js
+ 10530 100 2 chrome://global/content/bindings/scrollbar.xml
+ 10530 100 3 chrome://global/content/bindings/general.xml
+ 10530 100 3 chrome://global/content/bindings/tabbox.xml
+ 10530 100 3 chrome://global/content/bindings/text.xml
+ 10530 100 4 chrome://browser/content/utilityOverlay.js
+ 10530 100 5 chrome://firebug/content/views/view.js
+ 10530 100 6 file:///export/home/brendan/Lang/JavaScript/func_slow.html
+ 10530 100 7 chrome://global/content/bindings/textbox.xml
+ 10530 100 7 chrome://global/content/bindings/tree.xml
+ 10530 100 10 chrome://reporter/content/reporterOverlay.js
+ 10530 100 12 XStringBundle
+ 10530 100 14 chrome://global/content/bindings/progressmeter.xml
+ 10530 100 18 file:///export/home/brendan/Lang/JavaScript/func_clock.html
+ 10530 100 19 chrome://firebug/content/utils.js
+ 10530 100 30 chrome://webdeveloper/content/common/preferences.js
+ 10530 100 43 chrome://global/content/bindings/browser.xml
+ 10530 100 44 chrome://global/content/bindings/tabbrowser.xml
+ 10530 100 72 chrome://global/content/bindings/button.xml
+ 10530 100 88 chrome://global/content/bindings/autocomplete.xml
+ 10530 100 110 chrome://browser/content/browser.js
+ 10530 100 121 chrome://webdeveloper/content/webdeveloper.js
+ 10530 100 133 chrome://firebug/content/firebug.js
+ 10530 100 162 chrome://global/content/globalOverlay.js
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/kill_example.txt b/cddl/contrib/dtracetoolkit/Examples/kill_example.txt
new file mode 100644
index 000000000000..f73621c6d252
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/kill_example.txt
@@ -0,0 +1,12 @@
+This is an example of the kill.d DTrace script,
+
+ # kill.d
+ FROM COMMAND SIG TO RESULT
+ 2344 bash 2 3117 0
+ 2344 bash 9 12345 -1
+ ^C
+
+In the above output, a kill -2 (Ctrl-C) was sent from the bash command
+to PID 3177. Then a kill -9 (SIGKILL) was sent to PID 12345 - which
+returned a "-1" for failure.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt b/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt
new file mode 100644
index 000000000000..8ffecbff70eb
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt
@@ -0,0 +1,1358 @@
+The following are demonstrations of the kstat_types.d script.
+
+
+Here kstat_types.d is used to trace the kstat activity of the vmstat command,
+
+ # ./kstat_types.d
+ CMD CLASS TYPE MOD:INS:NAME
+ vmstat . raw :0:kstat_headers
+ vmstat . raw :0:kstat_headers
+ vmstat misc named cpu_info:0:cpu_info0
+ vmstat misc named cpu:0:vm
+ vmstat misc named cpu:0:sys
+ vmstat disk io cmdk:0:cmdk0
+ vmstat disk io sd:0:sd0
+ vmstat misc raw unix:0:sysinfo
+ vmstat vm raw unix:0:vminfo
+ vmstat misc named unix:0:dnlcstats
+ vmstat misc named unix:0:system_misc
+ ^C
+
+Details of each lookup can be seen, including each disk device that
+was read.
+
+
+
+This is mpstat on a single CPU server,
+
+ # ./kstat_types.d
+ CMD CLASS TYPE MOD:INS:NAME
+ mpstat . raw :0:kstat_headers
+ mpstat . raw :0:kstat_headers
+ mpstat misc named cpu_info:0:cpu_info0
+ mpstat misc named cpu:0:vm
+ mpstat misc named cpu:0:sys
+ ^C
+
+The output shows that the focus was CPU statistics, as expected.
+
+
+
+The following has caught in.routed reading some statistics,
+
+ # ./kstat_types.d
+ CMD CLASS TYPE MOD:INS:NAME
+ in.routed . raw :0:kstat_headers
+ in.routed . raw :0:kstat_headers
+ in.routed net named lo:0:lo0
+ in.routed . raw :0:kstat_headers
+ in.routed . raw :0:kstat_headers
+ in.routed net named rtls:0:rtls0
+ in.routed . raw :0:kstat_headers
+ in.routed . raw :0:kstat_headers
+ in.routed net named rtls:0:rtls0
+ ^C
+
+Which shows that the network interfaces were checked.
+
+
+
+Finally, this is the kstats used when a "sar -u 1 1" command is run.
+ie, this thing,
+
+ $ sar -u 1 1
+
+ SunOS jupiter 5.10 Generic i86pc 04/21/2006
+
+ 23:28:53 %usr %sys %wio %idle
+ 23:28:54 1 3 0 96
+
+sar actually forks a child "sadc" to do the lookups. sadc caused the
+following kstat lookups (I'm not making this up),
+
+ # ./kstat_types.d
+ CMD CLASS TYPE MOD:INS:NAME
+ sadc . raw :0:kstat_headers
+ sadc . raw :0:kstat_headers
+ sadc misc named unix:0:system_misc
+ sadc kmem_cache named unix:0:file_cache
+ sadc vmem named vmem:16:kmem_oversize
+ sadc ufs named ufs:0:inode_cache
+ sadc misc raw unix:0:var
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc kmem_cache named unix:0:kmem_magazine_3
+ sadc kmem_cache named unix:0:kmem_magazine_7
+ sadc kmem_cache named unix:0:kmem_magazine_15
+ sadc kmem_cache named unix:0:kmem_magazine_31
+ sadc kmem_cache named unix:0:kmem_magazine_47
+ sadc kmem_cache named unix:0:kmem_magazine_63
+ sadc kmem_cache named unix:0:kmem_magazine_95
+ sadc kmem_cache named unix:0:kmem_magazine_143
+ sadc kmem_cache named unix:0:kmem_slab_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_audit_cache
+ sadc kmem_cache named unix:0:kmem_va_4096
+ sadc kmem_cache named unix:0:kmem_va_8192
+ sadc kmem_cache named unix:0:kmem_va_12288
+ sadc kmem_cache named unix:0:kmem_va_16384
+ sadc kmem_cache named unix:0:kmem_va_20480
+ sadc kmem_cache named unix:0:kmem_va_24576
+ sadc kmem_cache named unix:0:kmem_va_28672
+ sadc kmem_cache named unix:0:kmem_va_32768
+ sadc kmem_cache named unix:0:kmem_alloc_8
+ sadc kmem_cache named unix:0:kmem_alloc_16
+ sadc kmem_cache named unix:0:kmem_alloc_24
+ sadc kmem_cache named unix:0:kmem_alloc_32
+ sadc kmem_cache named unix:0:kmem_alloc_40
+ sadc kmem_cache named unix:0:kmem_alloc_48
+ sadc kmem_cache named unix:0:kmem_alloc_56
+ sadc kmem_cache named unix:0:kmem_alloc_64
+ sadc kmem_cache named unix:0:kmem_alloc_80
+ sadc kmem_cache named unix:0:kmem_alloc_96
+ sadc kmem_cache named unix:0:kmem_alloc_112
+ sadc kmem_cache named unix:0:kmem_alloc_128
+ sadc kmem_cache named unix:0:kmem_alloc_160
+ sadc kmem_cache named unix:0:kmem_alloc_192
+ sadc kmem_cache named unix:0:kmem_alloc_224
+ sadc kmem_cache named unix:0:kmem_alloc_256
+ sadc kmem_cache named unix:0:kmem_alloc_320
+ sadc kmem_cache named unix:0:kmem_alloc_384
+ sadc kmem_cache named unix:0:kmem_alloc_448
+ sadc kmem_cache named unix:0:kmem_alloc_512
+ sadc kmem_cache named unix:0:kmem_alloc_640
+ sadc kmem_cache named unix:0:kmem_alloc_768
+ sadc kmem_cache named unix:0:kmem_alloc_896
+ sadc kmem_cache named unix:0:kmem_alloc_1152
+ sadc kmem_cache named unix:0:kmem_alloc_1344
+ sadc kmem_cache named unix:0:kmem_alloc_1600
+ sadc kmem_cache named unix:0:kmem_alloc_2048
+ sadc kmem_cache named unix:0:kmem_alloc_2688
+ sadc kmem_cache named unix:0:kmem_alloc_4096
+ sadc kmem_cache named unix:0:kmem_alloc_8192
+ sadc kmem_cache named unix:0:kmem_alloc_12288
+ sadc kmem_cache named unix:0:kmem_alloc_16384
+ sadc kmem_cache named unix:0:streams_mblk
+ sadc kmem_cache named unix:0:streams_dblk_64
+ sadc kmem_cache named unix:0:streams_dblk_128
+ sadc kmem_cache named unix:0:streams_dblk_320
+ sadc kmem_cache named unix:0:streams_dblk_576
+ sadc kmem_cache named unix:0:streams_dblk_1088
+ sadc kmem_cache named unix:0:streams_dblk_1536
+ sadc kmem_cache named unix:0:streams_dblk_1984
+ sadc kmem_cache named unix:0:streams_dblk_2624
+ sadc kmem_cache named unix:0:streams_dblk_3968
+ sadc kmem_cache named unix:0:streams_dblk_8192
+ sadc kmem_cache named unix:0:streams_dblk_12160
+ sadc kmem_cache named unix:0:streams_dblk_16384
+ sadc kmem_cache named unix:0:streams_dblk_20352
+ sadc kmem_cache named unix:0:streams_dblk_24576
+ sadc kmem_cache named unix:0:streams_dblk_28544
+ sadc kmem_cache named unix:0:streams_dblk_32768
+ sadc kmem_cache named unix:0:streams_dblk_36736
+ sadc kmem_cache named unix:0:streams_dblk_40960
+ sadc kmem_cache named unix:0:streams_dblk_44928
+ sadc kmem_cache named unix:0:streams_dblk_49152
+ sadc kmem_cache named unix:0:streams_dblk_53120
+ sadc kmem_cache named unix:0:streams_dblk_57344
+ sadc kmem_cache named unix:0:streams_dblk_61312
+ sadc kmem_cache named unix:0:streams_dblk_65536
+ sadc kmem_cache named unix:0:streams_dblk_69504
+ sadc kmem_cache named unix:0:streams_dblk_73728
+ sadc kmem_cache named unix:0:streams_dblk_esb
+ sadc kmem_cache named unix:0:streams_fthdr
+ sadc kmem_cache named unix:0:streams_ftblk
+ sadc kmem_cache named unix:0:multidata
+ sadc kmem_cache named unix:0:multidata_pdslab
+ sadc kmem_cache named unix:0:multidata_pattbl
+ sadc kmem_cache named unix:0:taskq_ent_cache
+ sadc kmem_cache named unix:0:taskq_cache
+ sadc kmem_cache named unix:0:kmem_io_512M_128
+ sadc kmem_cache named unix:0:kmem_io_512M_256
+ sadc kmem_cache named unix:0:kmem_io_512M_512
+ sadc kmem_cache named unix:0:kmem_io_512M_1024
+ sadc kmem_cache named unix:0:kmem_io_512M_2048
+ sadc kmem_cache named unix:0:kmem_io_512M_4096
+ sadc kmem_cache named unix:0:kmem_io_16M_128
+ sadc kmem_cache named unix:0:kmem_io_16M_256
+ sadc kmem_cache named unix:0:kmem_io_16M_512
+ sadc kmem_cache named unix:0:kmem_io_16M_1024
+ sadc kmem_cache named unix:0:kmem_io_16M_2048
+ sadc kmem_cache named unix:0:kmem_io_16M_4096
+ sadc kmem_cache named unix:0:id32_cache
+ sadc kmem_cache named unix:0:bp_map_4096
+ sadc kmem_cache named unix:0:bp_map_8192
+ sadc kmem_cache named unix:0:bp_map_12288
+ sadc kmem_cache named unix:0:bp_map_16384
+ sadc kmem_cache named unix:0:bp_map_20480
+ sadc kmem_cache named unix:0:bp_map_24576
+ sadc kmem_cache named unix:0:bp_map_28672
+ sadc kmem_cache named unix:0:bp_map_32768
+ sadc kmem_cache named unix:0:mod_hash_entries
+ sadc kmem_cache named unix:0:ipp_mod
+ sadc kmem_cache named unix:0:ipp_action
+ sadc kmem_cache named unix:0:ipp_packet
+ sadc kmem_cache named unix:0:htable_t
+ sadc kmem_cache named unix:0:hment_t
+ sadc kmem_cache named unix:0:hat_t
+ sadc kmem_cache named unix:0:HatHash
+ sadc kmem_cache named unix:0:seg_cache
+ sadc kmem_cache named unix:0:snode_cache
+ sadc kmem_cache named unix:0:dv_node_cache
+ sadc kmem_cache named unix:0:dev_info_node_cache
+ sadc kmem_cache named unix:0:segkp_4096
+ sadc kmem_cache named unix:0:segkp_8192
+ sadc kmem_cache named unix:0:segkp_12288
+ sadc kmem_cache named unix:0:segkp_16384
+ sadc kmem_cache named unix:0:segkp_20480
+ sadc kmem_cache named unix:0:thread_cache
+ sadc kmem_cache named unix:0:lwp_cache
+ sadc kmem_cache named unix:0:turnstile_cache
+ sadc kmem_cache named unix:0:cred_cache
+ sadc kmem_cache named unix:0:rctl_cache
+ sadc kmem_cache named unix:0:rctl_val_cache
+ sadc kmem_cache named unix:0:task_cache
+ sadc kmem_cache named unix:0:cyclic_id_cache
+ sadc kmem_cache named unix:0:dnlc_space_cache
+ sadc kmem_cache named unix:0:vn_cache
+ sadc kmem_cache named unix:0:file_cache
+ sadc kmem_cache named unix:0:stream_head_cache
+ sadc kmem_cache named unix:0:queue_cache
+ sadc kmem_cache named unix:0:syncq_cache
+ sadc kmem_cache named unix:0:qband_cache
+ sadc kmem_cache named unix:0:linkinfo_cache
+ sadc kmem_cache named unix:0:ciputctrl_cache
+ sadc kmem_cache named unix:0:serializer_cache
+ sadc kmem_cache named unix:0:as_cache
+ sadc kmem_cache named unix:0:marker_cache
+ sadc kmem_cache named unix:0:anon_cache
+ sadc kmem_cache named unix:0:anonmap_cache
+ sadc kmem_cache named unix:0:segvn_cache
+ sadc kmem_cache named unix:0:flk_edges
+ sadc kmem_cache named unix:0:fdb_cache
+ sadc kmem_cache named unix:0:timer_cache
+ sadc kmem_cache named unix:0:physio_buf_cache
+ sadc kmem_cache named unix:0:ufs_inode_cache
+ sadc kmem_cache named unix:0:directio_buf_cache
+ sadc kmem_cache named unix:0:lufs_save
+ sadc kmem_cache named unix:0:lufs_bufs
+ sadc kmem_cache named unix:0:lufs_mapentry_cache
+ sadc misc raw cpu_stat:0:cpu_stat0
+ sadc kmem_cache named unix:0:kcf_sreq_cache
+ sadc kmem_cache named unix:0:kcf_areq_cache
+ sadc kmem_cache named unix:0:kcf_context_cache
+ sadc kmem_cache named unix:0:ipsec_actions
+ sadc kmem_cache named unix:0:ipsec_selectors
+ sadc kmem_cache named unix:0:ipsec_policy
+ sadc kmem_cache named unix:0:ipsec_info
+ sadc kmem_cache named unix:0:ip_minor_arena_1
+ sadc kmem_cache named unix:0:ipcl_conn_cache
+ sadc kmem_cache named unix:0:ipcl_tcpconn_cache
+ sadc kmem_cache named unix:0:ire_cache
+ sadc kmem_cache named unix:0:tcp_timercache
+ sadc kmem_cache named unix:0:tcp_sack_info_cache
+ sadc kmem_cache named unix:0:tcp_iphc_cache
+ sadc kmem_cache named unix:0:squeue_cache
+ sadc kmem_cache named unix:0:sctp_conn_cache
+ sadc kmem_cache named unix:0:sctp_faddr_cache
+ sadc kmem_cache named unix:0:sctp_set_cache
+ sadc kmem_cache named unix:0:sctp_ftsn_set_cache
+ sadc kmem_cache named unix:0:sctpsock
+ sadc kmem_cache named unix:0:sctp_assoc
+ sadc kmem_cache named unix:0:socktpi_cache
+ sadc kmem_cache named unix:0:socktpi_unix_cache
+ sadc kmem_cache named unix:0:ncafs_cache
+ sadc kmem_cache named unix:0:process_cache
+ sadc kmem_cache named unix:0:exacct_object_cache
+ sadc kmem_cache named unix:0:fctl_cache
+ sadc kmem_cache named unix:0:tl_cache
+ sadc kmem_cache named unix:0:keysock_1
+ sadc kmem_cache named unix:0:spdsock_1
+ sadc kmem_cache named unix:0:fnode_cache
+ sadc kmem_cache named unix:0:pipe_cache
+ sadc kmem_cache named unix:0:namefs_inodes_1
+ sadc kmem_cache named unix:0:port_cache
+ sadc kmem_cache named unix:0:lnode_cache
+ sadc kmem_cache named unix:0:clnt_clts_endpnt_cache
+ sadc kmem_cache named unix:0:pty_map
+ sadc kmem_cache named unix:0:sppptun_map
+ sadc kmem_cache named unix:0:dtrace_state_cache
+ sadc kmem_cache named unix:0:qif_head_cache
+ sadc kmem_cache named unix:0:udp_minor_1
+ sadc kmem_cache named unix:0:authkern_cache
+ sadc kmem_cache named unix:0:authloopback_cache
+ sadc kmem_cache named unix:0:authdes_cache_handle
+ sadc kmem_cache named unix:0:rnode_cache
+ sadc kmem_cache named unix:0:nfs_access_cache
+ sadc kmem_cache named unix:0:client_handle_cache
+ sadc kmem_cache named unix:0:rnode4_cache
+ sadc kmem_cache named unix:0:svnode_cache
+ sadc kmem_cache named unix:0:nfs4_access_cache
+ sadc kmem_cache named unix:0:client_handle4_cache
+ sadc kmem_cache named unix:0:nfs4_ace4vals_cache
+ sadc kmem_cache named unix:0:nfs4_ace4_list_cache
+ sadc kmem_cache named unix:0:NFS_idmap_cache
+ sadc kmem_cache named unix:0:lm_vnode
+ sadc kmem_cache named unix:0:lm_xprt
+ sadc kmem_cache named unix:0:lm_sysid
+ sadc kmem_cache named unix:0:lm_client
+ sadc kmem_cache named unix:0:lm_async
+ sadc kmem_cache named unix:0:lm_sleep
+ sadc kmem_cache named unix:0:lm_config
+ sadc kmem_cache named unix:0:nfslog_small_rec
+ sadc kmem_cache named unix:0:nfslog_medium_rec
+ sadc kmem_cache named unix:0:nfslog_large_rec
+ sadc kmem_cache named unix:0:exi_cache_handle
+ sadc kmem_cache named unix:0:Client_entry_cache
+ sadc kmem_cache named unix:0:OpenOwner_entry_cache
+ sadc kmem_cache named unix:0:OpenStateID_entry_cache
+ sadc kmem_cache named unix:0:LockStateID_entry_cache
+ sadc kmem_cache named unix:0:Lockowner_entry_cache
+ sadc kmem_cache named unix:0:File_entry_cache
+ sadc kmem_cache named unix:0:DelegStateID_entry_cache
+ sadc kmem_cache named unix:0:ip_minor_1
+ sadc kmem_cache named unix:0:ar_minor_1
+ sadc kmem_cache named unix:0:icmp_minor_1
+ sadc kmem_cache named unix:0:crypto_session_cache
+ sadc kmem_cache named unix:0:fcsm_job_cache
+ sadc kmem_cache named unix:0:sd0_cache
+ sadc kmem_cache named unix:0:hsfs_hsnode_cache
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc misc named unix:0:system_misc
+ sadc kmem_cache named unix:0:file_cache
+ sadc vmem named vmem:16:kmem_oversize
+ sadc ufs named ufs:0:inode_cache
+ sadc misc raw unix:0:var
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc kmem_cache named unix:0:kmem_magazine_3
+ sadc kmem_cache named unix:0:kmem_magazine_7
+ sadc kmem_cache named unix:0:kmem_magazine_15
+ sadc kmem_cache named unix:0:kmem_magazine_31
+ sadc kmem_cache named unix:0:kmem_magazine_47
+ sadc kmem_cache named unix:0:kmem_magazine_63
+ sadc kmem_cache named unix:0:kmem_magazine_95
+ sadc kmem_cache named unix:0:kmem_magazine_143
+ sadc kmem_cache named unix:0:kmem_slab_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_audit_cache
+ sadc kmem_cache named unix:0:kmem_va_4096
+ sadc kmem_cache named unix:0:kmem_va_8192
+ sadc kmem_cache named unix:0:kmem_va_12288
+ sadc kmem_cache named unix:0:kmem_va_16384
+ sadc kmem_cache named unix:0:kmem_va_20480
+ sadc kmem_cache named unix:0:kmem_va_24576
+ sadc kmem_cache named unix:0:kmem_va_28672
+ sadc kmem_cache named unix:0:kmem_va_32768
+ sadc kmem_cache named unix:0:kmem_alloc_8
+ sadc kmem_cache named unix:0:kmem_alloc_16
+ sadc kmem_cache named unix:0:kmem_alloc_24
+ sadc kmem_cache named unix:0:kmem_alloc_32
+ sadc kmem_cache named unix:0:kmem_alloc_40
+ sadc kmem_cache named unix:0:kmem_alloc_48
+ sadc kmem_cache named unix:0:kmem_alloc_56
+ sadc kmem_cache named unix:0:kmem_alloc_64
+ sadc kmem_cache named unix:0:kmem_alloc_80
+ sadc kmem_cache named unix:0:kmem_alloc_96
+ sadc kmem_cache named unix:0:kmem_alloc_112
+ sadc kmem_cache named unix:0:kmem_alloc_128
+ sadc kmem_cache named unix:0:kmem_alloc_160
+ sadc kmem_cache named unix:0:kmem_alloc_192
+ sadc kmem_cache named unix:0:kmem_alloc_224
+ sadc kmem_cache named unix:0:kmem_alloc_256
+ sadc kmem_cache named unix:0:kmem_alloc_320
+ sadc kmem_cache named unix:0:kmem_alloc_384
+ sadc kmem_cache named unix:0:kmem_alloc_448
+ sadc kmem_cache named unix:0:kmem_alloc_512
+ sadc kmem_cache named unix:0:kmem_alloc_640
+ sadc kmem_cache named unix:0:kmem_alloc_768
+ sadc kmem_cache named unix:0:kmem_alloc_896
+ sadc kmem_cache named unix:0:kmem_alloc_1152
+ sadc kmem_cache named unix:0:kmem_alloc_1344
+ sadc kmem_cache named unix:0:kmem_alloc_1600
+ sadc kmem_cache named unix:0:kmem_alloc_2048
+ sadc kmem_cache named unix:0:kmem_alloc_2688
+ sadc kmem_cache named unix:0:kmem_alloc_4096
+ sadc kmem_cache named unix:0:kmem_alloc_8192
+ sadc kmem_cache named unix:0:kmem_alloc_12288
+ sadc kmem_cache named unix:0:kmem_alloc_16384
+ sadc kmem_cache named unix:0:streams_mblk
+ sadc kmem_cache named unix:0:streams_dblk_64
+ sadc kmem_cache named unix:0:streams_dblk_128
+ sadc kmem_cache named unix:0:streams_dblk_320
+ sadc kmem_cache named unix:0:streams_dblk_576
+ sadc kmem_cache named unix:0:streams_dblk_1088
+ sadc kmem_cache named unix:0:streams_dblk_1536
+ sadc kmem_cache named unix:0:streams_dblk_1984
+ sadc kmem_cache named unix:0:streams_dblk_2624
+ sadc kmem_cache named unix:0:streams_dblk_3968
+ sadc kmem_cache named unix:0:streams_dblk_8192
+ sadc kmem_cache named unix:0:streams_dblk_12160
+ sadc kmem_cache named unix:0:streams_dblk_16384
+ sadc kmem_cache named unix:0:streams_dblk_20352
+ sadc kmem_cache named unix:0:streams_dblk_24576
+ sadc kmem_cache named unix:0:streams_dblk_28544
+ sadc kmem_cache named unix:0:streams_dblk_32768
+ sadc kmem_cache named unix:0:streams_dblk_36736
+ sadc kmem_cache named unix:0:streams_dblk_40960
+ sadc kmem_cache named unix:0:streams_dblk_44928
+ sadc kmem_cache named unix:0:streams_dblk_49152
+ sadc kmem_cache named unix:0:streams_dblk_53120
+ sadc kmem_cache named unix:0:streams_dblk_57344
+ sadc kmem_cache named unix:0:streams_dblk_61312
+ sadc kmem_cache named unix:0:streams_dblk_65536
+ sadc kmem_cache named unix:0:streams_dblk_69504
+ sadc kmem_cache named unix:0:streams_dblk_73728
+ sadc kmem_cache named unix:0:streams_dblk_esb
+ sadc kmem_cache named unix:0:streams_fthdr
+ sadc kmem_cache named unix:0:streams_ftblk
+ sadc kmem_cache named unix:0:multidata
+ sadc kmem_cache named unix:0:multidata_pdslab
+ sadc kmem_cache named unix:0:multidata_pattbl
+ sadc kmem_cache named unix:0:taskq_ent_cache
+ sadc kmem_cache named unix:0:taskq_cache
+ sadc kmem_cache named unix:0:kmem_io_512M_128
+ sadc kmem_cache named unix:0:kmem_io_512M_256
+ sadc kmem_cache named unix:0:kmem_io_512M_512
+ sadc kmem_cache named unix:0:kmem_io_512M_1024
+ sadc kmem_cache named unix:0:kmem_io_512M_2048
+ sadc kmem_cache named unix:0:kmem_io_512M_4096
+ sadc kmem_cache named unix:0:kmem_io_16M_128
+ sadc kmem_cache named unix:0:kmem_io_16M_256
+ sadc kmem_cache named unix:0:kmem_io_16M_512
+ sadc kmem_cache named unix:0:kmem_io_16M_1024
+ sadc kmem_cache named unix:0:kmem_io_16M_2048
+ sadc kmem_cache named unix:0:kmem_io_16M_4096
+ sadc kmem_cache named unix:0:id32_cache
+ sadc kmem_cache named unix:0:bp_map_4096
+ sadc kmem_cache named unix:0:bp_map_8192
+ sadc kmem_cache named unix:0:bp_map_12288
+ sadc kmem_cache named unix:0:bp_map_16384
+ sadc kmem_cache named unix:0:bp_map_20480
+ sadc kmem_cache named unix:0:bp_map_24576
+ sadc kmem_cache named unix:0:bp_map_28672
+ sadc kmem_cache named unix:0:bp_map_32768
+ sadc kmem_cache named unix:0:mod_hash_entries
+ sadc kmem_cache named unix:0:ipp_mod
+ sadc kmem_cache named unix:0:ipp_action
+ sadc kmem_cache named unix:0:ipp_packet
+ sadc kmem_cache named unix:0:htable_t
+ sadc kmem_cache named unix:0:hment_t
+ sadc kmem_cache named unix:0:hat_t
+ sadc kmem_cache named unix:0:HatHash
+ sadc kmem_cache named unix:0:seg_cache
+ sadc kmem_cache named unix:0:snode_cache
+ sadc kmem_cache named unix:0:dv_node_cache
+ sadc kmem_cache named unix:0:dev_info_node_cache
+ sadc kmem_cache named unix:0:segkp_4096
+ sadc kmem_cache named unix:0:segkp_8192
+ sadc kmem_cache named unix:0:segkp_12288
+ sadc kmem_cache named unix:0:segkp_16384
+ sadc kmem_cache named unix:0:segkp_20480
+ sadc kmem_cache named unix:0:thread_cache
+ sadc kmem_cache named unix:0:lwp_cache
+ sadc kmem_cache named unix:0:turnstile_cache
+ sadc kmem_cache named unix:0:cred_cache
+ sadc kmem_cache named unix:0:rctl_cache
+ sadc kmem_cache named unix:0:rctl_val_cache
+ sadc kmem_cache named unix:0:task_cache
+ sadc kmem_cache named unix:0:cyclic_id_cache
+ sadc kmem_cache named unix:0:dnlc_space_cache
+ sadc kmem_cache named unix:0:vn_cache
+ sadc kmem_cache named unix:0:file_cache
+ sadc kmem_cache named unix:0:stream_head_cache
+ sadc kmem_cache named unix:0:queue_cache
+ sadc kmem_cache named unix:0:syncq_cache
+ sadc kmem_cache named unix:0:qband_cache
+ sadc kmem_cache named unix:0:linkinfo_cache
+ sadc kmem_cache named unix:0:ciputctrl_cache
+ sadc kmem_cache named unix:0:serializer_cache
+ sadc kmem_cache named unix:0:as_cache
+ sadc kmem_cache named unix:0:marker_cache
+ sadc kmem_cache named unix:0:anon_cache
+ sadc kmem_cache named unix:0:anonmap_cache
+ sadc kmem_cache named unix:0:segvn_cache
+ sadc kmem_cache named unix:0:flk_edges
+ sadc kmem_cache named unix:0:fdb_cache
+ sadc kmem_cache named unix:0:timer_cache
+ sadc kmem_cache named unix:0:physio_buf_cache
+ sadc kmem_cache named unix:0:ufs_inode_cache
+ sadc kmem_cache named unix:0:directio_buf_cache
+ sadc kmem_cache named unix:0:lufs_save
+ sadc kmem_cache named unix:0:lufs_bufs
+ sadc kmem_cache named unix:0:lufs_mapentry_cache
+ sadc misc raw cpu_stat:0:cpu_stat0
+ sadc kmem_cache named unix:0:kcf_sreq_cache
+ sadc kmem_cache named unix:0:kcf_areq_cache
+ sadc kmem_cache named unix:0:kcf_context_cache
+ sadc kmem_cache named unix:0:ipsec_actions
+ sadc kmem_cache named unix:0:ipsec_selectors
+ sadc kmem_cache named unix:0:ipsec_policy
+ sadc kmem_cache named unix:0:ipsec_info
+ sadc kmem_cache named unix:0:ip_minor_arena_1
+ sadc kmem_cache named unix:0:ipcl_conn_cache
+ sadc kmem_cache named unix:0:ipcl_tcpconn_cache
+ sadc kmem_cache named unix:0:ire_cache
+ sadc kmem_cache named unix:0:tcp_timercache
+ sadc kmem_cache named unix:0:tcp_sack_info_cache
+ sadc kmem_cache named unix:0:tcp_iphc_cache
+ sadc kmem_cache named unix:0:squeue_cache
+ sadc kmem_cache named unix:0:sctp_conn_cache
+ sadc kmem_cache named unix:0:sctp_faddr_cache
+ sadc kmem_cache named unix:0:sctp_set_cache
+ sadc kmem_cache named unix:0:sctp_ftsn_set_cache
+ sadc kmem_cache named unix:0:sctpsock
+ sadc kmem_cache named unix:0:sctp_assoc
+ sadc kmem_cache named unix:0:socktpi_cache
+ sadc kmem_cache named unix:0:socktpi_unix_cache
+ sadc kmem_cache named unix:0:ncafs_cache
+ sadc kmem_cache named unix:0:process_cache
+ sadc kmem_cache named unix:0:exacct_object_cache
+ sadc kmem_cache named unix:0:fctl_cache
+ sadc kmem_cache named unix:0:tl_cache
+ sadc kmem_cache named unix:0:keysock_1
+ sadc kmem_cache named unix:0:spdsock_1
+ sadc kmem_cache named unix:0:fnode_cache
+ sadc kmem_cache named unix:0:pipe_cache
+ sadc kmem_cache named unix:0:namefs_inodes_1
+ sadc kmem_cache named unix:0:port_cache
+ sadc kmem_cache named unix:0:lnode_cache
+ sadc kmem_cache named unix:0:clnt_clts_endpnt_cache
+ sadc kmem_cache named unix:0:pty_map
+ sadc kmem_cache named unix:0:sppptun_map
+ sadc kmem_cache named unix:0:dtrace_state_cache
+ sadc kmem_cache named unix:0:qif_head_cache
+ sadc kmem_cache named unix:0:udp_minor_1
+ sadc kmem_cache named unix:0:authkern_cache
+ sadc kmem_cache named unix:0:authloopback_cache
+ sadc kmem_cache named unix:0:authdes_cache_handle
+ sadc kmem_cache named unix:0:rnode_cache
+ sadc kmem_cache named unix:0:nfs_access_cache
+ sadc kmem_cache named unix:0:client_handle_cache
+ sadc kmem_cache named unix:0:rnode4_cache
+ sadc kmem_cache named unix:0:svnode_cache
+ sadc kmem_cache named unix:0:nfs4_access_cache
+ sadc kmem_cache named unix:0:client_handle4_cache
+ sadc kmem_cache named unix:0:nfs4_ace4vals_cache
+ sadc kmem_cache named unix:0:nfs4_ace4_list_cache
+ sadc kmem_cache named unix:0:NFS_idmap_cache
+ sadc kmem_cache named unix:0:lm_vnode
+ sadc kmem_cache named unix:0:lm_xprt
+ sadc kmem_cache named unix:0:lm_sysid
+ sadc kmem_cache named unix:0:lm_client
+ sadc kmem_cache named unix:0:lm_async
+ sadc kmem_cache named unix:0:lm_sleep
+ sadc kmem_cache named unix:0:lm_config
+ sadc kmem_cache named unix:0:nfslog_small_rec
+ sadc kmem_cache named unix:0:nfslog_medium_rec
+ sadc kmem_cache named unix:0:nfslog_large_rec
+ sadc kmem_cache named unix:0:exi_cache_handle
+ sadc kmem_cache named unix:0:Client_entry_cache
+ sadc kmem_cache named unix:0:OpenOwner_entry_cache
+ sadc kmem_cache named unix:0:OpenStateID_entry_cache
+ sadc kmem_cache named unix:0:LockStateID_entry_cache
+ sadc kmem_cache named unix:0:Lockowner_entry_cache
+ sadc kmem_cache named unix:0:File_entry_cache
+ sadc kmem_cache named unix:0:DelegStateID_entry_cache
+ sadc kmem_cache named unix:0:ip_minor_1
+ sadc kmem_cache named unix:0:ar_minor_1
+ sadc kmem_cache named unix:0:icmp_minor_1
+ sadc kmem_cache named unix:0:crypto_session_cache
+ sadc kmem_cache named unix:0:fcsm_job_cache
+ sadc kmem_cache named unix:0:sd0_cache
+ sadc kmem_cache named unix:0:hsfs_hsnode_cache
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc misc raw unix:0:sysinfo
+ sadc vm raw unix:0:vminfo
+ sadc misc named unix:0:system_misc
+ sadc kmem_cache named unix:0:file_cache
+ sadc ufs named ufs:0:inode_cache
+ sadc misc raw cpu_stat:0:cpu_stat0
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc kmem_cache named unix:0:kmem_magazine_3
+ sadc kmem_cache named unix:0:kmem_magazine_7
+ sadc kmem_cache named unix:0:kmem_magazine_15
+ sadc kmem_cache named unix:0:kmem_magazine_31
+ sadc kmem_cache named unix:0:kmem_magazine_47
+ sadc kmem_cache named unix:0:kmem_magazine_63
+ sadc kmem_cache named unix:0:kmem_magazine_95
+ sadc kmem_cache named unix:0:kmem_magazine_143
+ sadc kmem_cache named unix:0:kmem_slab_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_audit_cache
+ sadc kmem_cache named unix:0:kmem_va_4096
+ sadc kmem_cache named unix:0:kmem_va_8192
+ sadc kmem_cache named unix:0:kmem_va_12288
+ sadc kmem_cache named unix:0:kmem_va_16384
+ sadc kmem_cache named unix:0:kmem_va_20480
+ sadc kmem_cache named unix:0:kmem_va_24576
+ sadc kmem_cache named unix:0:kmem_va_28672
+ sadc kmem_cache named unix:0:kmem_va_32768
+ sadc kmem_cache named unix:0:kmem_alloc_8
+ sadc kmem_cache named unix:0:kmem_alloc_16
+ sadc kmem_cache named unix:0:kmem_alloc_24
+ sadc kmem_cache named unix:0:kmem_alloc_32
+ sadc kmem_cache named unix:0:kmem_alloc_40
+ sadc kmem_cache named unix:0:kmem_alloc_48
+ sadc kmem_cache named unix:0:kmem_alloc_56
+ sadc kmem_cache named unix:0:kmem_alloc_64
+ sadc kmem_cache named unix:0:kmem_alloc_80
+ sadc kmem_cache named unix:0:kmem_alloc_96
+ sadc kmem_cache named unix:0:kmem_alloc_112
+ sadc kmem_cache named unix:0:kmem_alloc_128
+ sadc kmem_cache named unix:0:kmem_alloc_160
+ sadc kmem_cache named unix:0:kmem_alloc_192
+ sadc kmem_cache named unix:0:kmem_alloc_224
+ sadc kmem_cache named unix:0:kmem_alloc_256
+ sadc kmem_cache named unix:0:kmem_alloc_320
+ sadc kmem_cache named unix:0:kmem_alloc_384
+ sadc kmem_cache named unix:0:kmem_alloc_448
+ sadc kmem_cache named unix:0:kmem_alloc_512
+ sadc kmem_cache named unix:0:kmem_alloc_640
+ sadc kmem_cache named unix:0:kmem_alloc_768
+ sadc kmem_cache named unix:0:kmem_alloc_896
+ sadc kmem_cache named unix:0:kmem_alloc_1152
+ sadc kmem_cache named unix:0:kmem_alloc_1344
+ sadc kmem_cache named unix:0:kmem_alloc_1600
+ sadc kmem_cache named unix:0:kmem_alloc_2048
+ sadc kmem_cache named unix:0:kmem_alloc_2688
+ sadc kmem_cache named unix:0:kmem_alloc_4096
+ sadc kmem_cache named unix:0:kmem_alloc_8192
+ sadc kmem_cache named unix:0:kmem_alloc_12288
+ sadc kmem_cache named unix:0:kmem_alloc_16384
+ sadc kmem_cache named unix:0:streams_mblk
+ sadc kmem_cache named unix:0:streams_dblk_64
+ sadc kmem_cache named unix:0:streams_dblk_128
+ sadc kmem_cache named unix:0:streams_dblk_320
+ sadc kmem_cache named unix:0:streams_dblk_576
+ sadc kmem_cache named unix:0:streams_dblk_1088
+ sadc kmem_cache named unix:0:streams_dblk_1536
+ sadc kmem_cache named unix:0:streams_dblk_1984
+ sadc kmem_cache named unix:0:streams_dblk_2624
+ sadc kmem_cache named unix:0:streams_dblk_3968
+ sadc kmem_cache named unix:0:streams_dblk_8192
+ sadc kmem_cache named unix:0:streams_dblk_12160
+ sadc kmem_cache named unix:0:streams_dblk_16384
+ sadc kmem_cache named unix:0:streams_dblk_20352
+ sadc kmem_cache named unix:0:streams_dblk_24576
+ sadc kmem_cache named unix:0:streams_dblk_28544
+ sadc kmem_cache named unix:0:streams_dblk_32768
+ sadc kmem_cache named unix:0:streams_dblk_36736
+ sadc kmem_cache named unix:0:streams_dblk_40960
+ sadc kmem_cache named unix:0:streams_dblk_44928
+ sadc kmem_cache named unix:0:streams_dblk_49152
+ sadc kmem_cache named unix:0:streams_dblk_53120
+ sadc kmem_cache named unix:0:streams_dblk_57344
+ sadc kmem_cache named unix:0:streams_dblk_61312
+ sadc kmem_cache named unix:0:streams_dblk_65536
+ sadc kmem_cache named unix:0:streams_dblk_69504
+ sadc kmem_cache named unix:0:streams_dblk_73728
+ sadc kmem_cache named unix:0:streams_dblk_esb
+ sadc kmem_cache named unix:0:streams_fthdr
+ sadc kmem_cache named unix:0:streams_ftblk
+ sadc kmem_cache named unix:0:multidata
+ sadc kmem_cache named unix:0:multidata_pdslab
+ sadc kmem_cache named unix:0:multidata_pattbl
+ sadc kmem_cache named unix:0:taskq_ent_cache
+ sadc kmem_cache named unix:0:taskq_cache
+ sadc kmem_cache named unix:0:kmem_io_512M_128
+ sadc kmem_cache named unix:0:kmem_io_512M_256
+ sadc kmem_cache named unix:0:kmem_io_512M_512
+ sadc kmem_cache named unix:0:kmem_io_512M_1024
+ sadc kmem_cache named unix:0:kmem_io_512M_2048
+ sadc kmem_cache named unix:0:kmem_io_512M_4096
+ sadc kmem_cache named unix:0:kmem_io_16M_128
+ sadc kmem_cache named unix:0:kmem_io_16M_256
+ sadc kmem_cache named unix:0:kmem_io_16M_512
+ sadc kmem_cache named unix:0:kmem_io_16M_1024
+ sadc kmem_cache named unix:0:kmem_io_16M_2048
+ sadc kmem_cache named unix:0:kmem_io_16M_4096
+ sadc kmem_cache named unix:0:id32_cache
+ sadc kmem_cache named unix:0:bp_map_4096
+ sadc kmem_cache named unix:0:bp_map_8192
+ sadc kmem_cache named unix:0:bp_map_12288
+ sadc kmem_cache named unix:0:bp_map_16384
+ sadc kmem_cache named unix:0:bp_map_20480
+ sadc kmem_cache named unix:0:bp_map_24576
+ sadc kmem_cache named unix:0:bp_map_28672
+ sadc kmem_cache named unix:0:bp_map_32768
+ sadc kmem_cache named unix:0:mod_hash_entries
+ sadc kmem_cache named unix:0:ipp_mod
+ sadc kmem_cache named unix:0:ipp_action
+ sadc kmem_cache named unix:0:ipp_packet
+ sadc kmem_cache named unix:0:htable_t
+ sadc kmem_cache named unix:0:hment_t
+ sadc kmem_cache named unix:0:hat_t
+ sadc kmem_cache named unix:0:HatHash
+ sadc kmem_cache named unix:0:seg_cache
+ sadc kmem_cache named unix:0:snode_cache
+ sadc kmem_cache named unix:0:dv_node_cache
+ sadc kmem_cache named unix:0:dev_info_node_cache
+ sadc kmem_cache named unix:0:segkp_4096
+ sadc kmem_cache named unix:0:segkp_8192
+ sadc kmem_cache named unix:0:segkp_12288
+ sadc kmem_cache named unix:0:segkp_16384
+ sadc kmem_cache named unix:0:segkp_20480
+ sadc kmem_cache named unix:0:thread_cache
+ sadc kmem_cache named unix:0:lwp_cache
+ sadc kmem_cache named unix:0:turnstile_cache
+ sadc kmem_cache named unix:0:cred_cache
+ sadc kmem_cache named unix:0:rctl_cache
+ sadc kmem_cache named unix:0:rctl_val_cache
+ sadc kmem_cache named unix:0:task_cache
+ sadc kmem_cache named unix:0:cyclic_id_cache
+ sadc kmem_cache named unix:0:dnlc_space_cache
+ sadc kmem_cache named unix:0:vn_cache
+ sadc kmem_cache named unix:0:file_cache
+ sadc kmem_cache named unix:0:stream_head_cache
+ sadc kmem_cache named unix:0:queue_cache
+ sadc kmem_cache named unix:0:syncq_cache
+ sadc kmem_cache named unix:0:qband_cache
+ sadc kmem_cache named unix:0:linkinfo_cache
+ sadc kmem_cache named unix:0:ciputctrl_cache
+ sadc kmem_cache named unix:0:serializer_cache
+ sadc kmem_cache named unix:0:as_cache
+ sadc kmem_cache named unix:0:marker_cache
+ sadc kmem_cache named unix:0:anon_cache
+ sadc kmem_cache named unix:0:anonmap_cache
+ sadc kmem_cache named unix:0:segvn_cache
+ sadc kmem_cache named unix:0:flk_edges
+ sadc kmem_cache named unix:0:fdb_cache
+ sadc kmem_cache named unix:0:timer_cache
+ sadc kmem_cache named unix:0:physio_buf_cache
+ sadc kmem_cache named unix:0:ufs_inode_cache
+ sadc kmem_cache named unix:0:directio_buf_cache
+ sadc kmem_cache named unix:0:lufs_save
+ sadc kmem_cache named unix:0:lufs_bufs
+ sadc kmem_cache named unix:0:lufs_mapentry_cache
+ sadc kmem_cache named unix:0:kcf_sreq_cache
+ sadc kmem_cache named unix:0:kcf_areq_cache
+ sadc kmem_cache named unix:0:kcf_context_cache
+ sadc kmem_cache named unix:0:ipsec_actions
+ sadc kmem_cache named unix:0:ipsec_selectors
+ sadc kmem_cache named unix:0:ipsec_policy
+ sadc kmem_cache named unix:0:ipsec_info
+ sadc kmem_cache named unix:0:ip_minor_arena_1
+ sadc kmem_cache named unix:0:ipcl_conn_cache
+ sadc kmem_cache named unix:0:ipcl_tcpconn_cache
+ sadc kmem_cache named unix:0:ire_cache
+ sadc kmem_cache named unix:0:tcp_timercache
+ sadc kmem_cache named unix:0:tcp_sack_info_cache
+ sadc kmem_cache named unix:0:tcp_iphc_cache
+ sadc kmem_cache named unix:0:squeue_cache
+ sadc kmem_cache named unix:0:sctp_conn_cache
+ sadc kmem_cache named unix:0:sctp_faddr_cache
+ sadc kmem_cache named unix:0:sctp_set_cache
+ sadc kmem_cache named unix:0:sctp_ftsn_set_cache
+ sadc kmem_cache named unix:0:sctpsock
+ sadc kmem_cache named unix:0:sctp_assoc
+ sadc kmem_cache named unix:0:socktpi_cache
+ sadc kmem_cache named unix:0:socktpi_unix_cache
+ sadc kmem_cache named unix:0:ncafs_cache
+ sadc kmem_cache named unix:0:process_cache
+ sadc kmem_cache named unix:0:exacct_object_cache
+ sadc kmem_cache named unix:0:fctl_cache
+ sadc kmem_cache named unix:0:tl_cache
+ sadc kmem_cache named unix:0:keysock_1
+ sadc kmem_cache named unix:0:spdsock_1
+ sadc kmem_cache named unix:0:fnode_cache
+ sadc kmem_cache named unix:0:pipe_cache
+ sadc kmem_cache named unix:0:namefs_inodes_1
+ sadc kmem_cache named unix:0:port_cache
+ sadc kmem_cache named unix:0:lnode_cache
+ sadc kmem_cache named unix:0:clnt_clts_endpnt_cache
+ sadc kmem_cache named unix:0:pty_map
+ sadc kmem_cache named unix:0:sppptun_map
+ sadc kmem_cache named unix:0:dtrace_state_cache
+ sadc kmem_cache named unix:0:qif_head_cache
+ sadc kmem_cache named unix:0:udp_minor_1
+ sadc kmem_cache named unix:0:authkern_cache
+ sadc kmem_cache named unix:0:authloopback_cache
+ sadc kmem_cache named unix:0:authdes_cache_handle
+ sadc kmem_cache named unix:0:rnode_cache
+ sadc kmem_cache named unix:0:nfs_access_cache
+ sadc kmem_cache named unix:0:client_handle_cache
+ sadc kmem_cache named unix:0:rnode4_cache
+ sadc kmem_cache named unix:0:svnode_cache
+ sadc kmem_cache named unix:0:nfs4_access_cache
+ sadc kmem_cache named unix:0:client_handle4_cache
+ sadc kmem_cache named unix:0:nfs4_ace4vals_cache
+ sadc kmem_cache named unix:0:nfs4_ace4_list_cache
+ sadc kmem_cache named unix:0:NFS_idmap_cache
+ sadc kmem_cache named unix:0:lm_vnode
+ sadc kmem_cache named unix:0:lm_xprt
+ sadc kmem_cache named unix:0:lm_sysid
+ sadc kmem_cache named unix:0:lm_client
+ sadc kmem_cache named unix:0:lm_async
+ sadc kmem_cache named unix:0:lm_sleep
+ sadc kmem_cache named unix:0:lm_config
+ sadc kmem_cache named unix:0:nfslog_small_rec
+ sadc kmem_cache named unix:0:nfslog_medium_rec
+ sadc kmem_cache named unix:0:nfslog_large_rec
+ sadc kmem_cache named unix:0:exi_cache_handle
+ sadc kmem_cache named unix:0:Client_entry_cache
+ sadc kmem_cache named unix:0:OpenOwner_entry_cache
+ sadc kmem_cache named unix:0:OpenStateID_entry_cache
+ sadc kmem_cache named unix:0:LockStateID_entry_cache
+ sadc kmem_cache named unix:0:Lockowner_entry_cache
+ sadc kmem_cache named unix:0:File_entry_cache
+ sadc kmem_cache named unix:0:DelegStateID_entry_cache
+ sadc kmem_cache named unix:0:ip_minor_1
+ sadc kmem_cache named unix:0:ar_minor_1
+ sadc kmem_cache named unix:0:icmp_minor_1
+ sadc kmem_cache named unix:0:crypto_session_cache
+ sadc kmem_cache named unix:0:fcsm_job_cache
+ sadc kmem_cache named unix:0:sd0_cache
+ sadc kmem_cache named unix:0:hsfs_hsnode_cache
+ sadc vmem named vmem:16:kmem_oversize
+ sadc disk io cmdk:0:cmdk0
+ sadc nfs io nfs:1:nfs1
+ sadc disk io sd:0:sd0
+ sadc usb_byte_count io usba:0:uhci0,bulk
+ sadc usb_byte_count io usba:0:uhci0,ctrl
+ sadc usb_byte_count io usba:0:uhci0,intr
+ sadc usb_byte_count io usba:0:uhci0,isoch
+ sadc usb_byte_count io usba:0:uhci0,total
+ sadc usb_byte_count io usba:1:uhci1,bulk
+ sadc usb_byte_count io usba:1:uhci1,ctrl
+ sadc usb_byte_count io usba:1:uhci1,intr
+ sadc usb_byte_count io usba:1:uhci1,isoch
+ sadc usb_byte_count io usba:1:uhci1,total
+ sadc misc named unix:0:system_misc
+ sadc kmem_cache named unix:0:file_cache
+ sadc vmem named vmem:16:kmem_oversize
+ sadc ufs named ufs:0:inode_cache
+ sadc misc raw unix:0:var
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc kmem_cache named unix:0:kmem_magazine_3
+ sadc kmem_cache named unix:0:kmem_magazine_7
+ sadc kmem_cache named unix:0:kmem_magazine_15
+ sadc kmem_cache named unix:0:kmem_magazine_31
+ sadc kmem_cache named unix:0:kmem_magazine_47
+ sadc kmem_cache named unix:0:kmem_magazine_63
+ sadc kmem_cache named unix:0:kmem_magazine_95
+ sadc kmem_cache named unix:0:kmem_magazine_143
+ sadc kmem_cache named unix:0:kmem_slab_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_audit_cache
+ sadc kmem_cache named unix:0:kmem_va_4096
+ sadc kmem_cache named unix:0:kmem_va_8192
+ sadc kmem_cache named unix:0:kmem_va_12288
+ sadc kmem_cache named unix:0:kmem_va_16384
+ sadc kmem_cache named unix:0:kmem_va_20480
+ sadc kmem_cache named unix:0:kmem_va_24576
+ sadc kmem_cache named unix:0:kmem_va_28672
+ sadc kmem_cache named unix:0:kmem_va_32768
+ sadc kmem_cache named unix:0:kmem_alloc_8
+ sadc kmem_cache named unix:0:kmem_alloc_16
+ sadc kmem_cache named unix:0:kmem_alloc_24
+ sadc kmem_cache named unix:0:kmem_alloc_32
+ sadc kmem_cache named unix:0:kmem_alloc_40
+ sadc kmem_cache named unix:0:kmem_alloc_48
+ sadc kmem_cache named unix:0:kmem_alloc_56
+ sadc kmem_cache named unix:0:kmem_alloc_64
+ sadc kmem_cache named unix:0:kmem_alloc_80
+ sadc kmem_cache named unix:0:kmem_alloc_96
+ sadc kmem_cache named unix:0:kmem_alloc_112
+ sadc kmem_cache named unix:0:kmem_alloc_128
+ sadc kmem_cache named unix:0:kmem_alloc_160
+ sadc kmem_cache named unix:0:kmem_alloc_192
+ sadc kmem_cache named unix:0:kmem_alloc_224
+ sadc kmem_cache named unix:0:kmem_alloc_256
+ sadc kmem_cache named unix:0:kmem_alloc_320
+ sadc kmem_cache named unix:0:kmem_alloc_384
+ sadc kmem_cache named unix:0:kmem_alloc_448
+ sadc kmem_cache named unix:0:kmem_alloc_512
+ sadc kmem_cache named unix:0:kmem_alloc_640
+ sadc kmem_cache named unix:0:kmem_alloc_768
+ sadc kmem_cache named unix:0:kmem_alloc_896
+ sadc kmem_cache named unix:0:kmem_alloc_1152
+ sadc kmem_cache named unix:0:kmem_alloc_1344
+ sadc kmem_cache named unix:0:kmem_alloc_1600
+ sadc kmem_cache named unix:0:kmem_alloc_2048
+ sadc kmem_cache named unix:0:kmem_alloc_2688
+ sadc kmem_cache named unix:0:kmem_alloc_4096
+ sadc kmem_cache named unix:0:kmem_alloc_8192
+ sadc kmem_cache named unix:0:kmem_alloc_12288
+ sadc kmem_cache named unix:0:kmem_alloc_16384
+ sadc kmem_cache named unix:0:streams_mblk
+ sadc kmem_cache named unix:0:streams_dblk_64
+ sadc kmem_cache named unix:0:streams_dblk_128
+ sadc kmem_cache named unix:0:streams_dblk_320
+ sadc kmem_cache named unix:0:streams_dblk_576
+ sadc kmem_cache named unix:0:streams_dblk_1088
+ sadc kmem_cache named unix:0:streams_dblk_1536
+ sadc kmem_cache named unix:0:streams_dblk_1984
+ sadc kmem_cache named unix:0:streams_dblk_2624
+ sadc kmem_cache named unix:0:streams_dblk_3968
+ sadc kmem_cache named unix:0:streams_dblk_8192
+ sadc kmem_cache named unix:0:streams_dblk_12160
+ sadc kmem_cache named unix:0:streams_dblk_16384
+ sadc kmem_cache named unix:0:streams_dblk_20352
+ sadc kmem_cache named unix:0:streams_dblk_24576
+ sadc kmem_cache named unix:0:streams_dblk_28544
+ sadc kmem_cache named unix:0:streams_dblk_32768
+ sadc kmem_cache named unix:0:streams_dblk_36736
+ sadc kmem_cache named unix:0:streams_dblk_40960
+ sadc kmem_cache named unix:0:streams_dblk_44928
+ sadc kmem_cache named unix:0:streams_dblk_49152
+ sadc kmem_cache named unix:0:streams_dblk_53120
+ sadc kmem_cache named unix:0:streams_dblk_57344
+ sadc kmem_cache named unix:0:streams_dblk_61312
+ sadc kmem_cache named unix:0:streams_dblk_65536
+ sadc kmem_cache named unix:0:streams_dblk_69504
+ sadc kmem_cache named unix:0:streams_dblk_73728
+ sadc kmem_cache named unix:0:streams_dblk_esb
+ sadc kmem_cache named unix:0:streams_fthdr
+ sadc kmem_cache named unix:0:streams_ftblk
+ sadc kmem_cache named unix:0:multidata
+ sadc kmem_cache named unix:0:multidata_pdslab
+ sadc kmem_cache named unix:0:multidata_pattbl
+ sadc kmem_cache named unix:0:taskq_ent_cache
+ sadc kmem_cache named unix:0:taskq_cache
+ sadc kmem_cache named unix:0:kmem_io_512M_128
+ sadc kmem_cache named unix:0:kmem_io_512M_256
+ sadc kmem_cache named unix:0:kmem_io_512M_512
+ sadc kmem_cache named unix:0:kmem_io_512M_1024
+ sadc kmem_cache named unix:0:kmem_io_512M_2048
+ sadc kmem_cache named unix:0:kmem_io_512M_4096
+ sadc kmem_cache named unix:0:kmem_io_16M_128
+ sadc kmem_cache named unix:0:kmem_io_16M_256
+ sadc kmem_cache named unix:0:kmem_io_16M_512
+ sadc kmem_cache named unix:0:kmem_io_16M_1024
+ sadc kmem_cache named unix:0:kmem_io_16M_2048
+ sadc kmem_cache named unix:0:kmem_io_16M_4096
+ sadc kmem_cache named unix:0:id32_cache
+ sadc kmem_cache named unix:0:bp_map_4096
+ sadc kmem_cache named unix:0:bp_map_8192
+ sadc kmem_cache named unix:0:bp_map_12288
+ sadc kmem_cache named unix:0:bp_map_16384
+ sadc kmem_cache named unix:0:bp_map_20480
+ sadc kmem_cache named unix:0:bp_map_24576
+ sadc kmem_cache named unix:0:bp_map_28672
+ sadc kmem_cache named unix:0:bp_map_32768
+ sadc kmem_cache named unix:0:mod_hash_entries
+ sadc kmem_cache named unix:0:ipp_mod
+ sadc kmem_cache named unix:0:ipp_action
+ sadc kmem_cache named unix:0:ipp_packet
+ sadc kmem_cache named unix:0:htable_t
+ sadc kmem_cache named unix:0:hment_t
+ sadc kmem_cache named unix:0:hat_t
+ sadc kmem_cache named unix:0:HatHash
+ sadc kmem_cache named unix:0:seg_cache
+ sadc kmem_cache named unix:0:snode_cache
+ sadc kmem_cache named unix:0:dv_node_cache
+ sadc kmem_cache named unix:0:dev_info_node_cache
+ sadc kmem_cache named unix:0:segkp_4096
+ sadc kmem_cache named unix:0:segkp_8192
+ sadc kmem_cache named unix:0:segkp_12288
+ sadc kmem_cache named unix:0:segkp_16384
+ sadc kmem_cache named unix:0:segkp_20480
+ sadc kmem_cache named unix:0:thread_cache
+ sadc kmem_cache named unix:0:lwp_cache
+ sadc kmem_cache named unix:0:turnstile_cache
+ sadc kmem_cache named unix:0:cred_cache
+ sadc kmem_cache named unix:0:rctl_cache
+ sadc kmem_cache named unix:0:rctl_val_cache
+ sadc kmem_cache named unix:0:task_cache
+ sadc kmem_cache named unix:0:cyclic_id_cache
+ sadc kmem_cache named unix:0:dnlc_space_cache
+ sadc kmem_cache named unix:0:vn_cache
+ sadc kmem_cache named unix:0:file_cache
+ sadc kmem_cache named unix:0:stream_head_cache
+ sadc kmem_cache named unix:0:queue_cache
+ sadc kmem_cache named unix:0:syncq_cache
+ sadc kmem_cache named unix:0:qband_cache
+ sadc kmem_cache named unix:0:linkinfo_cache
+ sadc kmem_cache named unix:0:ciputctrl_cache
+ sadc kmem_cache named unix:0:serializer_cache
+ sadc kmem_cache named unix:0:as_cache
+ sadc kmem_cache named unix:0:marker_cache
+ sadc kmem_cache named unix:0:anon_cache
+ sadc kmem_cache named unix:0:anonmap_cache
+ sadc kmem_cache named unix:0:segvn_cache
+ sadc kmem_cache named unix:0:flk_edges
+ sadc kmem_cache named unix:0:fdb_cache
+ sadc kmem_cache named unix:0:timer_cache
+ sadc kmem_cache named unix:0:physio_buf_cache
+ sadc kmem_cache named unix:0:ufs_inode_cache
+ sadc kmem_cache named unix:0:directio_buf_cache
+ sadc kmem_cache named unix:0:lufs_save
+ sadc kmem_cache named unix:0:lufs_bufs
+ sadc kmem_cache named unix:0:lufs_mapentry_cache
+ sadc misc raw cpu_stat:0:cpu_stat0
+ sadc kmem_cache named unix:0:kcf_sreq_cache
+ sadc kmem_cache named unix:0:kcf_areq_cache
+ sadc kmem_cache named unix:0:kcf_context_cache
+ sadc kmem_cache named unix:0:ipsec_actions
+ sadc kmem_cache named unix:0:ipsec_selectors
+ sadc kmem_cache named unix:0:ipsec_policy
+ sadc kmem_cache named unix:0:ipsec_info
+ sadc kmem_cache named unix:0:ip_minor_arena_1
+ sadc kmem_cache named unix:0:ipcl_conn_cache
+ sadc kmem_cache named unix:0:ipcl_tcpconn_cache
+ sadc kmem_cache named unix:0:ire_cache
+ sadc kmem_cache named unix:0:tcp_timercache
+ sadc kmem_cache named unix:0:tcp_sack_info_cache
+ sadc kmem_cache named unix:0:tcp_iphc_cache
+ sadc kmem_cache named unix:0:squeue_cache
+ sadc kmem_cache named unix:0:sctp_conn_cache
+ sadc kmem_cache named unix:0:sctp_faddr_cache
+ sadc kmem_cache named unix:0:sctp_set_cache
+ sadc kmem_cache named unix:0:sctp_ftsn_set_cache
+ sadc kmem_cache named unix:0:sctpsock
+ sadc kmem_cache named unix:0:sctp_assoc
+ sadc kmem_cache named unix:0:socktpi_cache
+ sadc kmem_cache named unix:0:socktpi_unix_cache
+ sadc kmem_cache named unix:0:ncafs_cache
+ sadc kmem_cache named unix:0:process_cache
+ sadc kmem_cache named unix:0:exacct_object_cache
+ sadc kmem_cache named unix:0:fctl_cache
+ sadc kmem_cache named unix:0:tl_cache
+ sadc kmem_cache named unix:0:keysock_1
+ sadc kmem_cache named unix:0:spdsock_1
+ sadc kmem_cache named unix:0:fnode_cache
+ sadc kmem_cache named unix:0:pipe_cache
+ sadc kmem_cache named unix:0:namefs_inodes_1
+ sadc kmem_cache named unix:0:port_cache
+ sadc kmem_cache named unix:0:lnode_cache
+ sadc kmem_cache named unix:0:clnt_clts_endpnt_cache
+ sadc kmem_cache named unix:0:pty_map
+ sadc kmem_cache named unix:0:sppptun_map
+ sadc kmem_cache named unix:0:dtrace_state_cache
+ sadc kmem_cache named unix:0:qif_head_cache
+ sadc kmem_cache named unix:0:udp_minor_1
+ sadc kmem_cache named unix:0:authkern_cache
+ sadc kmem_cache named unix:0:authloopback_cache
+ sadc kmem_cache named unix:0:authdes_cache_handle
+ sadc kmem_cache named unix:0:rnode_cache
+ sadc kmem_cache named unix:0:nfs_access_cache
+ sadc kmem_cache named unix:0:client_handle_cache
+ sadc kmem_cache named unix:0:rnode4_cache
+ sadc kmem_cache named unix:0:svnode_cache
+ sadc kmem_cache named unix:0:nfs4_access_cache
+ sadc kmem_cache named unix:0:client_handle4_cache
+ sadc kmem_cache named unix:0:nfs4_ace4vals_cache
+ sadc kmem_cache named unix:0:nfs4_ace4_list_cache
+ sadc kmem_cache named unix:0:NFS_idmap_cache
+ sadc kmem_cache named unix:0:lm_vnode
+ sadc kmem_cache named unix:0:lm_xprt
+ sadc kmem_cache named unix:0:lm_sysid
+ sadc kmem_cache named unix:0:lm_client
+ sadc kmem_cache named unix:0:lm_async
+ sadc kmem_cache named unix:0:lm_sleep
+ sadc kmem_cache named unix:0:lm_config
+ sadc kmem_cache named unix:0:nfslog_small_rec
+ sadc kmem_cache named unix:0:nfslog_medium_rec
+ sadc kmem_cache named unix:0:nfslog_large_rec
+ sadc kmem_cache named unix:0:exi_cache_handle
+ sadc kmem_cache named unix:0:Client_entry_cache
+ sadc kmem_cache named unix:0:OpenOwner_entry_cache
+ sadc kmem_cache named unix:0:OpenStateID_entry_cache
+ sadc kmem_cache named unix:0:LockStateID_entry_cache
+ sadc kmem_cache named unix:0:Lockowner_entry_cache
+ sadc kmem_cache named unix:0:File_entry_cache
+ sadc kmem_cache named unix:0:DelegStateID_entry_cache
+ sadc kmem_cache named unix:0:ip_minor_1
+ sadc kmem_cache named unix:0:ar_minor_1
+ sadc kmem_cache named unix:0:icmp_minor_1
+ sadc kmem_cache named unix:0:crypto_session_cache
+ sadc kmem_cache named unix:0:fcsm_job_cache
+ sadc kmem_cache named unix:0:sd0_cache
+ sadc kmem_cache named unix:0:hsfs_hsnode_cache
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc misc raw unix:0:sysinfo
+ sadc vm raw unix:0:vminfo
+ sadc misc named unix:0:system_misc
+ sadc kmem_cache named unix:0:file_cache
+ sadc ufs named ufs:0:inode_cache
+ sadc misc raw cpu_stat:0:cpu_stat0
+ sadc kmem_cache named unix:0:kmem_magazine_1
+ sadc kmem_cache named unix:0:kmem_magazine_3
+ sadc kmem_cache named unix:0:kmem_magazine_7
+ sadc kmem_cache named unix:0:kmem_magazine_15
+ sadc kmem_cache named unix:0:kmem_magazine_31
+ sadc kmem_cache named unix:0:kmem_magazine_47
+ sadc kmem_cache named unix:0:kmem_magazine_63
+ sadc kmem_cache named unix:0:kmem_magazine_95
+ sadc kmem_cache named unix:0:kmem_magazine_143
+ sadc kmem_cache named unix:0:kmem_slab_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_cache
+ sadc kmem_cache named unix:0:kmem_bufctl_audit_cache
+ sadc kmem_cache named unix:0:kmem_va_4096
+ sadc kmem_cache named unix:0:kmem_va_8192
+ sadc kmem_cache named unix:0:kmem_va_12288
+ sadc kmem_cache named unix:0:kmem_va_16384
+ sadc kmem_cache named unix:0:kmem_va_20480
+ sadc kmem_cache named unix:0:kmem_va_24576
+ sadc kmem_cache named unix:0:kmem_va_28672
+ sadc kmem_cache named unix:0:kmem_va_32768
+ sadc kmem_cache named unix:0:kmem_alloc_8
+ sadc kmem_cache named unix:0:kmem_alloc_16
+ sadc kmem_cache named unix:0:kmem_alloc_24
+ sadc kmem_cache named unix:0:kmem_alloc_32
+ sadc kmem_cache named unix:0:kmem_alloc_40
+ sadc kmem_cache named unix:0:kmem_alloc_48
+ sadc kmem_cache named unix:0:kmem_alloc_56
+ sadc kmem_cache named unix:0:kmem_alloc_64
+ sadc kmem_cache named unix:0:kmem_alloc_80
+ sadc kmem_cache named unix:0:kmem_alloc_96
+ sadc kmem_cache named unix:0:kmem_alloc_112
+ sadc kmem_cache named unix:0:kmem_alloc_128
+ sadc kmem_cache named unix:0:kmem_alloc_160
+ sadc kmem_cache named unix:0:kmem_alloc_192
+ sadc kmem_cache named unix:0:kmem_alloc_224
+ sadc kmem_cache named unix:0:kmem_alloc_256
+ sadc kmem_cache named unix:0:kmem_alloc_320
+ sadc kmem_cache named unix:0:kmem_alloc_384
+ sadc kmem_cache named unix:0:kmem_alloc_448
+ sadc kmem_cache named unix:0:kmem_alloc_512
+ sadc kmem_cache named unix:0:kmem_alloc_640
+ sadc kmem_cache named unix:0:kmem_alloc_768
+ sadc kmem_cache named unix:0:kmem_alloc_896
+ sadc kmem_cache named unix:0:kmem_alloc_1152
+ sadc kmem_cache named unix:0:kmem_alloc_1344
+ sadc kmem_cache named unix:0:kmem_alloc_1600
+ sadc kmem_cache named unix:0:kmem_alloc_2048
+ sadc kmem_cache named unix:0:kmem_alloc_2688
+ sadc kmem_cache named unix:0:kmem_alloc_4096
+ sadc kmem_cache named unix:0:kmem_alloc_8192
+ sadc kmem_cache named unix:0:kmem_alloc_12288
+ sadc kmem_cache named unix:0:kmem_alloc_16384
+ sadc kmem_cache named unix:0:streams_mblk
+ sadc kmem_cache named unix:0:streams_dblk_64
+ sadc kmem_cache named unix:0:streams_dblk_128
+ sadc kmem_cache named unix:0:streams_dblk_320
+ sadc kmem_cache named unix:0:streams_dblk_576
+ sadc kmem_cache named unix:0:streams_dblk_1088
+ sadc kmem_cache named unix:0:streams_dblk_1536
+ sadc kmem_cache named unix:0:streams_dblk_1984
+ sadc kmem_cache named unix:0:streams_dblk_2624
+ sadc kmem_cache named unix:0:streams_dblk_3968
+ sadc kmem_cache named unix:0:streams_dblk_8192
+ sadc kmem_cache named unix:0:streams_dblk_12160
+ sadc kmem_cache named unix:0:streams_dblk_16384
+ sadc kmem_cache named unix:0:streams_dblk_20352
+ sadc kmem_cache named unix:0:streams_dblk_24576
+ sadc kmem_cache named unix:0:streams_dblk_28544
+ sadc kmem_cache named unix:0:streams_dblk_32768
+ sadc kmem_cache named unix:0:streams_dblk_36736
+ sadc kmem_cache named unix:0:streams_dblk_40960
+ sadc kmem_cache named unix:0:streams_dblk_44928
+ sadc kmem_cache named unix:0:streams_dblk_49152
+ sadc kmem_cache named unix:0:streams_dblk_53120
+ sadc kmem_cache named unix:0:streams_dblk_57344
+ sadc kmem_cache named unix:0:streams_dblk_61312
+ sadc kmem_cache named unix:0:streams_dblk_65536
+ sadc kmem_cache named unix:0:streams_dblk_69504
+ sadc kmem_cache named unix:0:streams_dblk_73728
+ sadc kmem_cache named unix:0:streams_dblk_esb
+ sadc kmem_cache named unix:0:streams_fthdr
+ sadc kmem_cache named unix:0:streams_ftblk
+ sadc kmem_cache named unix:0:multidata
+ sadc kmem_cache named unix:0:multidata_pdslab
+ sadc kmem_cache named unix:0:multidata_pattbl
+ sadc kmem_cache named unix:0:taskq_ent_cache
+ sadc kmem_cache named unix:0:taskq_cache
+ sadc kmem_cache named unix:0:kmem_io_512M_128
+ sadc kmem_cache named unix:0:kmem_io_512M_256
+ sadc kmem_cache named unix:0:kmem_io_512M_512
+ sadc kmem_cache named unix:0:kmem_io_512M_1024
+ sadc kmem_cache named unix:0:kmem_io_512M_2048
+ sadc kmem_cache named unix:0:kmem_io_512M_4096
+ sadc kmem_cache named unix:0:kmem_io_16M_128
+ sadc kmem_cache named unix:0:kmem_io_16M_256
+ sadc kmem_cache named unix:0:kmem_io_16M_512
+ sadc kmem_cache named unix:0:kmem_io_16M_1024
+ sadc kmem_cache named unix:0:kmem_io_16M_2048
+ sadc kmem_cache named unix:0:kmem_io_16M_4096
+ sadc kmem_cache named unix:0:id32_cache
+ sadc kmem_cache named unix:0:bp_map_4096
+ sadc kmem_cache named unix:0:bp_map_8192
+ sadc kmem_cache named unix:0:bp_map_12288
+ sadc kmem_cache named unix:0:bp_map_16384
+ sadc kmem_cache named unix:0:bp_map_20480
+ sadc kmem_cache named unix:0:bp_map_24576
+ sadc kmem_cache named unix:0:bp_map_28672
+ sadc kmem_cache named unix:0:bp_map_32768
+ sadc kmem_cache named unix:0:mod_hash_entries
+ sadc kmem_cache named unix:0:ipp_mod
+ sadc kmem_cache named unix:0:ipp_action
+ sadc kmem_cache named unix:0:ipp_packet
+ sadc kmem_cache named unix:0:htable_t
+ sadc kmem_cache named unix:0:hment_t
+ sadc kmem_cache named unix:0:hat_t
+ sadc kmem_cache named unix:0:HatHash
+ sadc kmem_cache named unix:0:seg_cache
+ sadc kmem_cache named unix:0:snode_cache
+ sadc kmem_cache named unix:0:dv_node_cache
+ sadc kmem_cache named unix:0:dev_info_node_cache
+ sadc kmem_cache named unix:0:segkp_4096
+ sadc kmem_cache named unix:0:segkp_8192
+ sadc kmem_cache named unix:0:segkp_12288
+ sadc kmem_cache named unix:0:segkp_16384
+ sadc kmem_cache named unix:0:segkp_20480
+ sadc kmem_cache named unix:0:thread_cache
+ sadc kmem_cache named unix:0:lwp_cache
+ sadc kmem_cache named unix:0:turnstile_cache
+ sadc kmem_cache named unix:0:cred_cache
+ sadc kmem_cache named unix:0:rctl_cache
+ sadc kmem_cache named unix:0:rctl_val_cache
+ sadc kmem_cache named unix:0:task_cache
+ sadc kmem_cache named unix:0:cyclic_id_cache
+ sadc kmem_cache named unix:0:dnlc_space_cache
+ sadc kmem_cache named unix:0:vn_cache
+ sadc kmem_cache named unix:0:file_cache
+ sadc kmem_cache named unix:0:stream_head_cache
+ sadc kmem_cache named unix:0:queue_cache
+ sadc kmem_cache named unix:0:syncq_cache
+ sadc kmem_cache named unix:0:qband_cache
+ sadc kmem_cache named unix:0:linkinfo_cache
+ sadc kmem_cache named unix:0:ciputctrl_cache
+ sadc kmem_cache named unix:0:serializer_cache
+ sadc kmem_cache named unix:0:as_cache
+ sadc kmem_cache named unix:0:marker_cache
+ sadc kmem_cache named unix:0:anon_cache
+ sadc kmem_cache named unix:0:anonmap_cache
+ sadc kmem_cache named unix:0:segvn_cache
+ sadc kmem_cache named unix:0:flk_edges
+ sadc kmem_cache named unix:0:fdb_cache
+ sadc kmem_cache named unix:0:timer_cache
+ sadc kmem_cache named unix:0:physio_buf_cache
+ sadc kmem_cache named unix:0:ufs_inode_cache
+ sadc kmem_cache named unix:0:directio_buf_cache
+ sadc kmem_cache named unix:0:lufs_save
+ sadc kmem_cache named unix:0:lufs_bufs
+ sadc kmem_cache named unix:0:lufs_mapentry_cache
+ sadc kmem_cache named unix:0:kcf_sreq_cache
+ sadc kmem_cache named unix:0:kcf_areq_cache
+ sadc kmem_cache named unix:0:kcf_context_cache
+ sadc kmem_cache named unix:0:ipsec_actions
+ sadc kmem_cache named unix:0:ipsec_selectors
+ sadc kmem_cache named unix:0:ipsec_policy
+ sadc kmem_cache named unix:0:ipsec_info
+ sadc kmem_cache named unix:0:ip_minor_arena_1
+ sadc kmem_cache named unix:0:ipcl_conn_cache
+ sadc kmem_cache named unix:0:ipcl_tcpconn_cache
+ sadc kmem_cache named unix:0:ire_cache
+ sadc kmem_cache named unix:0:tcp_timercache
+ sadc kmem_cache named unix:0:tcp_sack_info_cache
+ sadc kmem_cache named unix:0:tcp_iphc_cache
+ sadc kmem_cache named unix:0:squeue_cache
+ sadc kmem_cache named unix:0:sctp_conn_cache
+ sadc kmem_cache named unix:0:sctp_faddr_cache
+ sadc kmem_cache named unix:0:sctp_set_cache
+ sadc kmem_cache named unix:0:sctp_ftsn_set_cache
+ sadc kmem_cache named unix:0:sctpsock
+ sadc kmem_cache named unix:0:sctp_assoc
+ sadc kmem_cache named unix:0:socktpi_cache
+ sadc kmem_cache named unix:0:socktpi_unix_cache
+ sadc kmem_cache named unix:0:ncafs_cache
+ sadc kmem_cache named unix:0:process_cache
+ sadc kmem_cache named unix:0:exacct_object_cache
+ sadc kmem_cache named unix:0:fctl_cache
+ sadc kmem_cache named unix:0:tl_cache
+ sadc kmem_cache named unix:0:keysock_1
+ sadc kmem_cache named unix:0:spdsock_1
+ sadc kmem_cache named unix:0:fnode_cache
+ sadc kmem_cache named unix:0:pipe_cache
+ sadc kmem_cache named unix:0:namefs_inodes_1
+ sadc kmem_cache named unix:0:port_cache
+ sadc kmem_cache named unix:0:lnode_cache
+ sadc kmem_cache named unix:0:clnt_clts_endpnt_cache
+ sadc kmem_cache named unix:0:pty_map
+ sadc kmem_cache named unix:0:sppptun_map
+ sadc kmem_cache named unix:0:dtrace_state_cache
+ sadc kmem_cache named unix:0:qif_head_cache
+ sadc kmem_cache named unix:0:udp_minor_1
+ sadc kmem_cache named unix:0:authkern_cache
+ sadc kmem_cache named unix:0:authloopback_cache
+ sadc kmem_cache named unix:0:authdes_cache_handle
+ sadc kmem_cache named unix:0:rnode_cache
+ sadc kmem_cache named unix:0:nfs_access_cache
+ sadc kmem_cache named unix:0:client_handle_cache
+ sadc kmem_cache named unix:0:rnode4_cache
+ sadc kmem_cache named unix:0:svnode_cache
+ sadc kmem_cache named unix:0:nfs4_access_cache
+ sadc kmem_cache named unix:0:client_handle4_cache
+ sadc kmem_cache named unix:0:nfs4_ace4vals_cache
+ sadc kmem_cache named unix:0:nfs4_ace4_list_cache
+ sadc kmem_cache named unix:0:NFS_idmap_cache
+ sadc kmem_cache named unix:0:lm_vnode
+ sadc kmem_cache named unix:0:lm_xprt
+ sadc kmem_cache named unix:0:lm_sysid
+ sadc kmem_cache named unix:0:lm_client
+ sadc kmem_cache named unix:0:lm_async
+ sadc kmem_cache named unix:0:lm_sleep
+ sadc kmem_cache named unix:0:lm_config
+ sadc kmem_cache named unix:0:nfslog_small_rec
+ sadc kmem_cache named unix:0:nfslog_medium_rec
+ sadc kmem_cache named unix:0:nfslog_large_rec
+ sadc kmem_cache named unix:0:exi_cache_handle
+ sadc kmem_cache named unix:0:Client_entry_cache
+ sadc kmem_cache named unix:0:OpenOwner_entry_cache
+ sadc kmem_cache named unix:0:OpenStateID_entry_cache
+ sadc kmem_cache named unix:0:LockStateID_entry_cache
+ sadc kmem_cache named unix:0:Lockowner_entry_cache
+ sadc kmem_cache named unix:0:File_entry_cache
+ sadc kmem_cache named unix:0:DelegStateID_entry_cache
+ sadc kmem_cache named unix:0:ip_minor_1
+ sadc kmem_cache named unix:0:ar_minor_1
+ sadc kmem_cache named unix:0:icmp_minor_1
+ sadc kmem_cache named unix:0:crypto_session_cache
+ sadc kmem_cache named unix:0:fcsm_job_cache
+ sadc kmem_cache named unix:0:sd0_cache
+ sadc kmem_cache named unix:0:hsfs_hsnode_cache
+ sadc vmem named vmem:16:kmem_oversize
+ sadc disk io cmdk:0:cmdk0
+ sadc nfs io nfs:1:nfs1
+ sadc disk io sd:0:sd0
+ sadc usb_byte_count io usba:0:uhci0,bulk
+ sadc usb_byte_count io usba:0:uhci0,ctrl
+ sadc usb_byte_count io usba:0:uhci0,intr
+ sadc usb_byte_count io usba:0:uhci0,isoch
+ sadc usb_byte_count io usba:0:uhci0,total
+ sadc usb_byte_count io usba:1:uhci1,bulk
+ sadc usb_byte_count io usba:1:uhci1,ctrl
+ sadc usb_byte_count io usba:1:uhci1,intr
+ sadc usb_byte_count io usba:1:uhci1,isoch
+ sadc usb_byte_count io usba:1:uhci1,total
+
+Yep, to print the four fields from "sar -u 1 1", sadc read the ENTIRE
+KSTAT TREE FIVE TIMES.
+
+Comparing the effect of this to vmstat,
+
+ # ptime vmstat 1 6
+ kthr memory page disk faults cpu
+ r b w swap free re mf pi po fr de sr cd s0 -- -- in sy cs us sy id
+ 0 0 43 907784 115324 29 124 34 1 1 0 4 2 0 0 0 277 470 210 1 2 97
+ 0 0 38 750856 172304 1 40 0 0 0 0 0 0 0 0 0 230 224 130 1 1 98
+ 0 0 38 750856 172304 0 0 0 0 0 0 0 0 0 0 0 219 168 111 0 1 99
+ 0 0 38 750856 172304 0 0 0 0 0 0 0 0 0 0 0 226 109 113 0 0 100
+ 0 0 38 750856 172304 0 0 0 0 0 0 0 0 0 0 0 225 246 137 1 1 98
+ 0 0 38 750856 172304 0 0 0 0 0 0 0 0 0 0 0 222 175 119 0 1 99
+
+ real 5.060
+ user 0.006
+ sys 0.013
+
+Ok, so vmstat causes a total of 13 ms of sys time - much of which would
+be the fork and exec. Now lets try sar,
+
+ # ptime sar -u 1 5
+
+ SunOS jupiter 5.10 Generic i86pc 04/21/2006
+
+ 23:42:55 %usr %sys %wio %idle
+ 23:42:56 0 3 0 97
+ 23:42:57 1 2 0 97
+ 23:42:58 0 2 0 98
+ 23:42:59 1 3 0 96
+ 23:43:00 0 2 0 98
+
+ Average 0 2 0 97
+
+ real 5.148
+ user 0.010
+ sys 0.127
+
+Phwaorr - 127 ms of sys time to measure 5 samples. That is a LOT.
diff --git a/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt b/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt
new file mode 100644
index 000000000000..5452d2e36f25
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt
@@ -0,0 +1,81 @@
+The following is a demonstration of the lastwords command,
+
+
+Here we run lastwords to catch syscalls from processes named "bash" as they
+exit,
+
+ # ./lastwords bash
+ Tracing... Waiting for bash to exit...
+ 1091567219163679 1861 bash sigaction 0 0
+ 1091567219177487 1861 bash sigaction 0 0
+ 1091567219189692 1861 bash sigaction 0 0
+ 1091567219202085 1861 bash sigaction 0 0
+ 1091567219214553 1861 bash sigaction 0 0
+ 1091567219226690 1861 bash sigaction 0 0
+ 1091567219238786 1861 bash sigaction 0 0
+ 1091567219251697 1861 bash sigaction 0 0
+ 1091567219265770 1861 bash sigaction 0 0
+ 1091567219294110 1861 bash gtime 42a7c194 0
+ 1091567219428305 1861 bash write 5 0
+ 1091567219451138 1861 bash setcontext 0 0
+ 1091567219473911 1861 bash sigaction 0 0
+ 1091567219516487 1861 bash stat64 0 0
+ 1091567219547973 1861 bash open64 4 0
+ 1091567219638345 1861 bash write 5 0
+ 1091567219658886 1861 bash close 0 0
+ 1091567219689094 1861 bash open64 4 0
+ 1091567219704301 1861 bash fstat64 0 0
+ 1091567219731796 1861 bash read 2fe 0
+ 1091567219745541 1861 bash close 0 0
+ 1091567219768536 1861 bash lwp_sigmask ffbffeff 0
+ 1091567219787494 1861 bash ioctl 0 0
+ 1091567219801338 1861 bash setpgrp 6a3 0
+ 1091567219814067 1861 bash ioctl 0 0
+ 1091567219825791 1861 bash lwp_sigmask ffbffeff 0
+ 1091567219847778 1861 bash setpgrp 0 0
+ TIME PID EXEC SYSCALL RETURN ERR
+
+In another window, a bash shell was executed and then exited normally. The
+last few system calls that the bash shell made can be seen above.
+
+
+
+
+In the following example we moniter the exit of bash shells again, but this
+time the bash shell sends itself a "kill -8",
+
+ # ./lastwords bash
+ Tracing... Waiting for bash to exit...
+ 1091650185555391 1865 bash sigaction 0 0
+ 1091650185567963 1865 bash sigaction 0 0
+ 1091650185580316 1865 bash sigaction 0 0
+ 1091650185592381 1865 bash sigaction 0 0
+ 1091650185605046 1865 bash sigaction 0 0
+ 1091650185618451 1865 bash sigaction 0 0
+ 1091650185647663 1865 bash gtime 42a7c1e7 0
+ 1091650185794626 1865 bash kill 0 0
+ 1091650185836941 1865 bash lwp_sigmask ffbffeff 0
+ 1091650185884145 1865 bash stat64 0 0
+ 1091650185916135 1865 bash open64 4 0
+ 1091650186005673 1865 bash write b 0
+ 1091650186025782 1865 bash close 0 0
+ 1091650186052002 1865 bash open64 4 0
+ 1091650186067538 1865 bash fstat64 0 0
+ 1091650186094289 1865 bash read 309 0
+ 1091650186108086 1865 bash close 0 0
+ 1091650186129965 1865 bash lwp_sigmask ffbffeff 0
+ 1091650186149092 1865 bash ioctl 0 0
+ 1091650186162614 1865 bash setpgrp 6a3 0
+ 1091650186175457 1865 bash ioctl 0 0
+ 1091650186187206 1865 bash lwp_sigmask ffbffeff 0
+ 1091650186209514 1865 bash setpgrp 0 0
+ 1091650186225307 1865 bash sigaction 0 0
+ 1091650186238832 1865 bash getpid 749 0
+ 1091650186260149 1865 bash kill 0 0
+ 1091650186277925 1865 bash setcontext 0 0
+ TIME PID EXEC SYSCALL RETURN ERR
+
+The last few system calls are different, we can see the kill system call
+before bash exits.
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/loads_example.txt b/cddl/contrib/dtracetoolkit/Examples/loads_example.txt
new file mode 100644
index 000000000000..f369f960ad8d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/loads_example.txt
@@ -0,0 +1,19 @@
+The following is a demonstration of the loads.d script.
+
+
+Here we run both loads.d and the uptime command for comparison,
+
+ # uptime
+ 1:30am up 14 day(s), 2:27, 3 users, load average: 3.52, 3.45, 3.05
+
+ # ./loads.d
+ 2005 Jun 11 01:30:49, load average: 3.52, 3.45, 3.05
+
+Both have returned the same load average, confirming that loads.d is
+behaving as expected.
+
+
+The point of loads.d is to demonstrate fetching the same data as uptime
+does, in the DTrace language. It is not intended as a replacement
+or substitute to the uptime(1) command.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt b/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt
new file mode 100644
index 000000000000..7310e5adde26
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt
@@ -0,0 +1,114 @@
+The following is a demonstration of the lockbyproc.d script,
+
+ # lockbydist.d
+ dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+ ^C
+
+ metadata-manager
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+ sched
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9
+ 65536 | 0
+
+ oracle
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@ 9
+ 65536 |@@@@@@@@@@@@@@@@@@@@@ 10
+ 131072 | 0
+
+In the above output, oracle can be seen to have blocked 10 times from
+65 to 131 microseconds, and 9 times from 32 to 65 microseconds. sched,
+the kernel, has blocked several times also. metadata-manager only
+blocked once, which was at least 262 microseconds.
+
+
+
+The following is a longer sample,
+
+ # lockbydist.d
+ dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+ ^C
+
+ svc.startd
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32768 | 0
+
+ java
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ oracle
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 65536 |@@@@@@@@@@@@@ 2
+ 131072 | 0
+
+ mysql-test-run
+ value ------------- Distribution ------------- count
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@@@@@@@@ 1
+ 262144 |@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+ pageout
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@ 1
+ 65536 | 0
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 524288 | 0
+
+ mysqltest
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@ 1
+ 65536 |@@@@@@@@@@@ 2
+ 131072 |@@@@@@@@@@@ 2
+ 262144 |@@@@@@@@@@@ 2
+ 524288 | 0
+
+ sched
+ value ------------- Distribution ------------- count
+ 8192 | 0
+ 16384 |@@@@@@@@@@@ 11
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@ 25
+ 65536 | 0
+ 131072 |@ 1
+ 262144 |@@ 2
+ 524288 | 0
+
+ mysqld
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@ 22
+ 65536 |@@@@@@@@@ 9
+ 131072 | 0
+ 262144 |@@@@ 4
+ 524288 | 0
+ 1048576 | 0
+ 2097152 | 0
+ 4194304 |@@ 2
+ 8388608 |@@@@ 4
+ 16777216 | 0
+
+The length of time threads were blocked, and the number of such blocks
+can be easily observed from the above output.
+
+mysqld can be seen to have many short blocks: 22 from 32 -> 65 microseconds,
+and a few larger blocks: 4 from 8 -> 16 ms.
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt
new file mode 100644
index 000000000000..11092353fdf3
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt
@@ -0,0 +1,42 @@
+The following is a demonstration of the lockbyproc.d script,
+
+ # lockbyproc.d
+ dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+ ^C
+
+ pageout 49438
+ mysql-test-run 96414
+ oracle 149086
+ sched 220601
+
+The above output shows that threads belonging to sched, the kernel, spent
+a total of 220 microseconds waiting for an adaptive mutex lock.
+
+
+
+
+This example sampled for a longer interval,
+
+ # lockbyproc.d
+ dtrace: description 'lockstat:::adaptive-block ' matched 1 probe
+ ^C
+
+ init 136228
+ java 371896
+ oracle 783402
+ sched 2315779
+ mysqltest 9428277
+ mysql-test-run 10093658
+ mysqld 17412999
+ fsflush 19676738
+
+Here we can see threads belonging to fsflush have spent a total of 19.7 ms
+waiting for an adaptive mutex. Note: it's not easy to say that it means a
+19.7 ms delay in the completion of the fsflush program, as this value is
+the sum of the block times across all the threads. So it is possible that
+many threads were blocked at the same time, eg, it could have been 19 threads
+blocked during the same 1 ms.
+
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt
new file mode 100644
index 000000000000..c2fffb4c6f26
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt
@@ -0,0 +1,20 @@
+The following is a demonstration of the minfbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # minfbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD MINFAULTS
+ 11021 dtrace 54
+ 11023 ls 56
+ 11024 df 57
+ 11023 bash 75
+ 11022 bash 75
+ 11024 bash 76
+ 11022 find 91
+
+In the above output, we can see that each of the bash shells had about 75
+minor faults each. Minor faults are an indication of memory consumption.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt
new file mode 100644
index 000000000000..0c1ce8401c82
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt
@@ -0,0 +1,14 @@
+The following is an example of the minfbyproc.d script,
+
+ # minfbyproc.d
+ dtrace: description 'vminfo:::as_fault ' matched 1 probe
+ ^C
+
+ mozilla-bin 18
+ dtrace 57
+ find 64
+ bash 150
+ tar 501
+
+In the above output, tar processes caused 501 minor faults.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt b/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt
new file mode 100644
index 000000000000..eca437056040
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt
@@ -0,0 +1,109 @@
+The following is a demonstration of the mmapfiles.d script.
+
+Here we run mmapfiles.d while in another window a new bash shell is started.
+The files that were mapped in aren't suprising, they are the common shared
+librarios,
+
+ # mmapfiles.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ MMAPS CMD PATHNAME
+ 1 bash /lib/libdl.so.1
+ 3 bash /lib/libsocket.so.1
+ 3 bash /lib/libnsl.so.1
+ 3 bash /lib/libc.so.1
+ 3 bash /lib/libcurses.so.1
+
+
+
+Now we examine zsh. This time a number of extra libraries are mapped,
+
+ # mmapfiles.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ MMAPS CMD PATHNAME
+ 1 zsh /lib/libdl.so.1
+ 3 getent /lib/libc.so.1
+ 3 getent /lib/libnsl.so.1
+ 3 getent /lib/libsocket.so.1
+ 3 zsh /usr/sfw/lib/zsh/4.2.1/zsh/parameter.so
+ 3 zsh /usr/sfw/lib/zsh/4.2.1/zsh/zutil.so
+ 3 zsh /usr/sfw/lib/zsh/4.2.1/zsh/complete.so
+ 3 zsh /usr/sfw/lib/zsh/4.2.1/zsh/stat.so
+ 3 zsh /usr/sfw/lib/zsh/4.2.1/zsh/zle.so
+ 3 tset /lib/libc.so.1
+ 3 tset /opt/sfw/lib/libncurses.so.5.2
+ 3 zsh /lib/libc.so.1
+ 3 zsh /lib/libm.so.2
+ 3 zsh /lib/libcurses.so.1
+ 3 zsh /lib/libnsl.so.1
+ 3 zsh /usr/sfw/lib/zsh/4.2.1/zsh/complist.so
+ 3 zsh /lib/libsocket.so.1
+
+
+
+Sometimes the output can be quite suprising. The following shows the mmaps
+caused by the "sdtaudiocontrol" tool, a java tool to change the volume levels
+on Solaris,
+
+ # mmapfiles.d
+ Tracing... Hit Ctrl-C to end.
+
+ MMAPS CMD PATHNAME
+ 1 java /usr/jdk/packages/jmf/lib/ext/jmplay.jar
+ 1 java /usr/dt/appconfig/sdtaudiocontrol/classes/SDtAudioControl.jar
+ 1 java /usr/dt/classes/xservices.jar
+ 1 java /usr/dt/classes/jhall.jar
+ 1 java /usr/dt/classes/jsearch.jar
+ 1 java /usr/jdk/packages/jmf/lib/ext/mp3plugin.jar
+ 1 java /usr/jdk/packages/jmf/lib/ext/jmfmp3.jar
+ 1 java /usr/jdk/packages/jmf/lib/ext/multiplayer.jar
+ 1 java /usr/jdk/packages/jmf/lib/ext/mediaplayer.jar
+ 1 java /usr/jdk/packages/jmf/lib/ext/jmf.jar
+ 1 java /usr/jdk/packages/jai-imageio/lib/ext/jai_imageio.jar
+ 1 java /usr/jdk/packages/jai-imageio/lib/ext/clibwrapper_jiio.jar
+ 1 java /usr/jdk/packages/jai/lib/ext/mlibwrapper_jai.jar
+ 1 java /usr/jdk/packages/jai/lib/ext/jai_core.jar
+ 1 java /usr/jdk/packages/jai/lib/ext/jai_codec.jar
+ 1 java /usr/jdk/packages/javax.help-2.0/lib/jhall.jar
+ 1 java /usr/jdk/instances/jdk1.5.0/jre/lib/ext/sunpkcs11.jar
+ 1 java /usr/jdk/instances/jdk1.5.0/jre/lib/ext/sunjce_provider.jar
+ 1 java /usr/jdk/instances/jdk1.5.0/jre/lib/ext/localedata.jar
+ 1 java /usr/jdk/instances/jdk1.5.0/jre/lib/ext/dnsns.jar
+ 1 java /tmp/hsperfdata_root/6464
+ 1 java /tmp/hsperfdata_root/6455
+ 2 java /usr/lib/libsched.so.1
+ 2 java /usr/jdk/instances/jdk1.5.0/jre/lib/charsets.jar
+ 2 java /usr/jdk/instances/jdk1.5.0/jre/lib/jce.jar
+ 2 java /usr/jdk/instances/jdk1.5.0/jre/lib/jsse.jar
+ 2 java /usr/jdk/instances/jdk1.5.0/jre/lib/rt.jar
+ 3 sdtaudiocontrol /lib/libc.so.1
+ 3 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/headless/libmawt.so
+ 3 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libmlib_image.so
+ 3 ls /lib/libc.so.1
+ 3 rm /lib/libc.so.1
+ 3 java /usr/dt/appconfig/sdtaudiocontrol/lib/libAudioControl.so
+ 3 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libawt.so
+ 4 java /lib/libdl.so.1
+ 6 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libzip.so
+ 6 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libjava.so
+ 6 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/libverify.so
+ 6 java /lib/libscf.so.1
+ 6 java /usr/lib/libCrun.so.1
+ 6 java /lib/libnsl.so.1
+ 6 java /lib/libm.so.1
+ 6 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/client/libjvm.so
+ 6 java /lib/libsocket.so.1
+ 6 java /lib/libuutil.so.1
+ 6 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/native_threads/libhpi.so
+ 6 java /lib/libmp.so.2
+ 6 java /lib/libmd5.so.1
+ 6 java /lib/libm.so.2
+ 6 java /lib/libdoor.so.1
+ 8 java /usr/jdk/instances/jdk1.5.0/jre/lib/i386/client/classes.jsa
+ 8 java /lib/libthread.so.1
+ 12 java /lib/libc.so.1
+ 21 awk /lib/libm.so.2
+ 21 awk /lib/libc.so.1
+ 65 java /devices/pseudo/mm@0:zero
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt
new file mode 100644
index 000000000000..f920d20581bf
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt
@@ -0,0 +1,47 @@
+The following is an example of the modcalls.d oneliner,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # modcalls.d
+ dtrace: script './modcalls.d' matched 18437 probes
+ ^C
+
+ ptm 2
+ mntfs 2
+ pool 2
+ kcf 4
+ pts 5
+ portfs 6
+ pset 6
+ ttcompat 9
+ ptem 9
+ devfs 13
+ ipf 15
+ namefs 20
+ ctfs 22
+ procfs 22
+ ldterm 23
+ ipgpc 48
+ sockfs 58
+ flowacct 69
+ ata 70
+ gld 75
+ rtls 76
+ specfs 83
+ ip 201
+ uhci 294
+ TS 333
+ tmpfs 694
+ doorfs 897
+ ufs 1329
+ uppc 5617
+ unix 49794
+ genunix 53445
+
+The output lists kernel modules, and the number of function calls for
+each module. For example, "rtls" - the network driver, called 76 functions.
+
+This script may be useful to determine whether drivers are "thinking" when
+troubleshooting driver issues.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt
new file mode 100644
index 000000000000..f392b050f88a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt
@@ -0,0 +1,19 @@
+The following is an example of the newproc.d script,
+
+ # ./newproc.d
+ dtrace: description 'proc:::exec-success ' matched 1 probe
+ CPU ID FUNCTION:NAME
+ 0 3297 exec_common:exec-success man ls
+ 0 3297 exec_common:exec-success sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |neqn /usr/share/lib/pub/
+ 0 3297 exec_common:exec-success tbl /usr/share/man/man1/ls.1
+ 0 3297 exec_common:exec-success neqn /usr/share/lib/pub/eqnchar -
+ 0 3297 exec_common:exec-success nroff -u0 -Tlp -man -
+ 0 3297 exec_common:exec-success col -x
+ 0 3297 exec_common:exec-success sh -c trap '' 1 15; /usr/bin/mv -f/tmp/mpzIaOZF /usr/share/man/cat1/ls.1 2> /d
+ 0 3297 exec_common:exec-success /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1
+ 0 3297 exec_common:exec-success sh -c more -s /tmp/mpzIaOZF
+ 0 3297 exec_common:exec-success more -s /tmp/mpzIaOZF
+
+The above output was caught when running "man ls". This identifies all the
+commands responsible for processing the man page.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt b/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt
new file mode 100644
index 000000000000..68fb18542377
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt
@@ -0,0 +1,67 @@
+The following is a demonstration of the NFS client wizard tool, nfswizard.d,
+
+
+
+ # nfswizard.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ NFS Client Wizard. 2005 Dec 2 14:59:07 -> 2005 Dec 2 14:59:14
+
+ Read: 4591616 bytes (4 Mb)
+ Write: 0 bytes (0 Mb)
+
+ Read: 640 Kb/sec
+ Write: 0 Kb/sec
+
+ NFS I/O events: 166
+ Avg response time: 8 ms
+ Max response time: 14 ms
+
+ Response times (us):
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 | 1
+ 512 |@@@ 14
+ 1024 |@ 4
+ 2048 |@@@@@@@ 30
+ 4096 |@@@@@ 20
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@ 97
+ 16384 | 0
+
+ Top 25 files accessed (bytes):
+ PATHNAME BYTES
+ /net/mars/var/tmp/adm/vold.log 4096
+ /net/mars/var/tmp/adm/uptime 4096
+ /net/mars/var/tmp/adm/mail 4096
+ /net/mars/var/tmp/adm/authlog.5 4096
+ /net/mars/var/tmp/adm/ftpd 12288
+ /net/mars/var/tmp/adm/spellhist 16384
+ /net/mars/var/tmp/adm/messages 16384
+ /net/mars/var/tmp/adm/utmpx 20480
+ /net/mars/var/tmp/adm/ftpd.2 20480
+ /net/mars/var/tmp/adm/ftpd.3 20480
+ /net/mars/var/tmp/adm/ftpd.1 24576
+ /net/mars/var/tmp/adm/ftpd.0 24576
+ /net/mars/var/tmp/adm/lastlog 28672
+ /net/mars/var/tmp/adm/ipf 61440
+ /net/mars/var/tmp/adm/loginlog 69632
+ /net/mars/var/tmp/adm/ipf.4 73728
+ /net/mars/var/tmp/adm/messages.20040906 81920
+ /net/mars/var/tmp/adm/ipf.3 102400
+ /net/mars/var/tmp/adm/ipf.1 110592
+ /net/mars/var/tmp/adm/ipf.5 114688
+ /net/mars/var/tmp/adm/ipf.2 114688
+ /net/mars/var/tmp/adm/ipf.0 122880
+ /net/mars/var/tmp/adm/route.log 266240
+ /net/mars/var/tmp/adm/pppd.log 425984
+ /net/mars/var/tmp/adm/wtmpx 2842624
+
+
+
+In the above demonstration, we run nfswizard.d for several seconds then hit
+Ctrl-C. The report contains useful information about NFS client activity,
+including response time statistics and file access details.
+
+Note: this is measuring activity caused by NFS client processes (which must
+be on the same server). It is not examining NFS server processes.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt b/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt
new file mode 100644
index 000000000000..9ca0fa62f671
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt
@@ -0,0 +1,307 @@
+#
+# DTrace OneLiners Examples
+#
+
+### New processes with arguments,
+
+# dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
+dtrace: description 'proc:::exec-success ' matched 1 probe
+CPU ID FUNCTION:NAME
+ 0 3297 exec_common:exec-success man ls
+ 0 3297 exec_common:exec-success sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |neqn /usr/share/lib/pub/
+ 0 3297 exec_common:exec-success tbl /usr/share/man/man1/ls.1
+ 0 3297 exec_common:exec-success neqn /usr/share/lib/pub/eqnchar -
+ 0 3297 exec_common:exec-success nroff -u0 -Tlp -man -
+ 0 3297 exec_common:exec-success col -x
+ 0 3297 exec_common:exec-success sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1 2> /d
+ 0 3297 exec_common:exec-success /usr/bin/mv -f /tmp/mpzIaOZF /usr/share/man/cat1/ls.1
+ 0 3297 exec_common:exec-success sh -c more -s /tmp/mpzIaOZF
+ 0 3297 exec_common:exec-success more -s /tmp/mpzIaOZF
+
+
+### Files opened by process,
+
+# dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+dtrace: description 'syscall::open*:entry ' matched 2 probes
+CPU ID FUNCTION:NAME
+ 0 14 open:entry gnome-netstatus- /dev/kstat
+ 0 14 open:entry man /var/ld/ld.config
+ 0 14 open:entry man /lib/libc.so.1
+ 0 14 open:entry man /usr/share/man/man.cf
+ 0 14 open:entry man /usr/share/man/windex
+ 0 14 open:entry man /usr/share/man/man1/ls.1
+ 0 14 open:entry man /usr/share/man/man1/ls.1
+ 0 14 open:entry man /tmp/mpqea4RF
+ 0 14 open:entry sh /var/ld/ld.config
+ 0 14 open:entry sh /lib/libc.so.1
+ 0 14 open:entry neqn /var/ld/ld.config
+ 0 14 open:entry neqn /lib/libc.so.1
+ 0 14 open:entry neqn /usr/share/lib/pub/eqnchar
+ 0 14 open:entry tbl /var/ld/ld.config
+ 0 14 open:entry tbl /lib/libc.so.1
+ 0 14 open:entry tbl /usr/share/man/man1/ls.1
+ 0 14 open:entry nroff /var/ld/ld.config
+[...]
+
+
+### Syscall count by program,
+
+# dtrace -n 'syscall:::entry { @num[execname] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+ snmpd 1
+ utmpd 2
+ inetd 2
+ nscd 7
+ svc.startd 11
+ sendmail 31
+ poold 133
+ dtrace 1720
+
+
+### Syscall count by syscall,
+
+# dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+ fstat 1
+ setcontext 1
+ lwp_park 1
+ schedctl 1
+ mmap 1
+ sigaction 2
+ pset 2
+ lwp_sigmask 2
+ gtime 3
+ sysconfig 3
+ write 4
+ brk 6
+ pollsys 7
+ p_online 558
+ ioctl 579
+
+
+### Syscall count by process,
+
+# dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
+dtrace: description 'syscall:::entry ' matched 228 probes
+^C
+ 1109 svc.startd 1
+ 4588 svc.startd 2
+ 7 svc.startd 2
+ 3950 svc.startd 2
+ 1626 nscd 2
+ 870 svc.startd 2
+ 82 nscd 6
+ 5011 sendmail 10
+ 6010 poold 74
+ 8707 dtrace 1720
+
+
+### Read bytes by process,
+
+# dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
+dtrace: description 'sysinfo:::readch ' matched 4 probes
+^C
+
+ mozilla-bin 16
+ gnome-smproxy 64
+ metacity 64
+ dsdm 64
+ wnck-applet 64
+ xscreensaver 96
+ gnome-terminal 900
+ ttymon 5952
+ Xorg 17544
+
+
+### Write bytes by process,
+
+# dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'
+dtrace: description 'sysinfo:::writech ' matched 4 probes
+^C
+
+ dtrace 1
+ gnome-settings-d 8
+ xscreensaver 8
+ gnome-panel 8
+ nautilus 8
+ date 29
+ wnck-applet 120
+ bash 210
+ mozilla-bin 1497
+ ls 1947
+ metacity 3172
+ Xorg 7424
+ gnome-terminal 51955
+
+
+### Read size distribution by process,
+
+# dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'
+dtrace: description 'sysinfo:::readch ' matched 4 probes
+^C
+[...]
+ gnome-terminal
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15
+ 64 |@@@ 1
+ 128 | 0
+
+ Xorg
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@ 26
+ 1 | 0
+ 2 | 0
+ 4 | 0
+ 8 |@@@@ 6
+ 16 |@ 2
+ 32 |@ 2
+ 64 | 0
+ 128 |@@@@@@@@ 11
+ 256 |@@@ 4
+ 512 | 0
+
+
+### Write size distribution by process,
+
+# dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'
+dtrace: description 'sysinfo:::writech ' matched 4 probes
+^C
+[...]
+ Xorg
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 169
+ 64 |@@@ 16
+ 128 |@@ 10
+ 256 | 0
+
+ gnome-terminal
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@ 6
+ 2 | 0
+ 4 | 0
+ 8 | 1
+ 16 |@ 2
+ 32 |@@@ 7
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@ 63
+ 256 |@@@@ 10
+ 512 | 1
+ 1024 |@@@@@ 13
+ 2048 |@ 2
+ 4096 |@@@ 7
+
+
+### Disk size by process,
+
+# dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
+ 0 3271 bdev_strategy:start 16459 tar 1024
+ 0 3271 bdev_strategy:start 16459 tar 1024
+ 0 3271 bdev_strategy:start 16459 tar 2048
+ 0 3271 bdev_strategy:start 16459 tar 1024
+ 0 3271 bdev_strategy:start 16459 tar 1024
+ 0 3271 bdev_strategy:start 16459 tar 1024
+ 0 3271 bdev_strategy:start 16459 tar 8192
+ 0 3271 bdev_strategy:start 16459 tar 8192
+ 0 3271 bdev_strategy:start 16459 tar 16384
+ 0 3271 bdev_strategy:start 16459 tar 2048
+ 0 3271 bdev_strategy:start 16459 tar 1024
+ 0 3271 bdev_strategy:start 16459 tar 1024
+
+
+### Pages paged in by process,
+
+# dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
+dtrace: description 'vminfo:::pgpgin ' matched 1 probe
+^C
+
+ ttymon 1
+ bash 1
+ mozilla-bin 36
+ tar 6661
+
+
+### Minor faults by process,
+
+# dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }'
+dtrace: description 'vminfo:::as_fault ' matched 1 probe
+^C
+
+ mozilla-bin 18
+ dtrace 57
+ find 64
+ bash 150
+ tar 501
+
+
+### Interrupts by CPU,
+
+# dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }'
+dtrace: description 'sdt:::interrupt-start ' matched 1 probe
+^C
+
+ 513 2
+ 515 4
+ 3 39
+ 2 39
+
+
+### New processes with arguments and time,
+
+# dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }'
+2005 Apr 25 19:15:09 man ls
+2005 Apr 25 19:15:09 sh -c cd /usr/share/man; tbl /usr/share/man/man1/ls.1 |...
+2005 Apr 25 19:15:09 neqn /usr/share/lib/pub/eqnchar -
+2005 Apr 25 19:15:09 tbl /usr/share/man/man1/ls.1
+2005 Apr 25 19:15:09 nroff -u0 -Tlp -man -
+2005 Apr 25 19:15:09 col -x
+2005 Apr 25 19:15:10 sh -c trap '' 1 15; /usr/bin/mv -f /tmp/mpRZaqTF /usr/s...
+2005 Apr 25 19:15:10 /usr/bin/mv -f /tmp/mpRZaqTF /usr/share/man/cat1/ls.1
+2005 Apr 25 19:15:10 sh -c more -s /tmp/mpRZaqTF
+2005 Apr 25 19:15:10 more -s /tmp/mpRZaqTF
+[...]
+
+
+### Successful signal details,
+
+# dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
+dtrace: description 'proc:::signal-send ' matched 1 probe
+CPU ID FUNCTION:NAME
+ 0 3303 sigtoproc:signal-send bash -15 16442
+ 0 3303 sigtoproc:signal-send bash -9 16443
+^C
+
+
+### Kernel function calls by module,
+
+# dtrace -n 'fbt:::entry { @calls[probemod] = count(); }'
+dtrace: description 'fbt:::entry ' matched 18437 probes
+^C
+
+ devfs 2
+ ptm 2
+ ipf 5
+ pts 5
+ ttcompat 9
+ ptem 9
+ ldterm 23
+ ipgpc 24
+ ufs 24
+ ata 25
+ sockfs 27
+ gld 32
+ rtls 34
+ flowacct 38
+ specfs 50
+ ip 84
+ TS 92
+ uhci 101
+ uppc 1758
+ unix 6347
+ genunix 10023
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt
new file mode 100644
index 000000000000..329d09b50340
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt
@@ -0,0 +1,110 @@
+The following are examples of opensnoop. File open events are traced
+along with some process details.
+
+
+This first example is of the default output. The commands "cat", "cal",
+"ls" and "uname" were run. The returned file descriptor (or -1 for error) are
+shown, along with the filenames.
+
+ # ./opensnoop
+ UID PID COMM FD PATH
+ 100 3504 cat -1 /var/ld/ld.config
+ 100 3504 cat 3 /usr/lib/libc.so.1
+ 100 3504 cat 3 /etc/passwd
+ 100 3505 cal -1 /var/ld/ld.config
+ 100 3505 cal 3 /usr/lib/libc.so.1
+ 100 3505 cal 3 /usr/share/lib/zoneinfo/Australia/NSW
+ 100 3506 ls -1 /var/ld/ld.config
+ 100 3506 ls 3 /usr/lib/libc.so.1
+ 100 3507 uname -1 /var/ld/ld.config
+ 100 3507 uname 3 /usr/lib/libc.so.1
+ [...]
+
+
+Full command arguments can be fetched using -g,
+
+ # ./opensnoop -g
+ UID PID PATH FD ARGS
+ 100 3528 /var/ld/ld.config -1 cat /etc/passwd
+ 100 3528 /usr/lib/libc.so.1 3 cat /etc/passwd
+ 100 3528 /etc/passwd 3 cat /etc/passwd
+ 100 3529 /var/ld/ld.config -1 cal
+ 100 3529 /usr/lib/libc.so.1 3 cal
+ 100 3529 /usr/share/lib/zoneinfo/Australia/NSW 3 cal
+ 100 3530 /var/ld/ld.config -1 ls -l
+ 100 3530 /usr/lib/libc.so.1 3 ls -l
+ 100 3530 /var/run/name_service_door 3 ls -l
+ 100 3530 /usr/share/lib/zoneinfo/Australia/NSW 4 ls -l
+ 100 3531 /var/ld/ld.config -1 uname -a
+ 100 3531 /usr/lib/libc.so.1 3 uname -a
+ [...]
+
+
+
+The verbose option prints human readable timestamps,
+
+ # ./opensnoop -v
+ STRTIME UID PID COMM FD PATH
+ 2005 Jan 22 01:22:50 0 23212 df -1 /var/ld/ld.config
+ 2005 Jan 22 01:22:50 0 23212 df 3 /lib/libcmd.so.1
+ 2005 Jan 22 01:22:50 0 23212 df 3 /lib/libc.so.1
+ 2005 Jan 22 01:22:50 0 23212 df 3 /platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
+ 2005 Jan 22 01:22:50 0 23212 df 3 /etc/mnttab
+ 2005 Jan 22 01:22:50 0 23211 dtrace 4 /usr/share/lib/zoneinfo/Australia/NSW
+ 2005 Jan 22 01:22:51 0 23213 uname -1 /var/ld/ld.config
+ 2005 Jan 22 01:22:51 0 23213 uname 3 /lib/libc.so.1
+ 2005 Jan 22 01:22:51 0 23213 uname 3 /platform/SUNW,Sun-Fire-V210/lib/libc_psr.so.1
+ [...]
+
+
+
+Particular files can be monitored using -f. For example,
+
+ # ./opensnoop -vgf /etc/passwd
+ STRTIME UID PID PATH FD ARGS
+ 2005 Jan 22 01:28:50 0 23242 /etc/passwd 3 cat /etc/passwd
+ 2005 Jan 22 01:28:54 0 23243 /etc/passwd 4 vi /etc/passwd
+ 2005 Jan 22 01:29:06 0 23244 /etc/passwd 3 passwd brendan
+ [...]
+
+
+
+This example is of opensnoop running on a quiet system. We can see as
+various daemons are opening files,
+
+ # ./opensnoop
+ UID PID COMM FD PATH
+ 0 253 nscd 5 /etc/user_attr
+ 0 253 nscd 5 /etc/hosts
+ 0 419 mibiisa 2 /dev/kstat
+ 0 419 mibiisa 2 /dev/rtls
+ 0 419 mibiisa 2 /dev/kstat
+ 0 419 mibiisa 2 /dev/kstat
+ 0 419 mibiisa 2 /dev/rtls
+ 0 419 mibiisa 2 /dev/kstat
+ 0 253 nscd 5 /etc/user_attr
+ 0 419 mibiisa 2 /dev/kstat
+ 0 419 mibiisa 2 /dev/rtls
+ 0 419 mibiisa 2 /dev/kstat
+ 0 174 in.routed 8 /dev/kstat
+ 0 174 in.routed 8 /dev/kstat
+ 0 174 in.routed 6 /dev/ip
+ 0 419 mibiisa 2 /dev/kstat
+ 0 419 mibiisa 2 /dev/rtls
+ 0 419 mibiisa 2 /dev/kstat
+ 0 293 utmpd 4 /var/adm/utmpx
+ 0 293 utmpd 5 /var/adm/utmpx
+ 0 293 utmpd 6 /proc/442/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/567/psinfo
+ 0 293 utmpd 6 /proc/3013/psinfo
+ 0 419 mibiisa 2 /dev/kstat
+ 0 419 mibiisa 2 /dev/rtls
+ 0 419 mibiisa 2 /dev/kstat
+ [...]
diff --git a/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt b/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt
new file mode 100644
index 000000000000..b5004dd3fc93
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt
@@ -0,0 +1,32 @@
+The following is a demonstration of the pathopens.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # pathopens.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ COUNT PATHNAME
+ 1 /lib/libcmd.so.1
+ 1 /export/home/root/DTrace/Dexplorer/dexplorer
+ 1 /lib/libmd5.so.1
+ 1 /lib/libaio.so.1
+ 1 /lib/librt.so.1
+ 1 /etc/security/prof_attr
+ 1 /etc/mnttab
+ 2 /devices/pseudo/devinfo@0:devinfo
+ 2 /dev/kstat
+ 2 /lib/libnvpair.so.1
+ 2 /lib/libkstat.so.1
+ 2 /lib/libdevinfo.so.1
+ 2 /lib/libnsl.so.1
+ 4 /lib/libc.so.1
+ 4 /var/ld/ld.config
+ 8 /export/home/brendan/Utils_solx86/setiathome-3.08.i386-pc-solaris2.6/outfile.sah
+
+In the above output, many of the files would have been opened using
+absolute pathnames. However the "dexplorer" file was opened using a relative
+pathname - and the pathopens.d script has correctly printed the full path.
+
+The above shows that the outfile.sah file was opened successfully 8 times.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt b/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt
new file mode 100644
index 000000000000..b2c54a031f0c
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt
@@ -0,0 +1,200 @@
+The following are sample outputs of the pfilestat tool for various scenarios.
+
+
+
+Starting with something simple,
+
+Running: dd if=/dev/rdsk/c0d0s0 of=/dev/null bs=56k # x86, 32-bit
+
+ # ./pfilestat `pgrep -x dd`
+
+ STATE FDNUM Time Filename
+ read 3 2% /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+ write 4 3% /devices/pseudo/mm@0:null
+ waitcpu 0 7%
+ running 0 16%
+ sleep-r 0 69%
+
+ STATE FDNUM KB/s Filename
+ write 4 53479 /devices/pseudo/mm@0:null
+ read 3 53479 /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+
+ Total event time (ms): 4999 Total Mbytes/sec: 104
+
+Most of the time we are sleeping on read, which is to be expected as dd on
+the raw device is simple -> read:entry, strategy, biodone, read:return.
+CPU time in read() itself is small.
+
+
+
+Now for the dsk device,
+
+Running: dd if=/dev/dsk/c0d0s0 of=/dev/null bs=56k # x86, 32-bit
+
+ # ./pfilestat `pgrep -x dd`
+
+ STATE FDNUM Time Filename
+ write 4 5% /devices/pseudo/mm@0:null
+ waitcpu 0 8%
+ running 0 15%
+ sleep-r 0 18%
+ read 3 53% /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+
+ STATE FDNUM KB/s Filename
+ read 3 53492 /devices/pci@0,0/pci-ide@1f,1/ide@0/cmdk@0,0
+ write 4 53492 /devices/pseudo/mm@0:null
+
+ Total event time (ms): 4914 Total Mbytes/sec: 102
+
+Woah, we are now spending much more time in read()! I imagine segmap is
+a busy bee. The "running" and "write" times are hardly different.
+
+
+
+Now for a SPARC demo of the same,
+
+Running: dd if=/dev/dsk/c0d0s0 of=/dev/null bs=56k # SPARC, 64-bit
+
+ # ./pfilestat `pgrep -x dd`
+
+ STATE FDNUM Time Filename
+ write 4 3% /devices/pseudo/mm@0:zero
+ waitcpu 0 7%
+ running 0 17%
+ read 3 24% /devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
+ sleep-r 0 54%
+
+ STATE FDNUM KB/s Filename
+ read 3 13594 /devices/pci@1f,0/pci@1,1/ide@3/dad@0,0:a
+ write 4 13606 /devices/pseudo/mm@0:zero
+
+ Total event time (ms): 4741 Total Mbytes/sec: 25
+
+I did prime the cache by running this a few times first. There is less
+read() time than with the x86 32-bit demo, as I would guess that the
+process is more often exhausting the (faster) segmap cache and getting
+to the point where it must sleep. (However, do take this comparison with
+a grain of salt - my development servers aren't ideal for comparing
+statistics: one is a 867 MHz Pentium, and the other a 360 MHz Ultra 5).
+
+The file system cache is faster on 64-bit systems due to the segkpm
+enhancement in Solaris 10. For details see,
+http://blogs.sun.com/roller/page/rmc?entry=solaris_10_fast_filesystem_cache
+
+
+
+Now, back to x86.
+
+Running: tar cf /dev/null /
+
+ # ./pfilestat `pgrep -x tar`
+
+ STATE FDNUM Time Filename
+ read 11 0% /extra1/test/amd64/libCstd.so.1
+ read 11 0% /extra1/test/amd64/libXm.so
+ read 11 0% /extra1/test/amd64/libXm.so.4
+ read 11 1% /extra1/test/amd64/libgtk-x11-2.0.so
+ read 11 2% /extra1/test/amd64/libgtk-x11-2.0.so.0
+ waitcpu 0 2%
+ read 9 4% /extra1/5000
+ write 3 7% /devices/pseudo/mm@0:null
+ running 0 19%
+ sleep-r 0 46%
+
+ STATE FDNUM KB/s Filename
+ read 11 293 /extra1/test/amd64/libgdk-x11-2.0.so
+ read 11 295 /extra1/test/amd64/libgdk-x11-2.0.so.0
+ read 9 476 /extra1/1000
+ read 11 526 /extra1/test/amd64/libCstd.so.1
+ read 11 594 /extra1/test/amd64/libXm.so.4
+ read 11 594 /extra1/test/amd64/libXm.so
+ read 11 1603 /extra1/test/amd64/libgtk-x11-2.0.so.0
+ read 11 1606 /extra1/test/amd64/libgtk-x11-2.0.so
+ read 9 4078 /extra1/5000
+ write 3 21254 /devices/pseudo/mm@0:null
+
+ Total event time (ms): 4903 Total Mbytes/sec: 41
+
+Fair enough. tar is crusing along at 21 Mbytes/sec (writes to fd 3!).
+
+
+
+More interesting is to do the following,
+
+Running: tar cf - / | gzip > /dev/null
+
+ # ./pfilestat `pgrep -x tar`
+
+ STATE FDNUM Time Filename
+ read 11 0% /extra1/test/amd64/libm.so
+ read 11 0% /extra1/test/amd64/libm.so.2
+ read 11 0% /extra1/test/amd64/libnsl.so
+ read 11 0% /extra1/test/amd64/libnsl.so.1
+ read 11 0% /extra1/test/amd64/libc.so.1
+ write 3 2% <none>
+ waitcpu 0 4%
+ sleep-r 0 4%
+ running 0 6%
+ sleep-w 0 78%
+
+ STATE FDNUM KB/s Filename
+ read 11 74 /extra1/test/amd64/libldap.so
+ read 11 75 /extra1/test/amd64/libldap.so.5
+ read 11 75 /extra1/test/amd64/libresolv.so.2
+ read 11 76 /extra1/test/amd64/libresolv.so
+ read 11 97 /extra1/test/amd64/libm.so.2
+ read 11 98 /extra1/test/amd64/libm.so
+ read 11 174 /extra1/test/amd64/libnsl.so
+ read 11 176 /extra1/test/amd64/libnsl.so.1
+ read 11 216 /extra1/test/amd64/libc.so.1
+ write 3 3022 <none>
+
+ Total event time (ms): 4911 Total Mbytes/sec: 6
+
+Woah now, tar is writing 3 Mbytes/sec - AND spending 78% of it's time on
+sleep-w, sleeping on writes! Of course, this is because we are piping the
+output to gzip, which is spending a while compressing the data. 78%
+matches the time gzip was on the CPU (using either "prstat -m" or dtrace
+to measure; procfs's pr_pctcpu would take too long to catch up).
+
+
+
+
+Also interesting is,
+
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: perl -e 'while (1) {;}' &
+Running: tar cf /dev/null /
+
+ # ./pfilestat `pgrep -x tar`
+
+ STATE FDNUM Time Filename
+ read 11 0% /extra1/test/amd64/libxml2.so.2
+ read 11 0% /extra1/test/amd64/libgdk-x11-2.0.so.0
+ read 11 0% /extra1/test/amd64/libgdk-x11-2.0.so
+ read 11 0% /extra1/test/amd64/libCstd.so.1
+ read 11 0% /extra1/test/amd64/libgtk-x11-2.0.so.0
+ read 11 2% /extra1/test/amd64/libgtk-x11-2.0.so
+ write 3 2% /devices/pseudo/mm@0:null
+ running 0 8%
+ sleep-r 0 22%
+ waitcpu 0 65%
+
+ STATE FDNUM KB/s Filename
+ read 11 182 /extra1/test/amd64/libsun_fc.so
+ read 11 264 /extra1/test/amd64/libglib-2.0.so
+ read 11 266 /extra1/test/amd64/libglib-2.0.so.0
+ read 11 280 /extra1/test/amd64/libxml2.so.2
+ read 11 293 /extra1/test/amd64/libgdk-x11-2.0.so
+ read 11 295 /extra1/test/amd64/libgdk-x11-2.0.so.0
+ read 11 526 /extra1/test/amd64/libCstd.so.1
+ read 11 761 /extra1/test/amd64/libgtk-x11-2.0.so.0
+ read 11 1606 /extra1/test/amd64/libgtk-x11-2.0.so
+ write 3 7881 /devices/pseudo/mm@0:null
+
+ Total event time (ms): 4596 Total Mbytes/sec: 13
+
+Now we have "waitcpu" as tar competes for CPU cycles along with the greedy
+infinite perl processes.
diff --git a/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt
new file mode 100644
index 000000000000..8326b904d94c
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt
@@ -0,0 +1,14 @@
+The following is a demonstration of the pgpginbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # pgpginbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD PAGES
+ 10692 find 128
+ 10693 tar 11928
+
+In the output above, we can see which processes are responsible for page ins,
+as well as the number of pages paged in.
diff --git a/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt
new file mode 100644
index 000000000000..e8bb8217a138
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt
@@ -0,0 +1,13 @@
+The following is a demonstration of the pgpginbyproc.d script,
+
+ # pgpginbyproc.d
+ dtrace: description 'vminfo:::pgpgin ' matched 1 probe
+ ^C
+
+ ttymon 1
+ bash 1
+ mozilla-bin 36
+ tar 6661
+
+In the above output, tar processes have paged in 6661 pages from the filesystem.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt
new file mode 100644
index 000000000000..db3b0af9d542
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt
@@ -0,0 +1,84 @@
+The following are examples of php_calldist.d.
+
+This script traces the elapsed time of PHP functions and prints a report
+containing distribution plots per subroutine. Here it traces the example program
+Code/Php/func_abc.php.
+
+# php_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function elapsed times (us),
+ func_abc.php, func, func_a
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ func_abc.php, func, func_b
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ func_abc.php, func, func_c
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ func_abc.php, func, sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+
+Inclusive function elapsed times (us),
+ func_abc.php, func, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.php, func, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_abc.php, func, sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+ func_abc.php, func, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c(), and sleep was called 3 times. You can see this reflected in the
+"count" column on the right.
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 256 and 512 microseconds. This time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5
+seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and
+func_a() took between 2.1 seconds and 4.2 seconds to execute. This time
+includes the time spent in other subroutines called, and since func_a() called
+func_b() which called func_c(), these times make sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+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 subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt
new file mode 100644
index 000000000000..d76cb6e02581
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt
@@ -0,0 +1,51 @@
+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.
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt
new file mode 100644
index 000000000000..6da7d29d8f4d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt
@@ -0,0 +1,84 @@
+The following are examples of php_cpudist.d.
+
+This script traces the on-CPU time of PHP functions and prints a report
+containing distribution plots per subroutine. Here it traces the example
+program Code/Php/func_abc.php.
+
+# php_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function on-CPU times (us),
+ func_abc.php, func, func_a
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ func_abc.php, func, func_b
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ func_abc.php, func, func_c
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ func_abc.php, func, sleep
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+
+Inclusive function on-CPU times (us),
+ func_abc.php, func, func_c
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ func_abc.php, func, sleep
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 32 | 0
+
+ func_abc.php, func, func_b
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ func_abc.php, func, func_a
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c(), and sleep was called 3 times. You can see this reflected in the
+"count" column on the right.
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 16 and 31 microseconds on CPU. This time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 32
+microseconds and 63 microseconds on CPU; sleep ran three times and each time
+took between 16 and 31 microseconds on CPU; func_b() took between 64 and 127
+microseconds on CPU; and func_a() took between 128 and 255 microseconds on
+CPU. This time includes the time spent in other subroutines called, and since
+func_a() called func_b() which called func_c(), these times make sense.
+
+These elapsed times are the on CPU time from when the subroutine began to
+when it completed.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+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 subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt
new file mode 100644
index 000000000000..db218e1d1f53
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt
@@ -0,0 +1,58 @@
+The following are examples of php_cputime.d.
+
+This script traces the on-CPU time of PHP functions and prints a report.
+Here it traces the example program, Code/Php/func_abc.php.
+
+# php_cputime.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 on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.php func func_c 17
+ func_abc.php func func_b 25
+ func_abc.php func func_a 74
+ func_abc.php func sleep 93
+ - total - 210
+
+Inclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.php func func_c 39
+ func_abc.php func func_b 87
+ func_abc.php func sleep 93
+ func_abc.php func func_a 210
+
+In total, six functions were called; sleep was called three times and there
+was one call each of func_a(), func_b() and func_c().
+
+The exclusive subroutine on-CPU times show that func_a() spent around 74
+microseconds on-CPU, func_b() spent 25 microseconds on-CPU, and func_c() spent
+17 microseconds on-CPU. This exclusive times excludes time spent in other
+subroutines.
+
+The inclusive subroutine on-CPU times show that func_c() spent around 39
+microseconds on-CPU, func_b() spent around 87 microseconds on-CPU and
+func_a() spent around 210 microseconds. This inclusive time includes the time
+spent in other functions called (including sleep), and since func_a() called
+func_b() which called func_c(), these times make perfect sense.
+
+These on-CPU times are the time the program spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_abc.php program alongside the above output, the numbers
+should make sense.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt
new file mode 100644
index 000000000000..6470daf087b3
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt
@@ -0,0 +1,36 @@
+The following are examples of php_flow.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flow.d
+ C TIME(us) FILE -- FUNC
+ 0 3645535409575 func_abc.php -> func_a
+ 0 3645535409653 func_abc.php -> sleep
+ 0 3645536410511 func_abc.php <- sleep
+ 0 3645536410536 func_abc.php -> func_b
+ 0 3645536410557 func_abc.php -> sleep
+ 0 3645537420627 func_abc.php <- sleep
+ 0 3645537420652 func_abc.php -> func_c
+ 0 3645537420673 func_abc.php -> sleep
+ 0 3645538430106 func_abc.php <- sleep
+ 0 3645538430125 func_abc.php <- func_c
+ 0 3645538430134 func_abc.php <- func_b
+ 0 3645538430143 func_abc.php <- func_a
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt
new file mode 100644
index 000000000000..3b2e3c1f314c
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt
@@ -0,0 +1,40 @@
+The following are examples of php_flowinfo.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flowinfo.d
+C PID/TID DELTA(us) FILE:LINE TYPE -- FUNC
+0 18422/1 9 func_abc.php:22 func -> func_a
+0 18422/1 35 func_abc.php:18 func -> sleep
+0 18422/1 1009146 func_abc.php:18 func <- sleep
+0 18422/1 35 func_abc.php:19 func -> func_b
+0 18422/1 24 func_abc.php:11 func -> sleep
+0 18422/1 1009803 func_abc.php:11 func <- sleep
+0 18422/1 34 func_abc.php:12 func -> func_c
+0 18422/1 24 func_abc.php:5 func -> sleep
+0 18422/1 1009953 func_abc.php:5 func <- sleep
+0 18422/1 28 func_abc.php:6 func <- func_c
+0 18422/1 11 func_abc.php:13 func <- func_b
+0 18422/1 10 func_abc.php:20 func <- func_a
+^C
+
+The third column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+calling the sleep function beginning was 35 microseconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt
new file mode 100644
index 000000000000..57eb69c6dc64
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt
@@ -0,0 +1,41 @@
+The following are examples of php_flowtime.d.
+
+This is a simple script to trace the flow of PHP functions.
+Here it traces the example program, Code/Php/func_abc.php
+
+# php_flowtime.d
+ C TIME(us) FILE DELTA(us) -- FUNC
+ 0 3646108339057 func_abc.php 9 -> func_a
+ 0 3646108339090 func_abc.php 32 -> sleep
+ 0 3646109341043 func_abc.php 1001953 <- sleep
+ 0 3646109341074 func_abc.php 31 -> func_b
+ 0 3646109341098 func_abc.php 23 -> sleep
+ 0 3646110350712 func_abc.php 1009614 <- sleep
+ 0 3646110350745 func_abc.php 32 -> func_c
+ 0 3646110350768 func_abc.php 23 -> sleep
+ 0 3646111362323 func_abc.php 1011554 <- sleep
+ 0 3646111362351 func_abc.php 27 <- func_c
+ 0 3646111362361 func_abc.php 10 <- func_b
+ 0 3646111362370 func_abc.php 9 <- func_a
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by
+showing that func_a() began; slept, and returned from sleep; and then called
+func_b().
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+calling the sleep function beginning was 32 microseconds".
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt
new file mode 100644
index 000000000000..7155a7139b92
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt
@@ -0,0 +1,17 @@
+The following are examples of php_funccalls.d.
+
+This is a simple script to count executed PHP functions. Here it traces
+an example program, Code/Php/func_abc.php
+
+# php_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE FUNC CALLS
+ func_abc.php func_a 1
+ func_abc.php func_b 1
+ func_abc.php func_c 1
+ func_abc.php sleep 3
+
+While tracing, func_a() from the program "func_abc.php" was executed once,
+as were func_b() and func_c(). sleep was executed three times.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt
new file mode 100644
index 000000000000..853d08299314
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt
@@ -0,0 +1,23 @@
+Following are examples of running php_malloc.d.
+
+Here it is running on Code/Php/func_abc.php
+
+ # php_malloc.d -p 18523
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ PHP malloc byte distributions by engine caller,
+
+
+ PHP malloc byte distributions by PHP file and function,
+
+
+Theoretically this should show you mallocs. However there weren't any in this
+example. The rest of these example files would have been so much easier to
+write if they were all like this. I would have been finished by now and would
+have been flicking through the TV channels with a nice, cold beer in hand.
+
+
+... Fixing this example is on my todo list. Check for newer versions of the
+toolkit.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt
new file mode 100644
index 000000000000..c783420fc0fb
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt
@@ -0,0 +1,22 @@
+The following are examples of php_syscalls.d.
+
+This is a simple script to count executed PHP functions and system calls.
+Here it traces an example program, Code/Php/func_abc.php
+
+# php_syscalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID FILE TYPE NAME COUNT
+ 18419 func_abc.php func func_a 1
+ 18419 func_abc.php func func_b 1
+ 18419 func_abc.php func func_c 1
+ 18419 func_abc.php func sleep 3
+ 18419 httpd syscall nanosleep 3
+
+While tracing, four functions were called - func_a(), func_b(), func_c(), and
+sleep. There were also three instances of the system call nanosleep().
+
+This script can provide an insight to how a PHP application is interacting
+with the system, by providing both application function calls and system calls
+in the same output.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt
new file mode 100644
index 000000000000..96b26a8877df
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt
@@ -0,0 +1,63 @@
+The following are examples of php_syscolors.d.
+
+This is a simple script to trace the flow of PHP functions and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Php/func_abc.php.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# php_syscolors.d
+C PID/TID DELTA(us) FILE:LINE TYPE -- NAME
+0 18426/1 8 func_abc.php:22 func -> func_a
+0 18426/1 41 func_abc.php:18 func -> sleep
+0 18426/1 15 ":- syscall -> nanosleep
+0 18426/1 1008700 ":- syscall <- nanosleep
+0 18426/1 30 func_abc.php:18 func <- sleep
+0 18426/1 42 func_abc.php:19 func -> func_b
+0 18426/1 28 func_abc.php:11 func -> sleep
+0 18426/1 14 ":- syscall -> nanosleep
+0 18426/1 1010083 ":- syscall <- nanosleep
+0 18426/1 29 func_abc.php:11 func <- sleep
+0 18426/1 43 func_abc.php:12 func -> func_c
+0 18426/1 28 func_abc.php:5 func -> sleep
+0 18426/1 14 ":- syscall -> nanosleep
+0 18426/1 1009794 ":- syscall <- nanosleep
+0 18426/1 28 func_abc.php:5 func <- sleep
+0 18426/1 34 func_abc.php:6 func <- func_c
+0 18426/1 18 func_abc.php:13 func <- func_b
+0 18426/1 17 func_abc.php:20 func <- func_a
+0 18426/1 21 ":- syscall -> fchdir
+0 18426/1 19 ":- syscall <- fchdir
+0 18426/1 9 ":- syscall -> close
+0 18426/1 13 ":- syscall <- close
+0 18426/1 35 ":- syscall -> semsys
+0 18426/1 12 ":- syscall <- semsys
+0 18426/1 7 ":- syscall -> semsys
+0 18426/1 7 ":- syscall <- semsys
+0 18426/1 66 ":- syscall -> setitimer
+0 18426/1 8 ":- syscall <- setitimer
+0 18426/1 39 ":- syscall -> read
+0 18426/1 14 ":- syscall <- read
+0 18426/1 11 ":- syscall -> writev
+0 18426/1 22 ":- syscall <- writev
+0 18426/1 23 ":- syscall -> write
+0 18426/1 110 ":- syscall <- write
+0 18426/1 61 ":- syscall -> pollsys
+
+In this excerpt:
+0 18426/1 43 func_abc.php:12 func -> func_c
+0 18426/1 28 func_abc.php:5 func -> sleep
+0 18426/1 14 ":- syscall -> nanosleep
+0 18426/1 1009794 ":- syscall <- nanosleep
+0 18426/1 28 func_abc.php:5 func <- sleep
+0 18426/1 34 func_abc.php:6 func <- func_c
+
+we can see that we are at Line 12 of the program which invokes func_c. func_c
+then invokes sleep, which uses the syscall nanosleep. Approximately one
+second later nanosleep returns, then sleep finishes, then func_c finishes.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt
new file mode 100644
index 000000000000..cee32b2f8494
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt
@@ -0,0 +1,10 @@
+The following are examples of the results of running php_who.d.
+
+# php_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID FUNCS FILE
+ 158525 80 7 /opt/coolstack/apache2/htdocs/php/func_abc.php
+
+Running the php_who.d while the func_abc.php program runs, we can see that
+while func_abc.php was running, it called seven functions.
diff --git a/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt b/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt
new file mode 100644
index 000000000000..11f6bd7c1fc9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt
@@ -0,0 +1,33 @@
+The following is a demonstration of the pidpersec.d script.
+
+
+Here the program is run on an idle system,
+
+ # ./pidpersec.d
+ TIME LASTPID PID/s
+ 2005 Jun 9 22:15:09 3010 0
+ 2005 Jun 9 22:15:10 3010 0
+ 2005 Jun 9 22:15:11 3010 0
+ 2005 Jun 9 22:15:12 3010 0
+ 2005 Jun 9 22:15:13 3010 0
+ ^C
+
+This shows that there are now new processes being created.
+
+
+
+Now the script is run on a busy system, that is creating many processes
+(which happen to be short-lived),
+
+ # ./pidpersec.d
+ TIME LASTPID PID/s
+ 2005 Jun 9 22:16:30 3051 13
+ 2005 Jun 9 22:16:31 3063 12
+ 2005 Jun 9 22:16:32 3073 10
+ 2005 Jun 9 22:16:33 3084 11
+ 2005 Jun 9 22:16:34 3096 12
+ ^C
+
+Now we can see that there are over 10 new processes created each second.
+The value for lastpid confirms the rates printed.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt
new file mode 100644
index 000000000000..f53b7f54777d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt
@@ -0,0 +1,456 @@
+The following are examples of pl_calldist.d.
+
+This script traces the elapsed time of Perl subroutines (functions) and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Perl/func_abc.pl.
+
+ # pl_calldist.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Exclusive subroutine elapsed times (us),
+ func_abc.pl, sub, func_a
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.pl, sub, func_b
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.pl, sub, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+
+ Inclusive subroutine elapsed times (us),
+ func_abc.pl, sub, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.pl, sub, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_abc.pl, sub, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+In total, 3 subroutines were called - func_a(), func_b(), and func_c().
+
+The exclusive subroutine elapsed times show that each subroutine spent
+between 524 and 1048 ms. This exclusive time excludes the time spent in
+other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5 and
+1.0 seconds, func_b() took between 1.0 and 2.1 seconds, and func_a() took
+between 2.1 and 4.2 seconds to execute. This inclusive time includes the
+time spent in other subroutines called, and since func_a() called func_b()
+which called func_c(), these times make sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+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 subroutine time.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive subroutine elapsed times (us),
+ DynaLoader.pm, sub, dl_load_flags
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ Config.pm, sub, TIEHASH
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ Config.pm, sub, DESTROY
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ Config.pm, sub, import
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ register.pm, sub, mkMask
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ Config.pm, sub, FETCH
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ Config.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, import
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@ 2
+ 8 |@@@@@@@@ 1
+ 16 |@@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, bits
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@ 1
+ 16 |@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, unimport
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 16 |@@@@@@@@@@ 1
+ 32 | 0
+
+ AutoLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@ 1
+ 4 |@@@@@@@ 1
+ 8 |@@@@@@@@@@@@@@@@@@@@ 3
+ 16 |@@@@@@@ 1
+ 32 | 0
+
+ Std.pm, sub, getopts
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ register.pm, sub, import
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ vars.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ Exporter.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@ 1
+ 64 |@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ DynaLoader.pm, sub, bootstrap
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ warnings.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ DynaLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ nicstat, sub, print_neat
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@ 10
+ 128 |@@@@@@@@@@@@@@@@@@ 8
+ 256 | 0
+
+ vars.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@ 1
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ Kstat.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ nicstat, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@ 1
+ 512 |@@@@@@@@@@@@@ 1
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ nicstat, sub, fetch_net_data
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ nicstat, sub, find_nets
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+
+Inclusive subroutine elapsed times (us),
+ DynaLoader.pm, sub, dl_load_flags
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ Config.pm, sub, TIEHASH
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ Config.pm, sub, DESTROY
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ Config.pm, sub, import
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ register.pm, sub, mkMask
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ Config.pm, sub, FETCH
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ strict.pm, sub, bits
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@ 1
+ 16 |@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, import
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ Config.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 |@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ Std.pm, sub, getopts
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ register.pm, sub, import
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ strict.pm, sub, unimport
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 32 | 0
+
+ vars.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ AutoLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@ 1
+ 4 |@@@@@@@ 1
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 3
+ 32 |@@@@@@@ 1
+ 64 | 0
+
+ Exporter.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@ 1
+ 64 |@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ DynaLoader.pm, sub, bootstrap
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ warnings.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ nicstat, sub, print_neat
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@ 10
+ 128 |@@@@@@@@@@@@@@@@@@ 8
+ 256 | 0
+
+ vars.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 | 0
+ 16 | 0
+ 32 |@@@@@@@@@@@@@ 1
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ DynaLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ Kstat.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 1
+ 32 |@@@@@@@@@@@@@ 1
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ nicstat, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@ 1
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ nicstat, sub, fetch_net_data
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ nicstat, sub, find_nets
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+As an example of interpreting the output: the inclusive elapsed time for
+the "print_neat" subroutine in "nicstat",
+
+ nicstat, sub, print_neat
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@ 10
+ 128 |@@@@@@@@@@@@@@@@@@ 8
+ 256 | 0
+
+shows that "print_neat" was called 18 times, 10 of which took between 64
+and 127 microseconds, and 8 of which took between 128 and 255 microseconds.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt
new file mode 100644
index 000000000000..3cc5480fdc2d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt
@@ -0,0 +1,150 @@
+The following are examples of pl_calltime.d.
+
+This script traces the elapsed time of Perl subroutines (functions) and
+prints a report. Here it traces the example program, Code/Perl/func_abc.pl.
+
+ # pl_calltime.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Count,
+ FILE TYPE NAME COUNT
+ func_abc.pl sub func_a 1
+ func_abc.pl sub func_b 1
+ func_abc.pl sub func_c 1
+ - total - 3
+
+ Exclusive subroutine elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.pl sub func_a 1006119
+ func_abc.pl sub func_c 1009978
+ func_abc.pl sub func_b 1010273
+ - total - 3026371
+
+ Inclusive subroutine elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.pl sub func_c 1009978
+ func_abc.pl sub func_b 2020252
+ func_abc.pl sub func_a 3026371
+
+In total, 3 subroutines were called, one of each.
+
+The exclusive subroutine elapsed times show that each subroutine spent around
+1.0 seconds of time (~1000000 us) processing code - while not in other
+subroutines.
+
+The inclusive subroutine elapsed times show that func_a() took around 3.0
+seconds to execute, followed by func_b() at 2.0 seconds, and func_c() at 1.0.
+The inclusive time includes the time spent in other subroutines called, and
+since func_a() called func_b() which called func_c(), these times make
+perfect sense.
+
+These elapsed times are the absolute time from when the subroutine began to
+when it completed - which includes off-CPU time due to other system events
+such as I/O, scheduling, interrupts, etc.
+
+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 subroutine time.
+
+If you study the func_abc.pl program alongside the above output, the numbers
+should make sense.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ Config.pm sub DESTROY 1
+ Config.pm sub TIEHASH 1
+ Config.pm sub import 1
+ DynaLoader.pm sub bootstrap 1
+ DynaLoader.pm sub dl_load_flags 1
+ Std.pm sub getopts 1
+ nicstat sub fetch_net_data 1
+ nicstat sub find_nets 1
+ register.pm sub import 1
+ warnings.pm sub BEGIN 1
+ Config.pm sub BEGIN 2
+ DynaLoader.pm sub BEGIN 2
+ Exporter.pm sub import 2
+ register.pm sub mkMask 2
+ vars.pm sub import 2
+ Kstat.pm sub BEGIN 3
+ nicstat sub BEGIN 3
+ vars.pm sub BEGIN 3
+ Config.pm sub FETCH 4
+ strict.pm sub unimport 4
+ strict.pm sub import 5
+ AutoLoader.pm sub BEGIN 6
+ strict.pm sub bits 6
+ nicstat sub print_neat 18
+ - total - 72
+
+Exclusive subroutine elapsed times (us),
+ FILE TYPE NAME TOTAL
+ DynaLoader.pm sub dl_load_flags 2
+ Config.pm sub TIEHASH 3
+ Config.pm sub DESTROY 9
+ register.pm sub mkMask 11
+ Config.pm sub import 12
+ Config.pm sub FETCH 17
+ strict.pm sub import 38
+ Config.pm sub BEGIN 38
+ strict.pm sub bits 49
+ vars.pm sub import 59
+ strict.pm sub unimport 65
+ AutoLoader.pm sub BEGIN 70
+ Std.pm sub getopts 78
+ register.pm sub import 86
+ Exporter.pm sub import 112
+ warnings.pm sub BEGIN 680
+ DynaLoader.pm sub BEGIN 1131
+ DynaLoader.pm sub bootstrap 1221
+ nicstat sub print_neat 2450
+ vars.pm sub BEGIN 2608
+ Kstat.pm sub BEGIN 3171
+ nicstat sub BEGIN 3963
+ nicstat sub fetch_net_data 45424
+ nicstat sub find_nets 55737
+ - total - 117047
+
+Inclusive subroutine elapsed times (us),
+ FILE TYPE NAME TOTAL
+ DynaLoader.pm sub dl_load_flags 2
+ Config.pm sub TIEHASH 3
+ Config.pm sub DESTROY 9
+ register.pm sub mkMask 11
+ Config.pm sub import 12
+ Config.pm sub FETCH 17
+ strict.pm sub import 46
+ strict.pm sub bits 49
+ vars.pm sub import 59
+ Config.pm sub BEGIN 64
+ strict.pm sub unimport 87
+ register.pm sub import 97
+ Std.pm sub getopts 112
+ Exporter.pm sub import 112
+ AutoLoader.pm sub BEGIN 140
+ warnings.pm sub BEGIN 680
+ DynaLoader.pm sub bootstrap 1224
+ nicstat sub print_neat 2450
+ vars.pm sub BEGIN 3412
+ DynaLoader.pm sub BEGIN 4656
+ Kstat.pm sub BEGIN 8020
+ nicstat sub BEGIN 13313
+ nicstat sub fetch_net_data 45424
+ nicstat sub find_nets 55737
+
+The output showed that the most time was spent in the subroutine find_nets(),
+with a total exclusive elapsed time of 55.7 ms. This also matches the
+total inclusive time, suggesting that find_nets() didn't call other
+subroutines.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt
new file mode 100644
index 000000000000..a2ccff83f4ed
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt
@@ -0,0 +1,470 @@
+The following are examples of pl_cpudist.d.
+
+This script traces the on-CPU time of Perl subroutines (functions) and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Perl/func_slow.pl.
+
+ # pl_cpudist.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Exclusive subroutine on-CPU times (us),
+ func_slow.pl, sub, func_a
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+ func_slow.pl, sub, func_b
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_slow.pl, sub, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+
+ Inclusive subroutine on-CPU times (us),
+ func_slow.pl, sub, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_slow.pl, sub, func_a
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_slow.pl, sub, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+The exclusive subroutine on-CPU times show that func_a() spent between
+262 ms and 524 ms on-CPU, while func_b() and func_c() both spent between
+524 ms and 1048 ms on-CPU.
+
+The inclusive subroutine on-CPU times show that func_c() spent between 0.5 and
+1.0 seconds, and both func_b() and func_a() spent between 1.0 and 2.1 seconds
+of CPU time. This inclusive time includes the time spent in other subroutines
+called, and since func_a() called func_b() which called func_c(), these times
+make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_cpudist.pl
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive subroutine on-CPU times (us),
+ Config.pm, sub, TIEHASH
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ DynaLoader.pm, sub, dl_load_flags
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ Config.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+
+ Config.pm, sub, DESTROY
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ register.pm, sub, mkMask
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ Config.pm, sub, import
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ Config.pm, sub, FETCH
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 |@@@@@@@@@@ 1
+ 8 | 0
+
+ strict.pm, sub, unimport
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 8 |@@@@@@@@@@ 1
+ 16 | 0
+
+ Std.pm, sub, getopts
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ register.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ strict.pm, sub, import
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@ 1
+ 8 |@@@@@@@@ 1
+ 16 |@@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, bits
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@ 1
+ 16 |@@@@@@@ 1
+ 32 | 0
+
+ AutoLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@ 1
+ 2 |@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@ 2
+ 8 | 0
+ 16 | 0
+ 32 |@@@@@@@ 1
+ 64 | 0
+
+ vars.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ Exporter.pm, sub, import
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ nicstat, sub, print_neat
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 32 |@@ 1
+ 64 |@@ 1
+ 128 | 0
+
+ DynaLoader.pm, sub, bootstrap
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ warnings.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ DynaLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 |@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ vars.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@ 1
+ 2 |@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ Kstat.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ nicstat, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ nicstat, sub, fetch_net_data
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ nicstat, sub, find_nets
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+
+Inclusive subroutine on-CPU times (us),
+ Config.pm, sub, TIEHASH
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ DynaLoader.pm, sub, dl_load_flags
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ Config.pm, sub, DESTROY
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ register.pm, sub, mkMask
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ Config.pm, sub, import
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ Config.pm, sub, FETCH
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 |@@@@@@@@@@ 1
+ 8 | 0
+
+ Config.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, unimport
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 16 | 0
+
+ strict.pm, sub, import
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@ 2
+ 16 |@@@@@@@@ 1
+ 32 | 0
+
+ strict.pm, sub, bits
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@ 1
+ 16 |@@@@@@@ 1
+ 32 | 0
+
+ Std.pm, sub, getopts
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ register.pm, sub, import
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ vars.pm, sub, import
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ AutoLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@ 1
+ 2 | 0
+ 4 |@@@@@@@ 1
+ 8 |@@@@@@@@@@@@@ 2
+ 16 |@@@@@@@ 1
+ 32 |@@@@@@@ 1
+ 64 | 0
+
+ Exporter.pm, sub, import
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ nicstat, sub, print_neat
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 32 |@@ 1
+ 64 |@@ 1
+ 128 | 0
+
+ DynaLoader.pm, sub, bootstrap
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ warnings.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ vars.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@ 1
+ 2 | 0
+ 4 | 0
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 1
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ DynaLoader.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ Kstat.pm, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@ 1
+ 8 | 0
+ 16 | 0
+ 32 |@@@@@@@@@@@@@ 1
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ nicstat, sub, BEGIN
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@ 1
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ nicstat, sub, fetch_net_data
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ nicstat, sub, find_nets
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+As an example of interpreting the output: the inclusive on-CPU time for
+the "print_neat" subroutine in "nicstat",
+
+ nicstat, sub, print_neat
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 32 |@@ 1
+ 64 |@@ 1
+ 128 | 0
+
+shows that "print_neat" was called 18 times, 16 of which spent between 16
+and 31 microseconds on-CPU, once between 32 and 63 microseconds, and once
+between 64 and 127 microseconds.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt
new file mode 100644
index 000000000000..5dc56eead288
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt
@@ -0,0 +1,151 @@
+The following are examples of pl_cputime.d.
+
+This script traces the on-CPU time of Perl subroutines (functions) and
+prints a report. Here it traces the example program, Code/Perl/func_slow.pl.
+
+ # pl_cputime.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Count,
+ FILE TYPE NAME COUNT
+ func_slow.pl sub func_a 1
+ func_slow.pl sub func_b 1
+ func_slow.pl sub func_c 1
+ - total - 3
+
+ Exclusive subroutine on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.pl sub func_a 264193
+ func_slow.pl sub func_b 538498
+ func_slow.pl sub func_c 798961
+ - total - 1601653
+
+ Inclusive subroutine on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.pl sub func_c 798961
+ func_slow.pl sub func_b 1337459
+ func_slow.pl sub func_a 1601653
+
+In total, 3 subroutines were called, one each of func_a(), func_b() and
+func_c().
+
+The exclusive subroutine on-CPU times show that func_a() spent around 264.2 ms
+on-CPU, func_b() spent 538.5 ms, and func_c() spent 799.0 ms. This exclusive
+times excludes time spent in other subroutines.
+
+The inclusive subroutine on-CPU times show that func_c() spent around 799.0 ms
+on-CPU, func_b() spent around 1.3 seconds, and func_a() spent around 1.6
+seconds. This inclusive time includes the time spent in other subroutines
+called, and since func_a() called func_b() which called func_c(), these
+times make perfect sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
+If you study the func_slow.pl program alongside the above output, the numbers
+should make sense.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_cputime.pl
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ Config.pm sub DESTROY 1
+ Config.pm sub TIEHASH 1
+ Config.pm sub import 1
+ DynaLoader.pm sub bootstrap 1
+ DynaLoader.pm sub dl_load_flags 1
+ Std.pm sub getopts 1
+ nicstat sub fetch_net_data 1
+ nicstat sub find_nets 1
+ register.pm sub import 1
+ warnings.pm sub BEGIN 1
+ Config.pm sub BEGIN 2
+ DynaLoader.pm sub BEGIN 2
+ Exporter.pm sub import 2
+ register.pm sub mkMask 2
+ vars.pm sub import 2
+ Kstat.pm sub BEGIN 3
+ nicstat sub BEGIN 3
+ vars.pm sub BEGIN 3
+ Config.pm sub FETCH 4
+ strict.pm sub unimport 4
+ strict.pm sub import 5
+ AutoLoader.pm sub BEGIN 6
+ strict.pm sub bits 6
+ nicstat sub print_neat 18
+ - total - 72
+
+Exclusive subroutine on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ DynaLoader.pm sub dl_load_flags 2
+ Config.pm sub TIEHASH 2
+ Config.pm sub DESTROY 6
+ Config.pm sub BEGIN 7
+ register.pm sub mkMask 8
+ Config.pm sub import 11
+ Config.pm sub FETCH 12
+ strict.pm sub unimport 17
+ strict.pm sub import 21
+ AutoLoader.pm sub BEGIN 22
+ Std.pm sub getopts 33
+ strict.pm sub bits 40
+ register.pm sub import 51
+ vars.pm sub import 65
+ Exporter.pm sub import 88
+ nicstat sub print_neat 426
+ warnings.pm sub BEGIN 598
+ DynaLoader.pm sub bootstrap 677
+ DynaLoader.pm sub BEGIN 1015
+ Kstat.pm sub BEGIN 2627
+ vars.pm sub BEGIN 2642
+ nicstat sub BEGIN 3033
+ nicstat sub fetch_net_data 42018
+ nicstat sub find_nets 52094
+ - total - 105526
+
+Inclusive subroutine on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ DynaLoader.pm sub dl_load_flags 2
+ Config.pm sub TIEHASH 2
+ Config.pm sub DESTROY 6
+ register.pm sub mkMask 8
+ Config.pm sub import 11
+ Config.pm sub FETCH 12
+ Config.pm sub BEGIN 19
+ strict.pm sub import 28
+ strict.pm sub unimport 35
+ strict.pm sub bits 40
+ AutoLoader.pm sub BEGIN 51
+ register.pm sub import 59
+ Std.pm sub getopts 63
+ vars.pm sub import 65
+ Exporter.pm sub import 88
+ nicstat sub print_neat 426
+ warnings.pm sub BEGIN 598
+ DynaLoader.pm sub bootstrap 680
+ vars.pm sub BEGIN 3313
+ DynaLoader.pm sub BEGIN 4401
+ Kstat.pm sub BEGIN 7124
+ nicstat sub BEGIN 10916
+ nicstat sub fetch_net_data 42018
+ nicstat sub find_nets 52094
+
+The output showed that the most CPU time was spent in the subroutine
+find_nets(), with a total exclusive on-CPU time of 52.1 ms. This also matches
+the total inclusive time, suggesting that find_nets() didn't call other
+subroutines.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt
new file mode 100644
index 000000000000..dcce6e04de03
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt
@@ -0,0 +1,179 @@
+The following are examples of pl_flow.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+ # pl_flow.d
+ C TIME(us) FILE -- SUB
+ 0 2979519183757 func_abc.pl -> func_a
+ 0 2979520190159 func_abc.pl -> func_b
+ 0 2979521200166 func_abc.pl -> func_c
+ 0 2979522210184 func_abc.pl <- func_c
+ 0 2979522210199 func_abc.pl <- func_b
+ 0 2979522210207 func_abc.pl <- func_a
+ ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flow.d
+ C TIME(us) FILE -- SUB
+ 0 4181899422549 nicstat -> BEGIN
+ 0 4181899423048 strict.pm -> bits
+ 0 4181899423081 strict.pm <- bits
+ 0 4181899423105 strict.pm -> import
+ 0 4181899423126 strict.pm <- import
+ 0 4181899423133 nicstat <- BEGIN
+ 0 4181899423157 nicstat -> BEGIN
+ 0 4181899445634 Exporter.pm -> import
+ 0 4181899445730 Exporter.pm <- import
+ 0 4181899445743 nicstat <- BEGIN
+ 0 4181899445770 nicstat -> BEGIN
+ 0 4181899446066 Kstat.pm -> BEGIN
+ 0 4181899446076 strict.pm -> import
+ 0 4181899446087 strict.pm <- import
+ 0 4181899446094 Kstat.pm <- BEGIN
+ 0 4181899446116 Kstat.pm -> BEGIN
+ 0 4181899453669 DynaLoader.pm -> BEGIN
+ 0 4181899453810 vars.pm -> BEGIN
+ 0 4181899453821 vars.pm <- BEGIN
+ 0 4181899453921 vars.pm -> BEGIN
+ 0 4181899454494 warnings.pm -> BEGIN
+ 0 4181899455149 warnings.pm <- BEGIN
+ 0 4181899457183 register.pm -> import
+ 0 4181899457202 register.pm -> mkMask
+ 0 4181899457214 register.pm <- mkMask
+ 0 4181899457264 register.pm -> mkMask
+ 0 4181899457274 register.pm <- mkMask
+ 0 4181899457283 register.pm <- import
+ 0 4181899457290 vars.pm <- BEGIN
+ 0 4181899457316 vars.pm -> BEGIN
+ 0 4181899457324 strict.pm -> import
+ 0 4181899457332 strict.pm -> bits
+ 0 4181899457345 strict.pm <- bits
+ 0 4181899457353 strict.pm <- import
+ 0 4181899457359 vars.pm <- BEGIN
+ 0 4181899457652 vars.pm -> import
+ 0 4181899457703 vars.pm <- import
+ 0 4181899457710 DynaLoader.pm <- BEGIN
+ 0 4181899457758 DynaLoader.pm -> BEGIN
+ 0 4181899457883 Config.pm -> BEGIN
+ 0 4181899457890 strict.pm -> import
+ 0 4181899457899 strict.pm <- import
+ 0 4181899457906 Config.pm <- BEGIN
+ 0 4181899458038 Config.pm -> BEGIN
+ 0 4181899458045 strict.pm -> unimport
+ 0 4181899458053 strict.pm -> bits
+ 0 4181899458063 strict.pm <- bits
+ 0 4181899458077 strict.pm <- unimport
+ 0 4181899458084 Config.pm <- BEGIN
+ 0 4181899458426 Config.pm -> TIEHASH
+ 0 4181899458435 Config.pm <- TIEHASH
+ 0 4181899458476 Config.pm -> import
+ 0 4181899458493 Config.pm <- import
+ 0 4181899458500 DynaLoader.pm <- BEGIN
+ 0 4181899459978 AutoLoader.pm -> BEGIN
+ 0 4181899459990 strict.pm -> import
+ 0 4181899460033 strict.pm <- import
+ 0 4181899460064 AutoLoader.pm <- BEGIN
+ 0 4181899460088 AutoLoader.pm -> BEGIN
+ 0 4181899460096 AutoLoader.pm <- BEGIN
+ 0 4181899460187 AutoLoader.pm -> BEGIN
+ 0 4181899460199 AutoLoader.pm <- BEGIN
+ 0 4181899460582 AutoLoader.pm -> BEGIN
+ 0 4181899460590 strict.pm -> unimport
+ 0 4181899460598 strict.pm -> bits
+ 0 4181899460611 strict.pm <- bits
+ 0 4181899460619 strict.pm <- unimport
+ 0 4181899460625 AutoLoader.pm <- BEGIN
+ 0 4181899460830 AutoLoader.pm -> BEGIN
+ 0 4181899460838 strict.pm -> unimport
+ 0 4181899460845 strict.pm -> bits
+ 0 4181899460855 strict.pm <- bits
+ 0 4181899460862 strict.pm <- unimport
+ 0 4181899460869 AutoLoader.pm <- BEGIN
+ 0 4181899461092 AutoLoader.pm -> BEGIN
+ 0 4181899461100 strict.pm -> unimport
+ 0 4181899461107 strict.pm -> bits
+ 0 4181899461116 strict.pm <- bits
+ 0 4181899461124 strict.pm <- unimport
+ 0 4181899461130 AutoLoader.pm <- BEGIN
+ 0 4181899461238 Config.pm -> FETCH
+ 0 4181899461250 Config.pm <- FETCH
+ 0 4181899461264 Config.pm -> FETCH
+ 0 4181899461272 Config.pm <- FETCH
+ 0 4181899461282 Config.pm -> FETCH
+ 0 4181899461290 Config.pm <- FETCH
+ 0 4181899461299 Config.pm -> FETCH
+ 0 4181899461307 Config.pm <- FETCH
+ 0 4181899461403 Kstat.pm <- BEGIN
+ 0 4181899461432 Kstat.pm -> BEGIN
+ 0 4181899461440 vars.pm -> import
+ 0 4181899461476 vars.pm <- import
+ 0 4181899461483 Kstat.pm <- BEGIN
+ 0 4181899461539 DynaLoader.pm -> bootstrap
+ 0 4181899461769 DynaLoader.pm -> dl_load_flags
+ 0 4181899461777 DynaLoader.pm <- dl_load_flags
+ 0 4181899462208 DynaLoader.pm <- bootstrap
+ 0 4181899462231 nicstat <- BEGIN
+ 0 4181899468306 Std.pm -> getopts
+ 0 4181899468351 Exporter.pm -> import
+ 0 4181899468390 Exporter.pm <- import
+ 0 4181899468405 Std.pm <- getopts
+ 0 4181899468426 nicstat -> find_nets
+ 0 4181899521011 nicstat <- find_nets
+ 0 4181899521415 nicstat -> fetch_net_data
+ 0 4181899564973 nicstat <- fetch_net_data
+ 0 4181899565526 nicstat -> print_neat
+ 0 4181899565672 nicstat <- print_neat
+ 0 4181899565680 nicstat -> print_neat
+ 0 4181899565902 nicstat <- print_neat
+ 0 4181899565909 nicstat -> print_neat
+ 0 4181899566033 nicstat <- print_neat
+ 0 4181899566039 nicstat -> print_neat
+ 0 4181899566165 nicstat <- print_neat
+ 0 4181899566172 nicstat -> print_neat
+ 0 4181899566331 nicstat <- print_neat
+ 0 4181899566338 nicstat -> print_neat
+ 0 4181899566494 nicstat <- print_neat
+ 0 4181899566791 nicstat -> print_neat
+ 0 4181899566953 nicstat <- print_neat
+ 0 4181899566961 nicstat -> print_neat
+ 0 4181899567085 nicstat <- print_neat
+ 0 4181899567091 nicstat -> print_neat
+ 0 4181899567247 nicstat <- print_neat
+ 0 4181899567254 nicstat -> print_neat
+ 0 4181899567377 nicstat <- print_neat
+ 0 4181899567383 nicstat -> print_neat
+ 0 4181899567538 nicstat <- print_neat
+ 0 4181899567544 nicstat -> print_neat
+ 0 4181899567666 nicstat <- print_neat
+ 0 4181899567977 nicstat -> print_neat
+ 0 4181899568232 nicstat <- print_neat
+ 0 4181899568240 nicstat -> print_neat
+ 0 4181899568397 nicstat <- print_neat
+ 0 4181899568404 nicstat -> print_neat
+ 0 4181899568528 nicstat <- print_neat
+ 0 4181899568535 nicstat -> print_neat
+ 0 4181899568656 nicstat <- print_neat
+ 0 4181899568663 nicstat -> print_neat
+ 0 4181899568819 nicstat <- print_neat
+ 0 4181899568826 nicstat -> print_neat
+ 0 4181899568947 nicstat <- print_neat
+ 0 4181899572708 Config.pm -> DESTROY
+ 0 4181899572735 Config.pm <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt
new file mode 100644
index 000000000000..e4b406f14c49
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt
@@ -0,0 +1,188 @@
+The following are examples of pl_flowinfo.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+ # pl_flowinfo.d
+ C PID DELTA(us) FILE:LINE TYPE -- SUB
+ 0 305127 2 func_abc.pl:15 sub -> func_a
+ 0 305127 1008776 func_abc.pl:9 sub -> func_b
+ 0 305127 1010019 func_abc.pl:4 sub -> func_c
+ 0 305127 1009979 func_abc.pl:4 sub <- func_c
+ 0 305127 26 func_abc.pl:9 sub <- func_b
+ 0 305127 9 func_abc.pl:15 sub <- func_a
+ ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+func_b() beginning was 1008776 us, or 1.01 seconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flowinfo.d
+C PID DELTA(us) FILE:LINE TYPE -- SUB
+0 305132 2 nicstat:83 sub -> BEGIN
+0 305132 444 strict.pm:12 sub -> bits
+0 305132 34 strict.pm:12 sub <- bits
+0 305132 32 strict.pm:28 sub -> import
+0 305132 22 strict.pm:28 sub <- import
+0 305132 8 nicstat:83 sub <- BEGIN
+0 305132 26 nicstat:84 sub -> BEGIN
+0 305132 2339 Exporter.pm:30 sub -> import
+0 305132 83 Exporter.pm:30 sub <- import
+0 305132 14 nicstat:84 sub <- BEGIN
+0 305132 27 nicstat:85 sub -> BEGIN
+0 305132 205 Kstat.pm:34 sub -> BEGIN
+0 305132 11 strict.pm:28 sub -> import
+0 305132 11 strict.pm:28 sub <- import
+0 305132 8 Kstat.pm:34 sub <- BEGIN
+0 305132 23 Kstat.pm:35 sub -> BEGIN
+0 305132 187 DynaLoader.pm:18 sub -> BEGIN
+0 305132 73 vars.pm:3 sub -> BEGIN
+0 305132 9 vars.pm:3 sub <- BEGIN
+0 305132 34 vars.pm:7 sub -> BEGIN
+0 305132 470 warnings.pm:134 sub -> BEGIN
+0 305132 598 warnings.pm:134 sub <- BEGIN
+0 305132 2151 register.pm:37 sub -> import
+0 305132 23 register.pm:28 sub -> mkMask
+0 305132 13 register.pm:28 sub <- mkMask
+0 305132 53 register.pm:28 sub -> mkMask
+0 305132 11 register.pm:28 sub <- mkMask
+0 305132 11 register.pm:37 sub <- import
+0 305132 8 vars.pm:7 sub <- BEGIN
+0 305132 28 vars.pm:8 sub -> BEGIN
+0 305132 9 strict.pm:28 sub -> import
+0 305132 8 strict.pm:12 sub -> bits
+0 305132 13 strict.pm:12 sub <- bits
+0 305132 9 strict.pm:28 sub <- import
+0 305132 8 vars.pm:8 sub <- BEGIN
+0 305132 294 vars.pm:11 sub -> import
+0 305132 52 vars.pm:11 sub <- import
+0 305132 8 DynaLoader.pm:18 sub <- BEGIN
+0 305132 48 DynaLoader.pm:25 sub -> BEGIN
+0 305132 97 Config.pm:5 sub -> BEGIN
+0 305132 9 strict.pm:28 sub -> import
+0 305132 9 strict.pm:28 sub <- import
+0 305132 8 Config.pm:5 sub <- BEGIN
+0 305132 134 Config.pm:31 sub -> BEGIN
+0 305132 9 strict.pm:33 sub -> unimport
+0 305132 8 strict.pm:12 sub -> bits
+0 305132 11 strict.pm:12 sub <- bits
+0 305132 16 strict.pm:33 sub <- unimport
+0 305132 8 Config.pm:31 sub <- BEGIN
+0 305132 343 Config.pm:60 sub -> TIEHASH
+0 305132 10 Config.pm:60 sub <- TIEHASH
+0 305132 44 Config.pm:25 sub -> import
+0 305132 18 Config.pm:25 sub <- import
+0 305132 9 DynaLoader.pm:25 sub <- BEGIN
+0 305132 1301 AutoLoader.pm:3 sub -> BEGIN
+0 305132 11 strict.pm:28 sub -> import
+0 305132 10 strict.pm:28 sub <- import
+0 305132 9 AutoLoader.pm:3 sub <- BEGIN
+0 305132 22 AutoLoader.pm:4 sub -> BEGIN
+0 305132 9 AutoLoader.pm:4 sub <- BEGIN
+0 305132 89 AutoLoader.pm:14 sub -> BEGIN
+0 305132 13 AutoLoader.pm:14 sub <- BEGIN
+0 305132 375 AutoLoader.pm:95 sub -> BEGIN
+0 305132 9 strict.pm:33 sub -> unimport
+0 305132 8 strict.pm:12 sub -> bits
+0 305132 11 strict.pm:12 sub <- bits
+0 305132 9 strict.pm:33 sub <- unimport
+0 305132 8 AutoLoader.pm:95 sub <- BEGIN
+0 305132 203 AutoLoader.pm:128 sub -> BEGIN
+0 305132 9 strict.pm:33 sub -> unimport
+0 305132 8 strict.pm:12 sub -> bits
+0 305132 11 strict.pm:12 sub <- bits
+0 305132 9 strict.pm:33 sub <- unimport
+0 305132 8 AutoLoader.pm:128 sub <- BEGIN
+0 305132 220 AutoLoader.pm:173 sub -> BEGIN
+0 305132 9 strict.pm:33 sub -> unimport
+0 305132 8 strict.pm:12 sub -> bits
+0 305132 10 strict.pm:12 sub <- bits
+0 305132 9 strict.pm:33 sub <- unimport
+0 305132 8 AutoLoader.pm:173 sub <- BEGIN
+0 305132 103 Config.pm:52 sub -> FETCH
+0 305132 12 Config.pm:52 sub <- FETCH
+0 305132 16 Config.pm:52 sub -> FETCH
+0 305132 9 Config.pm:52 sub <- FETCH
+0 305132 11 Config.pm:52 sub -> FETCH
+0 305132 9 Config.pm:52 sub <- FETCH
+0 305132 11 Config.pm:52 sub -> FETCH
+0 305132 9 Config.pm:52 sub <- FETCH
+0 305132 95 Kstat.pm:35 sub <- BEGIN
+0 305132 29 Kstat.pm:36 sub -> BEGIN
+0 305132 10 vars.pm:11 sub -> import
+0 305132 33 vars.pm:11 sub <- import
+0 305132 8 Kstat.pm:36 sub <- BEGIN
+0 305132 56 DynaLoader.pm:133 sub -> bootstrap
+0 305132 314 DynaLoader.pm:48 sub -> dl_load_flags
+0 305132 11 DynaLoader.pm:48 sub <- dl_load_flags
+0 305132 1113 DynaLoader.pm:133 sub <- bootstrap
+0 305132 41 nicstat:85 sub <- BEGIN
+0 305132 6102 Std.pm:219 sub -> getopts
+0 305132 52 Exporter.pm:30 sub -> import
+0 305132 40 Exporter.pm:30 sub <- import
+0 305132 22 Std.pm:219 sub <- getopts
+0 305132 24 nicstat:264 sub -> find_nets
+0 305132 79662 nicstat:264 sub <- find_nets
+0 305132 420 nicstat:304 sub -> fetch_net_data
+0 305132 43871 nicstat:304 sub <- fetch_net_data
+0 305132 479 nicstat:372 sub -> print_neat
+0 305132 150 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 220 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 126 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 125 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 157 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 171 nicstat:372 sub <- print_neat
+0 305132 343 nicstat:372 sub -> print_neat
+0 305132 128 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 157 nicstat:372 sub <- print_neat
+0 305132 9 nicstat:372 sub -> print_neat
+0 305132 125 nicstat:372 sub <- print_neat
+0 305132 9 nicstat:372 sub -> print_neat
+0 305132 123 nicstat:372 sub <- print_neat
+0 305132 9 nicstat:372 sub -> print_neat
+0 305132 160 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 124 nicstat:372 sub <- print_neat
+0 305132 342 nicstat:372 sub -> print_neat
+0 305132 126 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 123 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 156 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 153 nicstat:372 sub <- print_neat
+0 305132 10 nicstat:372 sub -> print_neat
+0 305132 123 nicstat:372 sub <- print_neat
+0 305132 9 nicstat:372 sub -> print_neat
+0 305132 123 nicstat:372 sub <- print_neat
+0 305132 3736 Config.pm:63 sub -> DESTROY
+0 305132 32 Config.pm:63 sub <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt
new file mode 100644
index 000000000000..24c53838a9e6
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt
@@ -0,0 +1,199 @@
+The following are examples of pl_flowtime.d.
+
+This is a simple script to trace the flow of Perl subroutines (functions).
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+ # pl_flowtime.d
+ C TIME(us) FILE DELTA(us) -- SUB
+ 0 4201460363351 func_abc.pl 2 -> func_a
+ 0 4201461370041 func_abc.pl 1006689 -> func_b
+ 0 4201462380038 func_abc.pl 1009997 -> func_c
+ 0 4201463390094 func_abc.pl 1010055 <- func_c
+ 0 4201463390117 func_abc.pl 23 <- func_b
+ 0 4201463390126 func_abc.pl 8 <- func_a
+ ^C
+
+As each subroutine is entered, the third column is indented by 2 spaces. This
+shows which subroutine is calling who - the output above begins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the second line of data output
+(skipping the header) reads as "the time from func_a() beginning to
+func_b() beginning was 1006689 us, or 1.01 seconds".
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+# pl_flowtime.d
+ C TIME(us) FILE DELTA(us) -- SUB
+ 0 4201691465151 nicstat 2 -> BEGIN
+ 0 4201691465593 strict.pm 441 -> bits
+ 0 4201691465625 strict.pm 32 <- bits
+ 0 4201691465655 strict.pm 29 -> import
+ 0 4201691465676 strict.pm 21 <- import
+ 0 4201691465684 nicstat 7 <- BEGIN
+ 0 4201691465710 nicstat 25 -> BEGIN
+ 0 4201691468038 Exporter.pm 2328 -> import
+ 0 4201691468121 Exporter.pm 82 <- import
+ 0 4201691468133 nicstat 12 <- BEGIN
+ 0 4201691468160 nicstat 26 -> BEGIN
+ 0 4201691468367 Kstat.pm 207 -> BEGIN
+ 0 4201691468378 strict.pm 10 -> import
+ 0 4201691468388 strict.pm 10 <- import
+ 0 4201691468396 Kstat.pm 8 <- BEGIN
+ 0 4201691468419 Kstat.pm 23 -> BEGIN
+ 0 4201691468612 DynaLoader.pm 192 -> BEGIN
+ 0 4201691468685 vars.pm 73 -> BEGIN
+ 0 4201691468694 vars.pm 8 <- BEGIN
+ 0 4201691468727 vars.pm 33 -> BEGIN
+ 0 4201691469199 warnings.pm 471 -> BEGIN
+ 0 4201691469863 warnings.pm 663 <- BEGIN
+ 0 4201691471965 register.pm 2102 -> import
+ 0 4201691471986 register.pm 21 -> mkMask
+ 0 4201691472000 register.pm 13 <- mkMask
+ 0 4201691472052 register.pm 52 -> mkMask
+ 0 4201691472063 register.pm 10 <- mkMask
+ 0 4201691472074 register.pm 10 <- import
+ 0 4201691472081 vars.pm 7 <- BEGIN
+ 0 4201691472109 vars.pm 28 -> BEGIN
+ 0 4201691472118 strict.pm 8 -> import
+ 0 4201691472126 strict.pm 8 -> bits
+ 0 4201691472139 strict.pm 12 <- bits
+ 0 4201691472148 strict.pm 9 <- import
+ 0 4201691472155 vars.pm 7 <- BEGIN
+ 0 4201691472450 vars.pm 294 -> import
+ 0 4201691472501 vars.pm 51 <- import
+ 0 4201691472509 DynaLoader.pm 7 <- BEGIN
+ 0 4201691472557 DynaLoader.pm 48 -> BEGIN
+ 0 4201691472650 Config.pm 92 -> BEGIN
+ 0 4201691472658 strict.pm 8 -> import
+ 0 4201691472667 strict.pm 8 <- import
+ 0 4201691472675 Config.pm 7 <- BEGIN
+ 0 4201691472809 Config.pm 133 -> BEGIN
+ 0 4201691472817 strict.pm 8 -> unimport
+ 0 4201691472825 strict.pm 8 -> bits
+ 0 4201691472852 strict.pm 26 <- bits
+ 0 4201691472868 strict.pm 16 <- unimport
+ 0 4201691472876 Config.pm 7 <- BEGIN
+ 0 4201691473222 Config.pm 345 -> TIEHASH
+ 0 4201691473231 Config.pm 9 <- TIEHASH
+ 0 4201691473275 Config.pm 43 -> import
+ 0 4201691473292 Config.pm 17 <- import
+ 0 4201691473301 DynaLoader.pm 8 <- BEGIN
+ 0 4201691474650 AutoLoader.pm 1349 -> BEGIN
+ 0 4201691474661 strict.pm 10 -> import
+ 0 4201691474670 strict.pm 9 <- import
+ 0 4201691474679 AutoLoader.pm 8 <- BEGIN
+ 0 4201691474701 AutoLoader.pm 21 -> BEGIN
+ 0 4201691474709 AutoLoader.pm 8 <- BEGIN
+ 0 4201691474797 AutoLoader.pm 88 -> BEGIN
+ 0 4201691474810 AutoLoader.pm 12 <- BEGIN
+ 0 4201691475186 AutoLoader.pm 376 -> BEGIN
+ 0 4201691475195 strict.pm 9 -> unimport
+ 0 4201691475203 strict.pm 7 -> bits
+ 0 4201691475214 strict.pm 10 <- bits
+ 0 4201691475223 strict.pm 8 <- unimport
+ 0 4201691475230 AutoLoader.pm 7 <- BEGIN
+ 0 4201691475435 AutoLoader.pm 204 -> BEGIN
+ 0 4201691475444 strict.pm 8 -> unimport
+ 0 4201691475451 strict.pm 7 -> bits
+ 0 4201691475462 strict.pm 10 <- bits
+ 0 4201691475470 strict.pm 8 <- unimport
+ 0 4201691475478 AutoLoader.pm 7 <- BEGIN
+ 0 4201691475697 AutoLoader.pm 219 -> BEGIN
+ 0 4201691475706 strict.pm 8 -> unimport
+ 0 4201691475714 strict.pm 7 -> bits
+ 0 4201691475724 strict.pm 10 <- bits
+ 0 4201691475732 strict.pm 8 <- unimport
+ 0 4201691475739 AutoLoader.pm 7 <- BEGIN
+ 0 4201691475842 Config.pm 102 -> FETCH
+ 0 4201691475854 Config.pm 11 <- FETCH
+ 0 4201691475870 Config.pm 15 -> FETCH
+ 0 4201691475879 Config.pm 9 <- FETCH
+ 0 4201691475890 Config.pm 10 -> FETCH
+ 0 4201691475898 Config.pm 8 <- FETCH
+ 0 4201691475909 Config.pm 10 -> FETCH
+ 0 4201691475917 Config.pm 8 <- FETCH
+ 0 4201691476012 Kstat.pm 94 <- BEGIN
+ 0 4201691476041 Kstat.pm 29 -> BEGIN
+ 0 4201691476051 vars.pm 9 -> import
+ 0 4201691476084 vars.pm 32 <- import
+ 0 4201691476091 Kstat.pm 7 <- BEGIN
+ 0 4201691476147 DynaLoader.pm 56 -> bootstrap
+ 0 4201691476373 DynaLoader.pm 225 -> dl_load_flags
+ 0 4201691476383 DynaLoader.pm 9 <- dl_load_flags
+ 0 4201691476813 DynaLoader.pm 430 <- bootstrap
+ 0 4201691476837 nicstat 23 <- BEGIN
+ 0 4201691483648 Std.pm 6811 -> getopts
+ 0 4201691483697 Exporter.pm 49 -> import
+ 0 4201691483737 Exporter.pm 39 <- import
+ 0 4201691483756 Std.pm 19 <- getopts
+ 0 4201691483780 nicstat 24 -> find_nets
+ 0 4201691539198 nicstat 55418 <- find_nets
+ 0 4201691539610 nicstat 411 -> fetch_net_data
+ 0 4201691583290 nicstat 43679 <- fetch_net_data
+ 0 4201691583781 nicstat 491 -> print_neat
+ 0 4201691583930 nicstat 149 <- print_neat
+ 0 4201691583996 nicstat 65 -> print_neat
+ 0 4201691584165 nicstat 169 <- print_neat
+ 0 4201691584174 nicstat 9 -> print_neat
+ 0 4201691584298 nicstat 124 <- print_neat
+ 0 4201691584308 nicstat 9 -> print_neat
+ 0 4201691584432 nicstat 124 <- print_neat
+ 0 4201691584473 nicstat 41 -> print_neat
+ 0 4201691584597 nicstat 123 <- print_neat
+ 0 4201691584607 nicstat 9 -> print_neat
+ 0 4201691584730 nicstat 123 <- print_neat
+ 0 4201691585091 nicstat 361 -> print_neat
+ 0 4201691585217 nicstat 125 <- print_neat
+ 0 4201691585226 nicstat 9 -> print_neat
+ 0 4201691585379 nicstat 152 <- print_neat
+ 0 4201691585389 nicstat 9 -> print_neat
+ 0 4201691585512 nicstat 123 <- print_neat
+ 0 4201691585521 nicstat 9 -> print_neat
+ 0 4201691585644 nicstat 123 <- print_neat
+ 0 4201691585653 nicstat 9 -> print_neat
+ 0 4201691585825 nicstat 171 <- print_neat
+ 0 4201691585834 nicstat 9 -> print_neat
+ 0 4201691585988 nicstat 154 <- print_neat
+ 0 4201691586274 nicstat 285 -> print_neat
+ 0 4201691586434 nicstat 160 <- print_neat
+ 0 4201691586443 nicstat 9 -> print_neat
+ 0 4201691586567 nicstat 123 <- print_neat
+ 0 4201691586576 nicstat 9 -> print_neat
+ 0 4201691586731 nicstat 154 <- print_neat
+ 0 4201691586740 nicstat 8 -> print_neat
+ 0 4201691586892 nicstat 151 <- print_neat
+ 0 4201691586901 nicstat 9 -> print_neat
+ 0 4201691587025 nicstat 123 <- print_neat
+ 0 4201691587034 nicstat 9 -> print_neat
+ 0 4201691587157 nicstat 123 <- print_neat
+ 0 4201691590909 Config.pm 3751 -> DESTROY
+ 0 4201691590938 Config.pm 29 <- DESTROY
+
+After initialising Perl libraries and modules, the "nicstat" program ran,
+the output matching what was expected from the source.
+
+The DELTA column shows that most time is spent in the find_nets() and
+fetch_nets_data() subroutines, with 55.4 ms and 44.7 ms of elapsed
+function time respectively. Those particular times were easy to interpret,
+since there were no child subroutines called, and the delta spanned
+the subroutine entry to its return.
+
+Some times get trickier to comprehend. The 2nd last line with a DELTA time
+of 3751 us, means "the time from the print_neat() subroutine completing
+to the DESTROY() subroutine starting, took 3751 us.". What is happening
+during this time? It is hard to say based on this output - since it isn't
+time within a function, rather it is time that Perl spent processing the
+main program. Since we have the last function called, we may guess where
+the program was at; or we could enhance this script to trace Perl engine
+internals as well (and/or syscalls).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt
new file mode 100644
index 000000000000..a22a0082309d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt
@@ -0,0 +1,79 @@
+The following are examples of pl_malloc.d.
+
+This is an expiremental script that attepmts to identify who is calling
+malloc() from Perl, and to print byte distribution plots.
+
+Here it traces the example program, Code/Perl/func_malloc.pl.
+
+# pl_malloc.d -c ./func_malloc.pl
+Function A
+Function B
+Function C
+Tracing... Hit Ctrl-C to end.
+
+Perl malloc byte distributions by engine caller,
+
+ perl`perl_alloc, total bytes = 1
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ libc.so.1`_findbuf, total bytes = 520
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ perl`Perl_safesysmalloc, total bytes = 72106
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@ 26
+ 4 |@@@@@ 72
+ 8 |@@@@@@ 101
+ 16 |@@@@@@@@@@@@@@ 216
+ 32 |@@@@@@@@@@@ 178
+ 64 |@ 21
+ 128 | 6
+ 256 | 2
+ 512 | 4
+ 1024 | 1
+ 2048 |@ 11
+ 4096 | 1
+ 8192 | 0
+
+
+Perl malloc byte distributions by Perl file and subroutine,
+
+ func_malloc.pl, func_a, bytes total = 42504
+ value ------------- Distribution ------------- count
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ func_malloc.pl, func_b, bytes total = 100008
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 0
+ 32768 | 0
+ 65536 |@@@@@@@@@@@@@@@@@@@@ 1
+ 131072 | 0
+
+The func_malloc.pl program allocated around 100 Kbytes by creating a
+variable ($b) and populating it with 100,000 "b" characters. This has been
+identified in the last distribution plot printed, with one malloc event
+of between 64 Kbytes and 128 Kbytes in size. There was also a malloc event
+of between 4 and 7 bytes in size.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt
new file mode 100644
index 000000000000..1ea0369f4ed2
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt
@@ -0,0 +1,53 @@
+The following are examples of pl_subcalls.d.
+
+This is a simple script to count executed Perl subroutines. Here it traces
+an example program, Code/Perl/func_abc.pl.
+
+ # pl_subcalls.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ FILE SUB CALLS
+ func_abc.pl func_a 1
+ func_abc.pl func_b 1
+ func_abc.pl func_c 1
+
+While tracing, func_a() from the program "func_abc.pl" was executed once,
+along with func_b() and func_c().
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+ # pl_subcalls.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ FILE SUB CALLS
+ Config.pm DESTROY 1
+ Config.pm TIEHASH 1
+ Config.pm import 1
+ DynaLoader.pm bootstrap 1
+ DynaLoader.pm dl_load_flags 1
+ Std.pm getopts 1
+ nicstat fetch_net_data 1
+ nicstat find_nets 1
+ register.pm import 1
+ warnings.pm BEGIN 1
+ Config.pm BEGIN 2
+ DynaLoader.pm BEGIN 2
+ Exporter.pm import 2
+ register.pm mkMask 2
+ vars.pm import 2
+ Kstat.pm BEGIN 3
+ nicstat BEGIN 3
+ vars.pm BEGIN 3
+ Config.pm FETCH 4
+ strict.pm unimport 4
+ strict.pm import 5
+ AutoLoader.pm BEGIN 6
+ strict.pm bits 6
+ nicstat print_neat 18
+
+The number of subroutines called by nicstat can be seen above, which includes
+subroutines from libraries and modules that the program used.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt
new file mode 100644
index 000000000000..8cd509401708
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt
@@ -0,0 +1,50 @@
+The following are examples of pl_syscalls.d.
+
+This is a simple script to count executed Perl subroutines and system calls.
+Here it traces an example program, Code/Perl/func_abc.pl.
+
+ # pl_syscalls.d -c ./func_abc.pl
+ Function A
+ Tracing... Hit Ctrl-C to end.
+ Function B
+ Function C
+
+ Calls for PID 305173,
+
+ FILE TYPE NAME COUNT
+ func_abc.pl sub func_a 1
+ func_abc.pl sub func_b 1
+ func_abc.pl sub func_c 1
+ func_abc.pl syscall fcntl 1
+ func_abc.pl syscall getrlimit 1
+ func_abc.pl syscall mmap 1
+ func_abc.pl syscall munmap 1
+ func_abc.pl syscall rexit 1
+ func_abc.pl syscall schedctl 1
+ func_abc.pl syscall sigpending 1
+ func_abc.pl syscall sysi86 1
+ func_abc.pl syscall getgid 2
+ func_abc.pl syscall getpid 2
+ func_abc.pl syscall getuid 2
+ func_abc.pl syscall sigaction 2
+ func_abc.pl syscall sysconfig 2
+ func_abc.pl syscall fstat64 3
+ func_abc.pl syscall nanosleep 3
+ func_abc.pl syscall read 3
+ func_abc.pl syscall setcontext 3
+ func_abc.pl syscall write 3
+ func_abc.pl syscall close 4
+ func_abc.pl syscall ioctl 4
+ func_abc.pl syscall open64 4
+ func_abc.pl syscall llseek 5
+ func_abc.pl syscall gtime 7
+ func_abc.pl syscall brk 20
+
+While tracing, three subroutines were called - func_a(), func_b() and func_c().
+There were numerous system calls made, including 20 brk()'s, 7 gtime()'s
+and 5 llseek()'s.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application subroutine calls and
+system calls in the same output.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt
new file mode 100644
index 000000000000..3a5f249c9175
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt
@@ -0,0 +1,183 @@
+The following are examples of pl_syscolors.d.
+
+This is a simple script to trace the flow of Perl subroutines and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Perl/func_abc.pl.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# pl_syscolors.d
+C PID DELTA(us) FILE:LINE TYPE -- NAME
+0 305181 2 ":- syscall -> munmap
+0 305181 33 ":- syscall <- munmap
+0 305181 59 ":- syscall -> mmap
+0 305181 18 ":- syscall <- mmap
+0 305181 35 ":- syscall -> setcontext
+0 305181 8 ":- syscall <- setcontext
+0 305181 8 ":- syscall -> getrlimit
+0 305181 9 ":- syscall <- getrlimit
+0 305181 8 ":- syscall -> getpid
+0 305181 7 ":- syscall <- getpid
+0 305181 64 ":- syscall -> setcontext
+0 305181 6 ":- syscall <- setcontext
+0 305181 137 ":- syscall -> sigpending
+0 305181 8 ":- syscall <- sigpending
+0 305181 1148 ":- syscall -> sysi86
+0 305181 11 ":- syscall <- sysi86
+0 305181 105 ":- syscall -> open64
+0 305181 96 ":- syscall <- open64
+0 305181 13 ":- syscall -> ioctl
+0 305181 18 ":- syscall <- ioctl
+0 305181 14 ":- syscall -> close
+0 305181 14 ":- syscall <- close
+0 305181 123 ":- syscall -> sigaction
+0 305181 9 ":- syscall <- sigaction
+0 305181 49 ":- syscall -> brk
+0 305181 9 ":- syscall <- brk
+0 305181 8 ":- syscall -> brk
+0 305181 16 ":- syscall <- brk
+0 305181 63 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 8 ":- syscall <- brk
+0 305181 43 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 8 ":- syscall <- brk
+0 305181 141 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 8 ":- syscall -> brk
+0 305181 9 ":- syscall <- brk
+0 305181 24 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 8 ":- syscall <- brk
+0 305181 30 ":- syscall -> getuid
+0 305181 7 ":- syscall <- getuid
+0 305181 10 ":- syscall -> getuid
+0 305181 6 ":- syscall <- getuid
+0 305181 10 ":- syscall -> getgid
+0 305181 7 ":- syscall <- getgid
+0 305181 9 ":- syscall -> getgid
+0 305181 6 ":- syscall <- getgid
+0 305181 117 ":- syscall -> sysconfig
+0 305181 9 ":- syscall <- sysconfig
+0 305181 19 ":- syscall -> open64
+0 305181 59 ":- syscall <- open64
+0 305181 15 ":- syscall -> read
+0 305181 11 ":- syscall <- read
+0 305181 8 ":- syscall -> close
+0 305181 8 ":- syscall <- close
+0 305181 34 ":- syscall -> gtime
+0 305181 7 ":- syscall <- gtime
+0 305181 34 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 9 ":- syscall <- brk
+0 305181 44 ":- syscall -> sysconfig
+0 305181 7 ":- syscall <- sysconfig
+0 305181 9 ":- syscall -> brk
+0 305181 6 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 8 ":- syscall <- brk
+0 305181 145 ":- syscall -> open64
+0 305181 16 ":- syscall <- open64
+0 305181 16 ":- syscall -> fcntl
+0 305181 7 ":- syscall <- fcntl
+0 305181 10 ":- syscall -> sigaction
+0 305181 7 ":- syscall <- sigaction
+0 305181 8 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 9 ":- syscall <- brk
+0 305181 104 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 8 ":- syscall <- brk
+0 305181 88 ":- syscall -> getpid
+0 305181 7 ":- syscall <- getpid
+0 305181 8 ":- syscall -> brk
+0 305181 6 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 8 ":- syscall <- brk
+0 305181 105 ":- syscall -> fstat64
+0 305181 10 ":- syscall <- fstat64
+0 305181 16 ":- syscall -> fstat64
+0 305181 7 ":- syscall <- fstat64
+0 305181 25 ":- syscall -> ioctl
+0 305181 8 ":- syscall <- ioctl
+0 305181 7 ":- syscall -> read
+0 305181 23 ":- syscall <- read
+0 305181 18 ":- syscall -> llseek
+0 305181 8 ":- syscall <- llseek
+0 305181 126 ":- syscall -> llseek
+0 305181 7 ":- syscall <- llseek
+0 305181 34 ":- syscall -> llseek
+0 305181 7 ":- syscall <- llseek
+0 305181 30 ":- syscall -> llseek
+0 305181 7 ":- syscall <- llseek
+0 305181 12 ":- syscall -> read
+0 305181 8 ":- syscall <- read
+0 305181 11 ":- syscall -> llseek
+0 305181 6 ":- syscall <- llseek
+0 305181 7 ":- syscall -> close
+0 305181 8 ":- syscall <- close
+0 305181 27 func_a:15 sub -> ./func_abc.pl
+0 305181 36 ":- syscall -> ioctl
+0 305181 7 ":- syscall <- ioctl
+0 305181 8 ":- syscall -> fstat64
+0 305181 8 ":- syscall <- fstat64
+0 305181 8 ":- syscall -> brk
+0 305181 7 ":- syscall <- brk
+0 305181 7 ":- syscall -> brk
+0 305181 9 ":- syscall <- brk
+0 305181 23 ":- syscall -> fstat64
+0 305181 7 ":- syscall <- fstat64
+0 305181 13 ":- syscall -> gtime
+0 305181 7 ":- syscall <- gtime
+0 305181 11 ":- syscall -> nanosleep
+0 305181 1007250 ":- syscall <- nanosleep
+0 305181 24 ":- syscall -> gtime
+0 305181 15 ":- syscall <- gtime
+0 305181 21 func_b:9 sub -> ./func_abc.pl
+0 305181 27 ":- syscall -> gtime
+0 305181 6 ":- syscall <- gtime
+0 305181 8 ":- syscall -> nanosleep
+0 305181 1009847 ":- syscall <- nanosleep
+0 305181 24 ":- syscall -> gtime
+0 305181 15 ":- syscall <- gtime
+0 305181 21 func_c:4 sub -> ./func_abc.pl
+0 305181 27 ":- syscall -> gtime
+0 305181 6 ":- syscall <- gtime
+0 305181 8 ":- syscall -> nanosleep
+Function A
+Function B
+Function C
+0 305181 1009916 ":- syscall <- nanosleep
+0 305181 24 ":- syscall -> gtime
+0 305181 15 ":- syscall <- gtime
+0 305181 20 func_c:4 sub <- ./func_abc.pl
+0 305181 29 func_b:9 sub <- ./func_abc.pl
+0 305181 12 func_a:15 sub <- ./func_abc.pl
+0 305181 51 ":- syscall -> schedctl
+0 305181 53 ":- syscall <- schedctl
+0 305181 16 ":- syscall -> setcontext
+0 305181 8 ":- syscall <- setcontext
+0 305181 21 ":- syscall -> write
+0 305181 97 ":- syscall <- write
+0 305181 28 ":- syscall -> open64
+0 305181 101 ":- syscall <- open64
+0 305181 9 ":- syscall -> ioctl
+0 305181 10 ":- syscall <- ioctl
+0 305181 10 ":- syscall -> close
+0 305181 15 ":- syscall <- close
+0 305181 35 ":- syscall -> rexit
+
+If the colors don't suit you (or you'd rather HTML colored output), it
+should be trivial to modify the script to do so.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt
new file mode 100644
index 000000000000..4ef361d69d01
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt
@@ -0,0 +1,41 @@
+The following are examples of pl_who.d.
+
+This is a simple script to see who is executing Perl subroutines. Here it
+traces as a few examples programs are executed (from Code/Perl/*.pl).
+
+ # pl_who.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID UID SUBS FILE
+ 30817 100 3 ./func_abc.pl
+ 30818 100 3 ./func_slow.pl
+ 30819 100 3 ./func_slow.pl
+
+While tracing, the user with UID 100 executed three Perl programs;
+"func_abc.pl" once getting PID 130817, and "func_slow.pl" twice. All
+programs called three subroutines.
+
+
+
+The following traces a Perl network interface statistics tool, "nicstat"
+version 0.99,
+
+ # pl_who.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID UID SUBS FILE
+ 14977 100 1 lib/Getopt/Std.pm
+ 14977 100 1 lib/warnings.pm
+ 14977 100 2 lib/Exporter.pm
+ 14977 100 3 /usr/perl5/5.8.4/lib/Sun/Solaris/Kstat.pm
+ 14977 100 3 lib/warnings/register.pm
+ 14977 100 4 lib/DynaLoader.pm
+ 14977 100 5 lib/vars.pm
+ 14977 100 6 lib/AutoLoader.pm
+ 14977 100 9 lib/Config.pm
+ 14977 100 15 lib/strict.pm
+ 14977 100 23 /tmp/nicstat
+
+This shows the location of libraries and modules from where subroutines were
+called.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt b/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt
new file mode 100644
index 000000000000..bf63e098e62e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt
@@ -0,0 +1,82 @@
+The following is a demonstration of the priclass.d script.
+
+
+The script was run for several seconds then Ctrl-C was hit. During
+this time, other processes in different scheduling classes were
+running.
+
+ # ./priclass.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+
+ IA
+ value ------------- Distribution ------------- count
+ 40 | 0
+ 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 30
+ 60 | 0
+
+ SYS
+ value ------------- Distribution ------------- count
+ < 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4959
+ 0 | 0
+ 10 | 0
+ 20 | 0
+ 30 | 0
+ 40 | 0
+ 50 | 0
+ 60 | 30
+ 70 | 0
+ 80 | 0
+ 90 | 0
+ 100 | 0
+ 110 | 0
+ 120 | 0
+ 130 | 0
+ 140 | 0
+ 150 | 0
+ 160 | 50
+ >= 170 | 0
+
+ RT
+ value ------------- Distribution ------------- count
+ 90 | 0
+ 100 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 110
+ 110 | 0
+
+ TS
+ value ------------- Distribution ------------- count
+ < 0 | 0
+ 0 |@@@@@@@@@@@@@@@ 2880
+ 10 |@@@@@@@ 1280
+ 20 |@@@@@ 990
+ 30 |@@@@@ 920
+ 40 |@@@@ 670
+ 50 |@@@@ 730
+ 60 | 0
+
+The output is quite interesting, and illustrates neatly the behaviour
+of different scheduling classes.
+
+The IA interactive class had 30 samples of a 50 to 59 priority, a fairly
+high priority. This class is used for interactive processes, such as
+the windowing system. I had clicked on a few windows to create this
+activity.
+
+The SYS system class has had 4959 samples at a < 0 priority - the lowest,
+which was for the idle thread. There are a few samples at higher
+priorities, including some in the 160 to 169 range (the highest), which
+are for interrupt threads. The system class is used by the kernel.
+
+The RT real time class had 110 samples in the 100 to 109 priority range.
+This class is designed for real-time applications, those that must have
+a consistant response time regardless of other process activity. For that
+reason, the RT class trumps both TS and IA. I created these events by
+running "prstat -R" as root, which runs prstat in the real time class.
+
+The TS time sharing class is the default scheduling class for the processes
+on a Solaris system. I ran an infinite shell loop to create heavy activity,
+"while :; do :; done", which shows a profile that leans towards lower
+priorities. This is deliberate behaivour from the time sharing class, which
+reduces the priority of CPU bound processes so that they interefere less
+with I/O bound processes. The result is more samples in the lower priority
+ranges.
diff --git a/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt b/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt
new file mode 100644
index 000000000000..1f930ab03ce5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt
@@ -0,0 +1,238 @@
+The following are demonstrations of the pridist.d script.
+
+
+Here we run pridist.d for a few seconds then hit Ctrl-C,
+
+ # pridist.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ CMD: setiathome PID: 2190
+
+ value ------------- Distribution ------------- count
+ -5 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6629
+ 5 | 0
+
+ CMD: sshd PID: 9172
+
+ value ------------- Distribution ------------- count
+ 50 | 0
+ 55 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 60 | 0
+
+ CMD: mozilla-bin PID: 3164
+
+ value ------------- Distribution ------------- count
+ 40 | 0
+ 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+ 50 | 0
+
+ CMD: perl PID: 11544
+
+ value ------------- Distribution ------------- count
+ 10 | 0
+ 15 |@@@@@@@@ 60
+ 20 | 0
+ 25 |@@@@@@@@@@@@@@@ 120
+ 30 | 0
+ 35 |@@@@@@@@@@ 80
+ 40 | 0
+ 45 |@@@@@ 40
+ 50 | 0
+ 55 |@@@ 20
+ 60 | 0
+
+During this sample there was a CPU bound process called "setiathome"
+running, and a new CPU bound "perl" process was executed.
+
+perl, executing an infinite loop, begins with a high priority of 55 to 59
+where it is sampled 20 times. pridist.d samples 1000 times per second,
+so this equates to 20 ms. The perl process has also been sampled for 40 ms
+at priority 45 to 49, for 80 ms at priority 35 to 39, down to 60 ms at a
+priority 15 to 19 - at which point I had hit Ctrl-C to end sampling.
+
+The output is spectacular as it matches the behaviour of the dispatcher
+table for the time sharing class perfectly!
+
+setiathome is running with the lowest priority, in the 0 to 4 range.
+
+... ok, so when I say 20 samples equates 20 ms, we know that's only an
+estimate. It really means that for 20 samples that process was the one on
+the CPU. In between the samples anything may have occured (I/O bound
+processes will context switch off the CPU). DTrace can certainly be used
+to measure this based on schedular events not samples (eg, cpudist),
+however DTrace can then sometimes consume a noticable portion of the CPUs
+(for example, 2%).
+
+
+
+
+The following is a longer sample. Again, I start a new CPU bound perl
+process,
+
+ # pridist.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ CMD: setiathome PID: 2190
+
+ value ------------- Distribution ------------- count
+ -5 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1820
+ 5 | 0
+
+ CMD: mozilla-bin PID: 3164
+
+ value ------------- Distribution ------------- count
+ 40 | 0
+ 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 50 | 0
+
+ CMD: bash PID: 9185
+
+ value ------------- Distribution ------------- count
+ 50 | 0
+ 55 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 60 | 0
+
+ CMD: perl PID: 11547
+
+ value ------------- Distribution ------------- count
+ -5 | 0
+ 0 |@@@@@@@@@@@@@@@ 2020
+ 5 |@@ 200
+ 10 |@@@@@@@ 960
+ 15 |@ 160
+ 20 |@@@@@ 720
+ 25 |@ 120
+ 30 |@@@@ 480
+ 35 |@ 80
+ 40 |@@ 240
+ 45 | 40
+ 50 |@@ 240
+ 55 | 10
+ 60 | 0
+
+Now other behaviour can be observed as the perl process runs. The effect
+here is due to ts_maxwait triggering a priority boot to avoid CPU starvation;
+the priority is boosted to the 50 to 54 range, then decreases by 10 until
+it reaches 0 and another ts_maxwait is triggered. The process spends
+more time at lower priorities, as that is exactly how the TS dispatch table
+has been configured.
+
+
+
+
+Now we run prdist.d for a considerable time,
+
+ # pridist.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ CMD: setiathome PID: 2190
+
+ value ------------- Distribution ------------- count
+ -5 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3060
+ 5 | 0
+
+ CMD: mozilla-bin PID: 3164
+
+ value ------------- Distribution ------------- count
+ 40 | 0
+ 45 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+ 50 | 0
+
+ CMD: perl PID: 11549
+
+ value ------------- Distribution ------------- count
+ -5 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@ 7680
+ 5 | 0
+ 10 |@@@@@@@ 3040
+ 15 | 70
+ 20 |@@@@@@ 2280
+ 25 | 120
+ 30 |@@@@ 1580
+ 35 | 80
+ 40 |@@ 800
+ 45 | 40
+ 50 |@@ 800
+ 55 | 20
+ 60 | 0
+
+The process has settled to a pattern of 0 priority, ts_maxwait boot to 50,
+drop back to 0.
+
+Run "dispadmin -c TS -g" for a printout of the time sharing dispatcher table.
+
+
+
+
+
+The following shows running pridist.d on a completely idle system,
+
+ # pridist.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ CMD: sched PID: 0
+
+ value ------------- Distribution ------------- count
+ -10 | 0
+ -5 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1190
+ 0 | 0
+
+Only the kernel "sched" was sampled. It would have been running the idle
+thread.
+
+
+
+
+The following is an unusual output that is worth mentioning,
+
+ # pridist.d
+ Sampling... Hit Ctrl-C to end.
+ ^C
+ CMD: sched PID: 0
+
+ value ------------- Distribution ------------- count
+ -10 | 0
+ -5 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 940
+ 0 | 0
+ 5 | 0
+ 10 | 0
+ 15 | 0
+ 20 | 0
+ 25 | 0
+ 30 | 0
+ 35 | 0
+ 40 | 0
+ 45 | 0
+ 50 | 0
+ 55 | 0
+ 60 | 0
+ 65 | 0
+ 70 | 0
+ 75 | 0
+ 80 | 0
+ 85 | 0
+ 90 | 0
+ 95 | 0
+ 100 | 0
+ 105 | 0
+ 110 | 0
+ 115 | 0
+ 120 | 0
+ 125 | 0
+ 130 | 0
+ 135 | 0
+ 140 | 0
+ 145 | 0
+ 150 | 0
+ 155 | 0
+ 160 | 0
+ 165 | 10
+ >= 170 | 0
+
+Here we have sampled the kernel running at a priority of 165 to 169. This
+is the interrupt priority range, and would be an interrupt servicing thread.
+Eg, a network interrupt.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt b/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt
new file mode 100644
index 000000000000..89f98bbca7dc
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt
@@ -0,0 +1,149 @@
+This is a demonstration of the procsystime tool, which can give details
+on how processes make use of system calls.
+
+Here we run procsystime on processes which have the name "bash",
+
+ # procsystime -n bash
+ Tracing... Hit Ctrl-C to end...
+ ^C
+
+ Elapsed Times for process bash,
+
+ SYSCALL TIME (ns)
+ setpgrp 27768
+ gtime 28692
+ lwp_sigmask 148074
+ write 235814
+ sigaction 553556
+ ioctl 776691
+ read 857401243
+
+By default procsystime prints elapsed times, the time from when the syscall
+was issued to it's completion. In the above output, we can see the read()
+syscall took the most time for this process - 8.57 seconds for all the
+reads combined. This is because the read syscall is waiting for keystrokes.
+
+
+
+Here we try the "-o" option to print CPU overhead times on "bash",
+
+ # procsystime -o -n bash
+ Tracing... Hit Ctrl-C to end...
+ ^C
+
+ CPU Times for process bash,
+
+ SYSCALL TIME (ns)
+ setpgrp 6994
+ gtime 8054
+ lwp_sigmask 33865
+ read 154895
+ sigaction 259899
+ write 343825
+ ioctl 932280
+
+This identifies which syscall type from bash is consuming the most CPU time.
+This is ioctl, at 932 microseconds. Compare this output to the default in
+the first example - both are useful for different reasons, this CPU overhead
+output helps us see why processes are consuming a lot of sys time.
+
+
+
+This demonstrates using the "-a" for all details, this time with "ssh",
+
+ # procsystime -a -n ssh
+ Tracing... Hit Ctrl-C to end...
+ ^C
+
+ Elapsed Times for processes ssh,
+
+ SYSCALL TIME (ns)
+ read 115833
+ write 302419
+ pollsys 114616076
+ TOTAL: 115034328
+
+ CPU Times for processes ssh,
+
+ SYSCALL TIME (ns)
+ read 82381
+ pollsys 201818
+ write 280390
+ TOTAL: 564589
+
+ Syscall Counts for processes ssh,
+
+ SYSCALL COUNT
+ read 4
+ write 4
+ pollsys 8
+ TOTAL: 16
+
+Now we can see elapsed times, overhead times, and syscall counts in one
+report. Very handy. We can also see totals printed as "TOTAL:".
+
+
+
+procsystime also lets us just examine one PID. For example,
+
+ # procsystime -p 1304
+ Tracing... Hit Ctrl-C to end...
+ ^C
+
+ Elapsed Times for PID 1304,
+
+ SYSCALL TIME (ns)
+ fcntl 7323
+ fstat64 21349
+ ioctl 190683
+ read 238197
+ write 1276169
+ pollsys 1005360640
+
+
+
+Here is a longer example of running procsystime on mozilla,
+
+ # procsystime -a -n mozilla-bin
+ Tracing... Hit Ctrl-C to end...
+ ^C
+
+ Elapsed Times for processes mozilla-bin,
+
+ SYSCALL TIME (ns)
+ readv 677958
+ writev 1159088
+ yield 1298742
+ read 18019194
+ write 35679619
+ ioctl 108845685
+ lwp_park 38090969432
+ pollsys 65955258781
+ TOTAL: 104211908499
+
+ CPU Times for processes mozilla-bin,
+
+ SYSCALL TIME (ns)
+ yield 120345
+ readv 398046
+ writev 1117178
+ lwp_park 8591428
+ read 9752315
+ write 29043460
+ ioctl 37089349
+ pollsys 189933470
+ TOTAL: 276045591
+
+ Syscall Counts for processes mozilla-bin,
+
+ SYSCALL COUNT
+ writev 3
+ yield 9
+ readv 58
+ lwp_park 280
+ write 1317
+ read 1744
+ pollsys 8268
+ ioctl 16434
+ TOTAL: 28113
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt b/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt
new file mode 100644
index 000000000000..fd7fc3db40df
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt
@@ -0,0 +1,520 @@
+The following is an example of the putnexts.d script.
+
+
+When investigating the operation of kernel streams, it can be extreamly
+useful to trace who (which stack trace) is calling putnext to who (the
+kernel modele). This script does that,
+
+# putnexts.d
+dtrace: script './putnexts.d' matched 1 probe
+^C
+
+ bufmod
+ bufmod`sbrput+0xb9
+ unix`putnext+0x1b7
+ pts`ptswput+0x1e1
+ unix`putnext+0x1b7
+ ptem`ptemwput+0x22f
+ 1
+ ip
+ ip`ip_fanout_proto+0x4d2
+ ip`ip_proto_input+0x616
+ ip`ip_fanout_proto_again+0x160
+ ip`ip_proto_input+0x530
+ ip`ip_rput+0x50d
+ 1
+ ip
+ ip`ip_wput_ipsec_out+0x60a
+ ip`ipsec_out_process+0x322
+ ip`ip_wput_ire+0x18d0
+ ip`ip_output+0x70a
+ ip`ip_wput+0x14
+ 1
+ ip
+ ip`ip_wput_ire+0x17d1
+ ip`ip_output+0x70a
+ ip`tcp_send_data+0x68c
+ ip`tcp_ack_timer+0xb0
+ ip`tcp_timer_handler+0x1d
+ 1
+ ip
+ ip`ip_udp_input+0x4e4
+ ip`ip_rput+0x540
+ unix`putnext+0x1b7
+ gld`gld_recv_tagged+0xed
+ gld`gld_recv+0x10
+ 1
+ ldterm
+ genunix`putnextctl1+0x52
+ ldterm`ldterm_dosig+0x7b
+ ldterm`ldtermrput+0x6fe
+ unix`putnext+0x1b7
+ ptem`ptemrput+0xff
+ 1
+ ldterm
+ ldterm`ldterm_ioctl_reply+0x93
+ ldterm`ldtermrput+0x186
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ genunix`putnext_tail+0x88
+ 1
+ ldterm
+ ldterm`ldtermrput+0x12a
+ unix`putnext+0x1b7
+ ptem`ptemrput+0xff
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ 1
+ ldterm
+ ldterm`ldterm_dosig+0x16f
+ ldterm`ldtermrput+0x6fe
+ unix`putnext+0x1b7
+ ptem`ptemrput+0xff
+ unix`putnext+0x1b7
+ 1
+ ldterm
+ genunix`putnextctl1+0x52
+ ldterm`ldterm_dosig+0x124
+ ldterm`ldtermrput+0x6fe
+ unix`putnext+0x1b7
+ ptem`ptemrput+0xff
+ 1
+ ldterm
+ ldterm`ldterm_do_ioctl+0xd8b
+ ldterm`ldtermwmsg+0x41
+ ldterm`ldtermwput+0x8e
+ unix`putnext+0x1b7
+ ttcompat`ttcompat_do_ioctl+0x425
+ 1
+ ldterm
+ genunix`putnextctl1+0x52
+ ldterm`ldterm_dosig+0xe3
+ ldterm`ldtermrput+0x6fe
+ unix`putnext+0x1b7
+ ptem`ptemrput+0xff
+ 1
+ ptem
+ genunix`qreply+0x23
+ ptem`ptemwmsg+0x2b9
+ ptem`ptemwput+0xe1
+ unix`putnext+0x1b7
+ ldterm`ldterm_do_ioctl+0xd8b
+ 1
+ ptem
+ ptem`ptemwput+0x22f
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ genunix`putnext_tail+0x88
+ unix`putnext+0x38e
+ 1
+ ptem
+ ptem`ptemrput+0xff
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ genunix`putnext_tail+0x88
+ unix`putnext+0x38e
+ 1
+ ptem
+ ptem`ptemwmsg+0x44d
+ ptem`ptemwput+0xe1
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ genunix`putnext_tail+0x88
+ 1
+ ptm
+ pts`ptswsrv+0x7c
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ genunix`stream_service+0x69
+ genunix`taskq_d_thread+0x8a
+ 1
+ ptm
+ pts`ptswput+0x1e1
+ unix`putnext+0x1b7
+ ptem`ptemwput+0x22f
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ 1
+ pts
+ genunix`qreply+0x23
+ pts`ptswput+0x201
+ unix`putnext+0x1b7
+ ptem`ptemwput+0x22f
+ genunix`qdrain_syncq+0x68
+ 1
+ strwhead
+ genunix`qreply+0x23
+ genunix`strrput_nondata+0x22d
+ genunix`strrput+0x256
+ unix`putnext+0x1b7
+ ttcompat`ttcompatrput+0x1d
+ 1
+ strwhead
+ genunix`strdoioctl+0x30d
+ genunix`strioctl+0x6ae
+ specfs`spec_ioctl+0x48
+ genunix`fop_ioctl+0x1e
+ genunix`ioctl+0x199
+ 1
+ tcp
+ ip`tcp_rput_data+0x2221
+ ip`tcp_input+0x39
+ ip`squeue_enter+0x1bf
+ ip`ip_tcp_input+0x9f8
+ ip`ip_rput+0x583
+ 1
+ ttcompat
+ ttcompat`ttcompat_ioctl_ack+0x398
+ ttcompat`ttcompatrput+0x39
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ genunix`putnext_tail+0x88
+ 1
+ ttcompat
+ ttcompat`ttcompatrput+0x1d
+ unix`putnext+0x1b7
+ ldterm`ldtermrput+0x12a
+ unix`putnext+0x1b7
+ ptem`ptemrput+0xff
+ 1
+ ttcompat
+ ttcompat`ttcompatrput+0x1d
+ unix`putnext+0x1b7
+ genunix`putnextctl1+0x52
+ ldterm`ldterm_dosig+0x124
+ ldterm`ldtermrput+0x6fe
+ 1
+ ttcompat
+ ttcompat`ttcompatwput+0x32
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ genunix`putnext_tail+0x88
+ unix`putnext+0x38e
+ 1
+ ttcompat
+ ttcompat`ttcompat_do_ioctl+0x425
+ ttcompat`ttcompatwput+0x152
+ unix`putnext+0x1b7
+ genunix`strdoioctl+0x30d
+ genunix`strioctl+0x6ae
+ 1
+ ttcompat
+ ttcompat`ttcompatrput+0x1d
+ unix`putnext+0x1b7
+ genunix`putnextctl1+0x52
+ ldterm`ldterm_dosig+0xe3
+ ldterm`ldtermrput+0x6fe
+ 1
+ tun
+ tun`tun_rdata_v4+0x58c
+ tun`tun_rproc+0x256
+ tun`tun_rput+0x23
+ unix`putnext+0x1b7
+ ip`ip_fanout_proto+0x4d2
+ 1
+ tun
+ tun`tun_wputnext_v4+0x1f8
+ tun`tun_wproc_mdata+0x71
+ tun`tun_wproc+0xdf
+ tun`tun_wput+0x23
+ unix`putnext+0x1b7
+ 1
+ udp
+ udp`udp_rput+0x975
+ unix`putnext+0x1b7
+ ip`ip_udp_input+0x4e4
+ ip`ip_rput+0x540
+ unix`putnext+0x1b7
+ 1
+ conskbd
+ genunix`qreply+0x23
+ conskbd`conskbd_mux_upstream_msg+0x24f
+ conskbd`conskbd_lqs_ack_complete+0x65
+ conskbd`conskbdlrput+0x9d
+ unix`putnext+0x1b7
+ 2
+ conskbd
+ conskbd`conskbdlwserv+0x2d
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ genunix`stream_service+0x69
+ genunix`taskq_d_thread+0x8a
+ 2
+ kb8042
+ genunix`qreply+0x23
+ genunix`miocack+0x2a
+ kb8042`kb8042_ioctlmsg+0x281
+ kb8042`kb8042_wsrv+0xcb
+ genunix`runservice+0x2a
+ 2
+ strwhead
+ genunix`strdoioctl+0x30d
+ genunix`strioctl+0x587
+ specfs`spec_ioctl+0x48
+ genunix`fop_ioctl+0x1e
+ genunix`ioctl+0x199
+ 2
+ consms
+ consms`consmslrput+0x15a
+ unix`putnext+0x1b7
+ vuid3ps2`vuid3ps2_putnext+0x94
+ vuid3ps2`sendButtonEvent+0x58
+ vuid3ps2`vuid3ps2+0x8ee
+ 4
+ vuid3ps2
+ vuid3ps2`vuid3ps2_putnext+0x94
+ vuid3ps2`sendButtonEvent+0x58
+ vuid3ps2`vuid3ps2+0x8ee
+ vuid3ps2`vuidmice_rsrv+0x69
+ genunix`runservice+0x2a
+ 4
+ ip
+ ip`tcp_send_data+0x55d
+ ip`tcp_ack_timer+0xb0
+ ip`tcp_timer_handler+0x1d
+ ip`squeue_drain+0xbb
+ ip`squeue_worker+0xeb
+ 10
+ ip
+ ip`tcp_send_data+0x55d
+ ip`tcp_rput_data+0x259e
+ ip`squeue_enter+0x1bf
+ ip`ip_tcp_input+0xcfb
+ ip`ip_rput+0x583
+ 11
+ ip
+ ip`ip_fanout_udp_conn+0x14b
+ ip`ip_fanout_udp+0x373
+ ip`ip_wput_local+0x16f
+ ip`ip_wput_ire+0x1436
+ ip`ip_output+0x70a
+ 14
+ strwhead
+ genunix`strput+0x168
+ genunix`strputmsg+0x1d5
+ genunix`msgio+0x142
+ genunix`putmsg+0x6e
+ unix`sys_sysenter+0xdc
+ 14
+ timod
+ timod`timodwput+0xea
+ unix`putnext+0x1b7
+ genunix`strput+0x168
+ genunix`strputmsg+0x1d5
+ genunix`msgio+0x142
+ 14
+ timod
+ timod`timodrput+0xa9
+ unix`putnext+0x1b7
+ udp`udp_rput+0x975
+ unix`putnext+0x1b7
+ ip`ip_fanout_udp_conn+0x14b
+ 14
+ udp
+ udp`udp_rput+0x975
+ unix`putnext+0x1b7
+ ip`ip_fanout_udp_conn+0x14b
+ ip`ip_fanout_udp+0x373
+ ip`ip_wput_local+0x16f
+ 14
+ udp
+ udp`udp_wput+0x378
+ unix`putnext+0x1b7
+ timod`timodwput+0xea
+ unix`putnext+0x1b7
+ genunix`strput+0x168
+ 14
+ bufmod
+ bufmod`sbsendit+0x5a
+ bufmod`sbclosechunk+0x2e
+ bufmod`sbrput+0xee
+ genunix`qdrain_syncq+0x68
+ genunix`drain_syncq+0x1a4
+ 21
+ conskbd
+ kbtrans`kbtrans_queueevent+0x5c
+ kbtrans`kbtrans_keyreleased+0x3d
+ kbtrans`kbtrans_untrans_keyreleased_raw+0x10
+ kbtrans`kbtrans_processkey+0x20
+ kbtrans`kbtrans_streams_key+0x95
+ 22
+ kb8042
+ kbtrans`kbtrans_queueevent+0x5c
+ kbtrans`kbtrans_keyreleased+0x3d
+ kbtrans`kbtrans_untrans_keyreleased_raw+0x10
+ kbtrans`kbtrans_processkey+0x20
+ kbtrans`kbtrans_streams_key+0x95
+ 22
+ ldterm
+ ldterm`ldterm_msg_upstream+0x2c
+ ldterm`vmin_satisfied+0x5e
+ ldterm`ldterm_dononcanon+0x230
+ ldterm`ldtermrmsg+0x252
+ ldterm`ldtermrput+0x7e9
+ 22
+ ttcompat
+ ttcompat`ttcompatrput+0x1d
+ unix`putnext+0x1b7
+ ldterm`ldterm_msg_upstream+0x2c
+ ldterm`vmin_satisfied+0x5e
+ ldterm`ldterm_dononcanon+0x230
+ 22
+ bufmod
+ bufmod`sbwput+0x33
+ unix`putnext+0x1b7
+ genunix`strput+0x168
+ genunix`strwrite+0x151
+ specfs`spec_write+0x4e
+ 23
+ ptem
+ ptem`ptemrput+0xff
+ unix`putnext+0x1b7
+ ptm`ptmwsrv+0x90
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ 23
+ pts
+ ptm`ptmwsrv+0x90
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ genunix`stream_runservice+0x96
+ genunix`strput+0x171
+ 23
+ conskbd
+ kbtrans`kbtrans_queueevent+0x5c
+ kbtrans`kbtrans_queuepress+0x5f
+ kbtrans`kbtrans_untrans_keypressed_raw+0x36
+ kbtrans`kbtrans_processkey+0x30
+ kbtrans`kbtrans_streams_key+0x95
+ 24
+ kb8042
+ kbtrans`kbtrans_queueevent+0x5c
+ kbtrans`kbtrans_queuepress+0x5f
+ kbtrans`kbtrans_untrans_keypressed_raw+0x36
+ kbtrans`kbtrans_processkey+0x30
+ kbtrans`kbtrans_streams_key+0x95
+ 24
+ ip
+ ip`tcp_send_data+0x55d
+ ip`tcp_output+0x562
+ ip`squeue_enter+0x1bf
+ ip`tcp_wput+0x234
+ unix`putnext+0x1b7
+ 32
+ ldterm
+ ldterm`ldtermwmsg+0x100
+ ldterm`ldtermwput+0x8e
+ unix`putnext+0x1b7
+ ttcompat`ttcompatwput+0x32
+ unix`putnext+0x1b7
+ 36
+ ptem
+ ptem`ptemwmsg+0x44d
+ ptem`ptemwput+0xe1
+ unix`putnext+0x1b7
+ ldterm`ldtermwmsg+0x100
+ ldterm`ldtermwput+0x8e
+ 36
+ ptm
+ pts`ptswsrv+0x7c
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ genunix`stream_runservice+0x96
+ genunix`strput+0x171
+ 36
+ ttcompat
+ ttcompat`ttcompatwput+0x32
+ unix`putnext+0x1b7
+ genunix`strput+0x168
+ genunix`strwrite+0x151
+ specfs`spec_write+0x4e
+ 36
+ tcp
+ ip`tcp_rput_data+0x2221
+ ip`squeue_enter+0x1bf
+ ip`ip_tcp_input+0xcfb
+ ip`ip_rput+0x583
+ unix`putnext+0x1b7
+ 40
+ rtls
+ gld`gld_recv_tagged+0xed
+ gld`gld_recv+0x10
+ rtls`rtls_receive+0x18f
+ rtls`rtls_gld_intr+0x133
+ gld`gld_intr+0x1e
+ 46
+ consms
+ consms`consmslrput+0x15a
+ unix`putnext+0x1b7
+ vuid3ps2`vuid3ps2_putnext+0x94
+ vuid3ps2`vuid3ps2+0x82b
+ vuid3ps2`vuidmice_rsrv+0x69
+ 59
+ strwhead
+ genunix`strput+0x168
+ genunix`strwrite+0x151
+ specfs`spec_write+0x4e
+ genunix`fop_write+0x1b
+ genunix`write+0x29a
+ 59
+ vuid3ps2
+ vuid3ps2`vuid3ps2_putnext+0x94
+ vuid3ps2`vuid3ps2+0x82b
+ vuid3ps2`vuidmice_rsrv+0x69
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ 59
+ consms
+ consms`consmslrput+0x15a
+ unix`putnext+0x1b7
+ vuid3ps2`vuid3ps2_putnext+0x94
+ vuid3ps2`vuid3ps2+0x809
+ vuid3ps2`vuidmice_rsrv+0x69
+ 77
+ vuid3ps2
+ vuid3ps2`vuid3ps2_putnext+0x94
+ vuid3ps2`vuid3ps2+0x809
+ vuid3ps2`vuidmice_rsrv+0x69
+ genunix`runservice+0x2a
+ genunix`queue_service+0x30
+ 77
+ strwhead
+ genunix`strput+0x168
+ genunix`strwrite+0x151
+ sockfs`socktpi_write+0xcb
+ genunix`fop_write+0x1b
+ genunix`writev+0x308
+ 108
+ rtls
+ gld`gld_passon+0x9e
+ gld`gld_sendup+0xfc
+ gld`gld_recv_tagged+0x15f
+ gld`gld_recv+0x10
+ rtls`rtls_receive+0x18f
+ 124
+ strwhead
+ genunix`strput+0x168
+ genunix`strwrite+0x151
+ sockfs`socktpi_write+0xcb
+ genunix`fop_write+0x1b
+ genunix`write+0x29a
+ 138
+ tl
+ tl`tl_wput_data_ser+0x5e
+ genunix`serializer_exec+0x1d
+ genunix`serializer_enter+0x81
+ tl`tl_serializer_enter+0x40
+ tl`tl_wput+0x1c7
+ 214
+ mouse8042
+ mouse8042`mouse8042_intr+0x68
+ i8042`i8042_intr+0xa6
+ unix`intr_thread+0x107
+ 261
+
+Highlights of the above output include,
+
+- gld calling putnext to rtls (my laptop network device driver)
+- ip receive path calling putnext to tcp
+- tcp_send_data() calling putnext to ip
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt
new file mode 100644
index 000000000000..da44430213a2
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt
@@ -0,0 +1,966 @@
+The following are examples of py_calldist.d.
+
+This script traces the elapsed time of Python functions and prints a report in
+the form of a histogram. Here it traces the example program,
+Code/Python/func_abc.py
+
+The results are displayed in two sections, the first, Exclusive function
+elapsed times, shows us the time spent in each functions, not including time
+spent in subroutines.
+
+The third section, Inclusive function elapsed times, shows us the time spent
+in each function, this time including that time spent in subroutines called
+by those functions.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
+# py_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function elapsed times (us),
+ UserDict.py, func, IterableUserDict
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ __init__.py, func, CodecRegistryError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, Codec
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamConverter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, getregentry
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, _Helper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, aliasmbcs
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, setencoding
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, sethelper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ types.py, func, _C
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ warnings.py, func, _OptionError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ warnings.py, func, _processoptions
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ UserDict.py, func, __init__
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, Codec
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamReaderWriter
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamRecoder
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ os.py, func, _Environ
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, func, _Printer
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, func, setquit
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ copy_reg.py, func, constructor
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ site.py, func, __init__
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ warnings.py, func, simplefilter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ __init__.py, func, normalize_encoding
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ linecache.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, dirname
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, split
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ stat.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ stat.py, func, S_IFMT
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 4 | 0
+
+ UserDict.py, func, UserDict
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ os.py, func, __init__
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, basename
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, normcase
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@ 6
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 4 | 0
+
+ aliases.py, func, ?
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ copy_reg.py, func, pickle
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 16 |@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ <string>, func, ?
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 4 | 0
+ 8 | 0
+ 16 |@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, isabs
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 21
+ 4 |@@ 1
+ 8 | 0
+
+ stat.py, func, S_ISDIR
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 16 |@@@@@@@ 1
+ 32 | 0
+
+ UserDict.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ ascii.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ site.py, func, addsitepackages
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ site.py, func, removeduppaths
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ site.py, func, setcopyright
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ types.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ posixpath.py, func, join
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@ 12
+ 4 |@@@@@@@@@@@@ 6
+ 8 |@@ 1
+ 16 | 0
+ 32 |@@ 1
+ 64 | 0
+
+ UserDict.py, func, DictMixin
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ __init__.py, func, search_function
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ codecs.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ copy_reg.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ os.py, func, _get_exports_list
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ site.py, func, _init_pathinfo
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ site.py, func, abs__file__
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ site.py, func, main
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ warnings.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ posixpath.py, func, normpath
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22
+ 16 | 0
+
+ posixpath.py, func, isdir
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 32 |@@@@@ 1
+ 64 |@@@@@ 1
+ 128 | 0
+
+ site.py, func, addpackage
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@ 1
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 256 | 0
+
+ posixpath.py, func, abspath
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 21
+ 32 |@@ 1
+ 64 | 0
+
+ site.py, func, makepath
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 64 | 0
+
+ posixpath.py, func, ?
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ site.py, func, ?
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ site.py, func, execsitecustomize
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ site.py, func, addsitedir
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ os.py, func, _exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7
+ 32 |@@@@@@@@ 2
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 |@@@@ 1
+ 1024 | 0
+
+ __init__.py, func, ?
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ os.py, func, ?
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ func_abc.py, func, ?
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ func_abc.py, func, func_a
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.py, func, func_b
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.py, func, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+
+Inclusive function elapsed times (us),
+ UserDict.py, func, IterableUserDict
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ __init__.py, func, CodecRegistryError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, Codec
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamConverter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, getregentry
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, _Helper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, aliasmbcs
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, setencoding
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, sethelper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ types.py, func, _C
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ warnings.py, func, _OptionError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ warnings.py, func, _processoptions
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ UserDict.py, func, __init__
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, Codec
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamReaderWriter
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamRecoder
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ os.py, func, _Environ
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, func, _Printer
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, func, setquit
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ copy_reg.py, func, constructor
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ site.py, func, __init__
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ warnings.py, func, simplefilter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ __init__.py, func, normalize_encoding
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ linecache.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, split
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ stat.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ stat.py, func, S_IFMT
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 4 | 0
+
+ UserDict.py, func, UserDict
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ os.py, func, __init__
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, basename
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, dirname
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ posixpath.py, func, normcase
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@ 6
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 4 | 0
+
+ aliases.py, func, ?
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ posixpath.py, func, exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ copy_reg.py, func, pickle
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@ 1
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ posixpath.py, func, isabs
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 21
+ 4 |@@ 1
+ 8 | 0
+
+ ascii.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ site.py, func, setcopyright
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ stat.py, func, S_ISDIR
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 16 |@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ types.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ posixpath.py, func, join
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@ 12
+ 4 |@@@@@@@@@@@@ 6
+ 8 |@@ 1
+ 16 | 0
+ 32 |@@ 1
+ 64 | 0
+
+ UserDict.py, func, DictMixin
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ codecs.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ os.py, func, _get_exports_list
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ posixpath.py, func, normpath
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22
+ 16 | 0
+
+ UserDict.py, func, ?
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ __init__.py, func, search_function
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ copy_reg.py, func, ?
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, func, abs__file__
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, func, removeduppaths
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ warnings.py, func, ?
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ posixpath.py, func, isdir
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@ 1
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 64 |@@@@@@@@@@ 2
+ 128 | 0
+
+ posixpath.py, func, ?
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ site.py, func, _init_pathinfo
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ site.py, func, execsitecustomize
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ posixpath.py, func, abspath
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22
+ 64 | 0
+
+ os.py, func, _exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@ 4
+ 32 |@@@@@@@@@@@@@@@@@@@@ 5
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 |@@@@ 1
+ 1024 | 0
+
+ site.py, func, makepath
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 128 | 0
+
+ __init__.py, func, ?
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ <string>, func, ?
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 10
+ 4 | 0
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 |@@@@ 1
+ 2048 | 0
+
+ site.py, func, addpackage
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@ 1
+ 256 |@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ os.py, func, ?
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ site.py, func, addsitepackages
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ site.py, func, addsitedir
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ site.py, func, main
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ site.py, func, ?
+ value ------------- Distribution ------------- count
+ 4096 | 0
+ 8192 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16384 | 0
+
+ func_abc.py, func, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.py, func, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_abc.py, func, ?
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ func_abc.py, func, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt
new file mode 100644
index 000000000000..bda8ea898826
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt
@@ -0,0 +1,255 @@
+The following are examples of py_calltime.d.
+
+This script traces the elapsed time of Python functions and prints a report.
+Here it traces the example program, Code/Python/func_abc.py
+
+# py_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ UserDict.py func ? 1
+ UserDict.py func DictMixin 1
+ UserDict.py func IterableUserDict 1
+ UserDict.py func UserDict 1
+ UserDict.py func __init__ 1
+ __init__.py func ? 1
+ __init__.py func CodecRegistryError 1
+ __init__.py func normalize_encoding 1
+ __init__.py func search_function 1
+ aliases.py func ? 1
+ ascii.py func ? 1
+ ascii.py func Codec 1
+ ascii.py func StreamConverter 1
+ ascii.py func StreamReader 1
+ ascii.py func StreamWriter 1
+ ascii.py func getregentry 1
+ codecs.py func ? 1
+ codecs.py func Codec 1
+ codecs.py func StreamReader 1
+ codecs.py func StreamReaderWriter 1
+ codecs.py func StreamRecoder 1
+ codecs.py func StreamWriter 1
+ copy_reg.py func ? 1
+ func_abc.py func ? 1
+ func_abc.py func func_a 1
+ func_abc.py func func_b 1
+ func_abc.py func func_c 1
+ linecache.py func ? 1
+ os.py func ? 1
+ os.py func _Environ 1
+ os.py func __init__ 1
+ os.py func _get_exports_list 1
+ posixpath.py func ? 1
+ posixpath.py func basename 1
+ posixpath.py func dirname 1
+ site.py func ? 1
+ site.py func _Helper 1
+ site.py func _Printer 1
+ site.py func _init_pathinfo 1
+ site.py func abs__file__ 1
+ site.py func addsitepackages 1
+ site.py func aliasmbcs 1
+ site.py func execsitecustomize 1
+ site.py func main 1
+ site.py func removeduppaths 1
+ site.py func setcopyright 1
+ site.py func setencoding 1
+ site.py func sethelper 1
+ site.py func setquit 1
+ stat.py func ? 1
+ types.py func ? 1
+ types.py func _C 1
+ warnings.py func ? 1
+ warnings.py func _OptionError 1
+ warnings.py func _processoptions 1
+ posixpath.py func exists 2
+ posixpath.py func split 2
+ site.py func addsitedir 2
+ warnings.py func simplefilter 2
+ copy_reg.py func constructor 3
+ copy_reg.py func pickle 3
+ site.py func __init__ 3
+ site.py func addpackage 3
+ stat.py func S_IFMT 6
+ stat.py func S_ISDIR 6
+ posixpath.py func isdir 8
+ os.py func _exists 10
+ <string> func ? 11
+ posixpath.py func normcase 14
+ site.py func makepath 14
+ posixpath.py func join 20
+ posixpath.py func abspath 22
+ posixpath.py func isabs 22
+ posixpath.py func normpath 22
+ - total - 230
+
+Exclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ ascii.py func StreamWriter 2
+ ascii.py func StreamReader 2
+ site.py func setencoding 2
+ UserDict.py func IterableUserDict 2
+ __init__.py func CodecRegistryError 2
+ ascii.py func getregentry 2
+ site.py func aliasmbcs 2
+ warnings.py func _OptionError 3
+ types.py func _C 3
+ site.py func sethelper 3
+ warnings.py func _processoptions 3
+ ascii.py func StreamConverter 3
+ ascii.py func Codec 3
+ site.py func _Helper 3
+ site.py func setquit 4
+ codecs.py func StreamWriter 4
+ UserDict.py func __init__ 4
+ site.py func _Printer 4
+ codecs.py func Codec 4
+ os.py func _Environ 4
+ codecs.py func StreamRecoder 5
+ codecs.py func StreamReaderWriter 6
+ codecs.py func StreamReader 6
+ copy_reg.py func constructor 7
+ __init__.py func normalize_encoding 9
+ site.py func __init__ 10
+ warnings.py func simplefilter 11
+ linecache.py func ? 11
+ posixpath.py func split 13
+ stat.py func ? 14
+ stat.py func S_IFMT 14
+ posixpath.py func dirname 16
+ posixpath.py func basename 24
+ os.py func __init__ 26
+ posixpath.py func normcase 29
+ UserDict.py func UserDict 32
+ posixpath.py func exists 37
+ aliases.py func ? 46
+ <string> func ? 56
+ copy_reg.py func pickle 59
+ UserDict.py func ? 84
+ site.py func addsitepackages 85
+ posixpath.py func isabs 87
+ site.py func setcopyright 94
+ stat.py func S_ISDIR 98
+ posixpath.py func join 105
+ types.py func ? 106
+ site.py func removeduppaths 115
+ ascii.py func ? 122
+ os.py func _get_exports_list 136
+ site.py func _init_pathinfo 155
+ site.py func abs__file__ 158
+ codecs.py func ? 182
+ UserDict.py func DictMixin 184
+ __init__.py func search_function 205
+ site.py func main 218
+ posixpath.py func normpath 231
+ copy_reg.py func ? 239
+ posixpath.py func isdir 285
+ site.py func addpackage 419
+ site.py func addsitedir 473
+ warnings.py func ? 500
+ posixpath.py func ? 546
+ site.py func execsitecustomize 558
+ site.py func makepath 608
+ posixpath.py func abspath 646
+ os.py func _exists 925
+ __init__.py func ? 1289
+ os.py func ? 1473
+ site.py func ? 1510
+ func_abc.py func ? 1517
+ func_abc.py func func_c 1000071
+ func_abc.py func func_a 1005706
+ func_abc.py func func_b 1010158
+ - total - 3029815
+
+Inclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ ascii.py func StreamWriter 2
+ ascii.py func StreamReader 2
+ site.py func setencoding 2
+ UserDict.py func IterableUserDict 2
+ __init__.py func CodecRegistryError 2
+ ascii.py func getregentry 2
+ site.py func aliasmbcs 2
+ warnings.py func _OptionError 3
+ types.py func _C 3
+ site.py func sethelper 3
+ warnings.py func _processoptions 3
+ ascii.py func StreamConverter 3
+ ascii.py func Codec 3
+ site.py func _Helper 3
+ site.py func setquit 4
+ codecs.py func StreamWriter 4
+ UserDict.py func __init__ 4
+ site.py func _Printer 4
+ codecs.py func Codec 4
+ os.py func _Environ 4
+ codecs.py func StreamRecoder 5
+ codecs.py func StreamReaderWriter 6
+ codecs.py func StreamReader 6
+ copy_reg.py func constructor 7
+ __init__.py func normalize_encoding 9
+ site.py func __init__ 10
+ warnings.py func simplefilter 11
+ linecache.py func ? 11
+ posixpath.py func split 13
+ stat.py func ? 14
+ stat.py func S_IFMT 14
+ posixpath.py func dirname 22
+ posixpath.py func normcase 29
+ os.py func __init__ 31
+ posixpath.py func basename 31
+ UserDict.py func UserDict 32
+ posixpath.py func exists 37
+ aliases.py func ? 46
+ copy_reg.py func pickle 66
+ posixpath.py func isabs 87
+ posixpath.py func join 105
+ types.py func ? 109
+ stat.py func S_ISDIR 113
+ site.py func setcopyright 132
+ ascii.py func ? 133
+ os.py func _get_exports_list 136
+ UserDict.py func DictMixin 184
+ codecs.py func ? 210
+ posixpath.py func normpath 231
+ UserDict.py func ? 303
+ __init__.py func search_function 350
+ copy_reg.py func ? 377
+ posixpath.py func isdir 399
+ warnings.py func ? 530
+ site.py func abs__file__ 540
+ site.py func execsitecustomize 558
+ posixpath.py func ? 560
+ site.py func removeduppaths 565
+ site.py func _init_pathinfo 899
+ os.py func _exists 953
+ posixpath.py func abspath 966
+ site.py func makepath 1296
+ __init__.py func ? 1548
+ <string> func ? 1808
+ site.py func addsitepackages 2471
+ site.py func addpackage 2475
+ os.py func ? 3879
+ site.py func addsitedir 4026
+ site.py func main 4532
+ site.py func ? 9930
+ func_abc.py func func_c 1000071
+ func_abc.py func func_b 2010230
+ func_abc.py func func_a 3015936
+ func_abc.py func ? 3017454
+
+Counts shows us how many times each different function was called, and how
+many functions were called in total.
+
+The exclusive function elapsed times show the time that each function spent
+processing code - while not in other functions.
+
+The inclusive function elapsed times show the time that each function spent
+processing code, including the time spent in other calls.
+
+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.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt
new file mode 100644
index 000000000000..3272e904387f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt
@@ -0,0 +1,966 @@
+The following are examples of py_cpudist.d.
+
+This script traces the on-CPU time of Python functions and prints a report
+in the form of a histogram. Here it traces the example program,
+Code/Python/func_slow.py
+
+# py_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Exclusive function on-CPU times (us),
+ UserDict.py, func, IterableUserDict
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ __init__.py, func, CodecRegistryError
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ascii.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ascii.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ascii.py, func, getregentry
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ site.py, func, aliasmbcs
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ site.py, func, sethelper
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ types.py, func, _C
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ warnings.py, func, _OptionError
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ UserDict.py, func, __init__
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, Codec
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamConverter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ codecs.py, func, Codec
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ codecs.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ os.py, func, _Environ
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ posixpath.py, func, basename
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ posixpath.py, func, dirname
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, _Helper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, _Printer
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, setencoding
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, setquit
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ warnings.py, func, _processoptions
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ copy_reg.py, func, constructor
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 2 | 0
+
+ codecs.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamReaderWriter
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamRecoder
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ func_slow.py, func, ?
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ os.py, func, __init__
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, func, __init__
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ stat.py, func, S_IFMT
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 2 | 0
+
+ warnings.py, func, simplefilter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ __init__.py, func, normalize_encoding
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ copy_reg.py, func, pickle
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ linecache.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, split
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ stat.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ stat.py, func, S_ISDIR
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 4 | 0
+
+ posixpath.py, func, normcase
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 2 | 0
+
+ UserDict.py, func, ?
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ UserDict.py, func, UserDict
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ site.py, func, _init_pathinfo
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ site.py, func, addsitepackages
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ site.py, func, setcopyright
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ <string>, func, ?
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@ 5
+ 2 |@@@@@@@@@@@@@@@@@@ 5
+ 4 |@@@@ 1
+ 8 | 0
+
+ posixpath.py, func, isabs
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+ 2 |@@@@ 2
+ 4 | 0
+
+ aliases.py, func, ?
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ ascii.py, func, ?
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ posixpath.py, func, exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ site.py, func, abs__file__
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ site.py, func, removeduppaths
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ site.py, func, makepath
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 8 | 0
+
+ posixpath.py, func, join
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@ 12
+ 2 |@@@@@@@@@@ 5
+ 4 |@@@@ 2
+ 8 | 0
+ 16 | 0
+ 32 |@@ 1
+ 64 | 0
+
+ codecs.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ site.py, func, main
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ types.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ posixpath.py, func, abspath
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22
+ 8 | 0
+
+ UserDict.py, func, DictMixin
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ __init__.py, func, search_function
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ copy_reg.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ os.py, func, _get_exports_list
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ posixpath.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ warnings.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ posixpath.py, func, isdir
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@ 1
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 32 | 0
+ 64 |@@@@@ 1
+ 128 | 0
+
+ posixpath.py, func, normpath
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@ 1
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 21
+ 16 | 0
+
+ site.py, func, addpackage
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 128 |@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ site.py, func, addsitedir
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 256 | 0
+
+ site.py, func, ?
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ site.py, func, execsitecustomize
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ os.py, func, _exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 |@@@@ 1
+ 1024 | 0
+
+ __init__.py, func, ?
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ os.py, func, ?
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ func_slow.py, func, func_a
+ value ------------- Distribution ------------- count
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 262144 | 0
+
+ func_slow.py, func, func_b
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+ func_slow.py, func, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+
+Inclusive function on-CPU times (us),
+ UserDict.py, func, IterableUserDict
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ __init__.py, func, CodecRegistryError
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ascii.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ascii.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ascii.py, func, getregentry
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ site.py, func, aliasmbcs
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ site.py, func, sethelper
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ types.py, func, _C
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ warnings.py, func, _OptionError
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ UserDict.py, func, __init__
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, Codec
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ascii.py, func, StreamConverter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ codecs.py, func, Codec
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ codecs.py, func, StreamWriter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ os.py, func, _Environ
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, _Helper
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, _Printer
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, setencoding
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ site.py, func, setquit
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ warnings.py, func, _processoptions
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ copy_reg.py, func, constructor
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 2 | 0
+
+ codecs.py, func, StreamReader
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamReaderWriter
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ codecs.py, func, StreamRecoder
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, func, __init__
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4 | 0
+
+ stat.py, func, S_IFMT
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 2 | 0
+
+ warnings.py, func, simplefilter
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ __init__.py, func, normalize_encoding
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ linecache.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ os.py, func, __init__
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, basename
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, dirname
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ posixpath.py, func, split
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ stat.py, func, ?
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ copy_reg.py, func, pickle
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 8 | 0
+
+ posixpath.py, func, normcase
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 2 | 0
+
+ UserDict.py, func, UserDict
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ stat.py, func, S_ISDIR
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 4 |@@@@@@@@@@@@@ 2
+ 8 | 0
+
+ posixpath.py, func, isabs
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+ 2 |@@@@ 2
+ 4 | 0
+
+ aliases.py, func, ?
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ ascii.py, func, ?
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ posixpath.py, func, exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ site.py, func, setcopyright
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ posixpath.py, func, join
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@ 12
+ 2 |@@@@@@@@@@ 5
+ 4 |@@@@ 2
+ 8 | 0
+ 16 | 0
+ 32 |@@ 1
+ 64 | 0
+
+ codecs.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ types.py, func, ?
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ UserDict.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ UserDict.py, func, DictMixin
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ __init__.py, func, search_function
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ os.py, func, _get_exports_list
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ posixpath.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ site.py, func, abs__file__
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ site.py, func, removeduppaths
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ warnings.py, func, ?
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ posixpath.py, func, normpath
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@ 1
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 21
+ 16 | 0
+
+ posixpath.py, func, isdir
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7
+ 32 | 0
+ 64 |@@@@@ 1
+ 128 | 0
+
+ posixpath.py, func, abspath
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 17
+ 16 |@@@@@@@@@ 5
+ 32 | 0
+
+ copy_reg.py, func, ?
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, func, _init_pathinfo
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, func, makepath
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 13
+ 32 | 0
+ 64 |@@@ 1
+ 128 | 0
+
+ site.py, func, execsitecustomize
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ <string>, func, ?
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@ 5
+ 2 |@@@@@@@@@@@@@@@@@@ 5
+ 4 | 0
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 |@@@@ 1
+ 1024 | 0
+
+ os.py, func, _exists
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8
+ 32 |@@@@ 1
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 |@@@@ 1
+ 1024 | 0
+
+ site.py, func, addpackage
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 256 | 0
+ 512 |@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ __init__.py, func, ?
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ site.py, func, addsitepackages
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ site.py, func, addsitedir
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ os.py, func, ?
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ site.py, func, main
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ site.py, func, ?
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ func_slow.py, func, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_slow.py, func, ?
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_slow.py, func, func_a
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_slow.py, func, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+The first section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines. You can
+see here that func_a had one instance of being on-CPU between 0.13 seconds and
+0.25 seconds.
+
+The second section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions. You can see that here func_a had an instance of being
+on-CPU between 1.0 seconds and 2.1 seconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt
new file mode 100644
index 000000000000..2f25922adc2a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt
@@ -0,0 +1,262 @@
+The following are examples of py_cputime.d.
+
+This script traces the on-CPU time of JavaScript functions and prints a
+report. Here it traces the example program, Code/Python/func_slow.py
+
+# py_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ UserDict.py func ? 1
+ UserDict.py func DictMixin 1
+ UserDict.py func IterableUserDict 1
+ UserDict.py func UserDict 1
+ UserDict.py func __init__ 1
+ __init__.py func ? 1
+ __init__.py func CodecRegistryError 1
+ __init__.py func normalize_encoding 1
+ __init__.py func search_function 1
+ aliases.py func ? 1
+ ascii.py func ? 1
+ ascii.py func Codec 1
+ ascii.py func StreamConverter 1
+ ascii.py func StreamReader 1
+ ascii.py func StreamWriter 1
+ ascii.py func getregentry 1
+ codecs.py func ? 1
+ codecs.py func Codec 1
+ codecs.py func StreamReader 1
+ codecs.py func StreamReaderWriter 1
+ codecs.py func StreamRecoder 1
+ codecs.py func StreamWriter 1
+ copy_reg.py func ? 1
+ func_slow.py func ? 1
+ func_slow.py func func_a 1
+ func_slow.py func func_b 1
+ func_slow.py func func_c 1
+ linecache.py func ? 1
+ os.py func ? 1
+ os.py func _Environ 1
+ os.py func __init__ 1
+ os.py func _get_exports_list 1
+ posixpath.py func ? 1
+ posixpath.py func basename 1
+ posixpath.py func dirname 1
+ site.py func ? 1
+ site.py func _Helper 1
+ site.py func _Printer 1
+ site.py func _init_pathinfo 1
+ site.py func abs__file__ 1
+ site.py func addsitepackages 1
+ site.py func aliasmbcs 1
+ site.py func execsitecustomize 1
+ site.py func main 1
+ site.py func removeduppaths 1
+ site.py func setcopyright 1
+ site.py func setencoding 1
+ site.py func sethelper 1
+ site.py func setquit 1
+ stat.py func ? 1
+ types.py func ? 1
+ types.py func _C 1
+ warnings.py func ? 1
+ warnings.py func _OptionError 1
+ warnings.py func _processoptions 1
+ posixpath.py func exists 2
+ posixpath.py func split 2
+ site.py func addsitedir 2
+ warnings.py func simplefilter 2
+ copy_reg.py func constructor 3
+ copy_reg.py func pickle 3
+ site.py func __init__ 3
+ site.py func addpackage 3
+ stat.py func S_IFMT 6
+ stat.py func S_ISDIR 6
+ posixpath.py func isdir 8
+ os.py func _exists 10
+ <string> func ? 11
+ posixpath.py func normcase 14
+ site.py func makepath 14
+ posixpath.py func join 20
+ posixpath.py func abspath 22
+ posixpath.py func isabs 22
+ posixpath.py func normpath 22
+ - total - 230
+
+Exclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ ascii.py func StreamWriter 1
+ __init__.py func CodecRegistryError 1
+ ascii.py func StreamReader 1
+ site.py func setencoding 1
+ warnings.py func _OptionError 1
+ UserDict.py func IterableUserDict 1
+ site.py func aliasmbcs 1
+ warnings.py func _processoptions 1
+ types.py func _C 1
+ ascii.py func getregentry 1
+ site.py func _Helper 2
+ ascii.py func Codec 2
+ ascii.py func StreamConverter 2
+ site.py func sethelper 2
+ codecs.py func Codec 2
+ UserDict.py func __init__ 3
+ posixpath.py func dirname 3
+ posixpath.py func basename 3
+ site.py func _Printer 3
+ os.py func _Environ 3
+ codecs.py func StreamWriter 3
+ site.py func setquit 3
+ copy_reg.py func constructor 3
+ codecs.py func StreamRecoder 4
+ codecs.py func StreamReaderWriter 5
+ codecs.py func StreamReader 5
+ os.py func __init__ 6
+ func_slow.py func ? 6
+ __init__.py func normalize_encoding 7
+ site.py func __init__ 7
+ linecache.py func ? 7
+ warnings.py func simplefilter 7
+ stat.py func S_IFMT 9
+ stat.py func ? 10
+ copy_reg.py func pickle 12
+ posixpath.py func split 12
+ posixpath.py func normcase 15
+ stat.py func S_ISDIR 17
+ site.py func addsitepackages 20
+ UserDict.py func ? 20
+ site.py func setcopyright 23
+ site.py func main 24
+ <string> func ? 28
+ UserDict.py func UserDict 31
+ site.py func _init_pathinfo 33
+ posixpath.py func exists 35
+ ascii.py func ? 38
+ posixpath.py func isabs 42
+ aliases.py func ? 43
+ site.py func removeduppaths 51
+ site.py func abs__file__ 56
+ codecs.py func ? 75
+ types.py func ? 83
+ posixpath.py func join 85
+ site.py func makepath 97
+ posixpath.py func abspath 99
+ os.py func _get_exports_list 132
+ __init__.py func search_function 142
+ warnings.py func ? 171
+ UserDict.py func DictMixin 182
+ posixpath.py func ? 192
+ copy_reg.py func ? 196
+ posixpath.py func normpath 209
+ posixpath.py func isdir 255
+ site.py func addpackage 375
+ site.py func addsitedir 506
+ site.py func execsitecustomize 540
+ site.py func ? 725
+ os.py func _exists 802
+ os.py func ? 1138
+ __init__.py func ? 1199
+ func_slow.py func func_a 229669
+ func_slow.py func func_b 456371
+ func_slow.py func func_c 686056
+ - total - 1379951
+
+Inclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ ascii.py func StreamWriter 1
+ __init__.py func CodecRegistryError 1
+ ascii.py func StreamReader 1
+ site.py func setencoding 1
+ warnings.py func _OptionError 1
+ UserDict.py func IterableUserDict 1
+ site.py func aliasmbcs 1
+ warnings.py func _processoptions 1
+ types.py func _C 1
+ ascii.py func getregentry 1
+ site.py func _Helper 2
+ ascii.py func Codec 2
+ ascii.py func StreamConverter 2
+ site.py func sethelper 2
+ codecs.py func Codec 2
+ UserDict.py func __init__ 3
+ site.py func _Printer 3
+ os.py func _Environ 3
+ codecs.py func StreamWriter 3
+ site.py func setquit 3
+ copy_reg.py func constructor 3
+ codecs.py func StreamRecoder 4
+ codecs.py func StreamReaderWriter 5
+ codecs.py func StreamReader 5
+ __init__.py func normalize_encoding 7
+ site.py func __init__ 7
+ linecache.py func ? 7
+ warnings.py func simplefilter 7
+ stat.py func S_IFMT 9
+ os.py func __init__ 9
+ posixpath.py func basename 9
+ posixpath.py func dirname 10
+ stat.py func ? 10
+ posixpath.py func split 12
+ posixpath.py func normcase 15
+ copy_reg.py func pickle 15
+ stat.py func S_ISDIR 26
+ UserDict.py func UserDict 31
+ posixpath.py func exists 35
+ posixpath.py func isabs 42
+ aliases.py func ? 43
+ site.py func setcopyright 44
+ ascii.py func ? 45
+ types.py func ? 85
+ posixpath.py func join 85
+ codecs.py func ? 97
+ os.py func _get_exports_list 132
+ site.py func removeduppaths 171
+ UserDict.py func DictMixin 182
+ site.py func abs__file__ 184
+ warnings.py func ? 190
+ __init__.py func search_function 196
+ posixpath.py func ? 202
+ posixpath.py func normpath 209
+ UserDict.py func ? 235
+ posixpath.py func isdir 281
+ copy_reg.py func ? 288
+ posixpath.py func abspath 351
+ site.py func _init_pathinfo 392
+ site.py func makepath 395
+ site.py func execsitecustomize 540
+ os.py func _exists 819
+ <string> func ? 973
+ __init__.py func ? 1341
+ site.py func addpackage 1470
+ site.py func addsitepackages 1562
+ site.py func addsitedir 2420
+ site.py func main 2546
+ os.py func ? 2839
+ site.py func ? 6118
+ func_slow.py func func_c 686056
+ func_slow.py func func_b 1142427
+ func_slow.py func func_a 1372097
+ func_slow.py func ? 1372104
+
+You can see the results are printed in three sections.
+
+The first section reports how many times each function was called.
+
+The exclusive function on-CPU times shows, amongst other results that func_a
+spent around 0.22 seconds on-CPU. This times excludes time spent in
+other functions.
+
+The inclusive function on-CPU times show that func_a spent around 1.4
+seconds on-CPU. This includes the time spent in other functions called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt
new file mode 100644
index 000000000000..d62269e3b03d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt
@@ -0,0 +1,485 @@
+The following are examples of py_flow.d.
+
+This is a simple script to trace the flow of Python functions.
+Here it traces the example program, Code/Python/func_abc.py
+
+# py_flow.d
+ C TIME(us) FILE -- FUNC
+ 0 3064371810154 site.py -> ?
+ 0 3064371830069 os.py -> ?
+ 0 3064371840076 posixpath.py -> ?
+ 0 3064371840298 stat.py -> ?
+ 0 3064371840319 stat.py <- ?
+ 0 3064371840345 posixpath.py <- ?
+ 0 3064371840364 os.py -> _get_exports_list
+ 0 3064371840510 os.py <- _get_exports_list
+ 0 3064371849994 UserDict.py -> ?
+ 0 3064371850011 UserDict.py -> UserDict
+ 0 3064371850051 UserDict.py <- UserDict
+ 0 3064371850067 UserDict.py -> IterableUserDict
+ 0 3064371850075 UserDict.py <- IterableUserDict
+ 0 3064371850088 UserDict.py -> DictMixin
+ 0 3064371850291 UserDict.py <- DictMixin
+ 0 3064371850300 UserDict.py <- ?
+ 0 3064371850320 os.py -> _Environ
+ 0 3064371850330 os.py <- _Environ
+ 0 3064371850342 os.py -> __init__
+ 0 3064371850353 UserDict.py -> __init__
+ 0 3064371850363 UserDict.py <- __init__
+ 0 3064371850372 os.py <- __init__
+ 0 3064371850381 os.py -> _exists
+ 0 3064371851137 <string> -> ?
+ 0 3064371851146 <string> <- ?
+ 0 3064371851155 os.py <- _exists
+ 0 3064371851162 os.py -> _exists
+ 0 3064371851186 <string> -> ?
+ 0 3064371851195 <string> <- ?
+ 0 3064371851213 os.py <- _exists
+ 0 3064371851220 os.py -> _exists
+ 0 3064371851242 <string> -> ?
+ 0 3064371851249 <string> <- ?
+ 0 3064371851257 os.py <- _exists
+ 0 3064371851266 os.py -> _exists
+ 0 3064371851286 <string> -> ?
+ 0 3064371851293 <string> <- ?
+ 0 3064371851300 os.py <- _exists
+ 0 3064371851310 os.py -> _exists
+ 0 3064371851330 <string> -> ?
+ 0 3064371851337 <string> <- ?
+ 0 3064371851344 os.py <- _exists
+ 0 3064371851354 os.py -> _exists
+ 0 3064371851374 <string> -> ?
+ 0 3064371851381 <string> <- ?
+ 0 3064371851388 os.py <- _exists
+ 0 3064371851395 os.py -> _exists
+ 0 3064371851415 <string> -> ?
+ 0 3064371851423 <string> <- ?
+ 0 3064371851436 os.py <- _exists
+ 0 3064371851445 os.py -> _exists
+ 0 3064371851465 <string> -> ?
+ 0 3064371851473 <string> <- ?
+ 0 3064371851485 os.py <- _exists
+ 0 3064371851493 os.py -> _exists
+ 0 3064371851514 <string> -> ?
+ 0 3064371851522 <string> <- ?
+ 0 3064371851534 os.py <- _exists
+ 0 3064371851785 copy_reg.py -> ?
+ 0 3064371851996 types.py -> ?
+ 0 3064371852063 types.py -> _C
+ 0 3064371852073 types.py <- _C
+ 0 3064371852108 types.py <- ?
+ 0 3064371852129 copy_reg.py -> pickle
+ 0 3064371852139 copy_reg.py -> constructor
+ 0 3064371852147 copy_reg.py <- constructor
+ 0 3064371852155 copy_reg.py <- pickle
+ 0 3064371852166 copy_reg.py <- ?
+ 0 3064371852179 copy_reg.py -> pickle
+ 0 3064371852188 copy_reg.py -> constructor
+ 0 3064371852196 copy_reg.py <- constructor
+ 0 3064371852204 copy_reg.py <- pickle
+ 0 3064371852212 copy_reg.py -> pickle
+ 0 3064371852221 copy_reg.py -> constructor
+ 0 3064371852229 copy_reg.py <- constructor
+ 0 3064371852236 copy_reg.py <- pickle
+ 0 3064371852244 os.py -> _exists
+ 0 3064371852269 <string> -> ?
+ 0 3064371852277 <string> <- ?
+ 0 3064371852289 os.py <- _exists
+ 0 3064371852297 os.py <- ?
+ 0 3064371852330 site.py -> _Printer
+ 0 3064371852340 site.py <- _Printer
+ 0 3064371852376 site.py -> _Helper
+ 0 3064371852384 site.py <- _Helper
+ 0 3064371852416 site.py -> main
+ 0 3064371852423 site.py -> abs__file__
+ 0 3064371852434 posixpath.py -> abspath
+ 0 3064371852442 posixpath.py -> isabs
+ 0 3064371852452 posixpath.py <- isabs
+ 0 3064371852460 posixpath.py -> normpath
+ 0 3064371852482 posixpath.py <- normpath
+ 0 3064371852490 posixpath.py <- abspath
+ 0 3064371852504 posixpath.py -> abspath
+ 0 3064371852511 posixpath.py -> isabs
+ 0 3064371852520 posixpath.py <- isabs
+ 0 3064371852527 posixpath.py -> normpath
+ 0 3064371852543 posixpath.py <- normpath
+ 0 3064371852552 posixpath.py <- abspath
+ 0 3064371852560 posixpath.py -> abspath
+ 0 3064371852567 posixpath.py -> isabs
+ 0 3064371852576 posixpath.py <- isabs
+ 0 3064371852583 posixpath.py -> normpath
+ 0 3064371852598 posixpath.py <- normpath
+ 0 3064371852607 posixpath.py <- abspath
+ 0 3064371852615 posixpath.py -> abspath
+ 0 3064371852622 posixpath.py -> isabs
+ 0 3064371852631 posixpath.py <- isabs
+ 0 3064371852638 posixpath.py -> normpath
+ 0 3064371852653 posixpath.py <- normpath
+ 0 3064371852661 posixpath.py <- abspath
+ 0 3064371852674 posixpath.py -> abspath
+ 0 3064371852682 posixpath.py -> isabs
+ 0 3064371852690 posixpath.py <- isabs
+ 0 3064371852697 posixpath.py -> normpath
+ 0 3064371852713 posixpath.py <- normpath
+ 0 3064371852721 posixpath.py <- abspath
+ 0 3064371852741 posixpath.py -> abspath
+ 0 3064371852748 posixpath.py -> isabs
+ 0 3064371852757 posixpath.py <- isabs
+ 0 3064371852764 posixpath.py -> normpath
+ 0 3064371852779 posixpath.py <- normpath
+ 0 3064371852787 posixpath.py <- abspath
+ 0 3064371852804 posixpath.py -> abspath
+ 0 3064371852811 posixpath.py -> isabs
+ 0 3064371852819 posixpath.py <- isabs
+ 0 3064371852826 posixpath.py -> normpath
+ 0 3064371852842 posixpath.py <- normpath
+ 0 3064371852850 posixpath.py <- abspath
+ 0 3064371852858 posixpath.py -> abspath
+ 0 3064371852865 posixpath.py -> isabs
+ 0 3064371852874 posixpath.py <- isabs
+ 0 3064371852881 posixpath.py -> normpath
+ 0 3064371852896 posixpath.py <- normpath
+ 0 3064371852904 posixpath.py <- abspath
+ 0 3064371852915 site.py <- abs__file__
+ 0 3064371852922 site.py -> removeduppaths
+ 0 3064371852931 site.py -> makepath
+ 0 3064371852940 posixpath.py -> join
+ 0 3064371852948 posixpath.py <- join
+ 0 3064371852955 posixpath.py -> abspath
+ 0 3064371852963 posixpath.py -> isabs
+ 0 3064371852972 posixpath.py <- isabs
+ 0 3064371852980 posixpath.py -> normpath
+ 0 3064371852995 posixpath.py <- normpath
+ 0 3064371853002 posixpath.py <- abspath
+ 0 3064371853010 posixpath.py -> normcase
+ 0 3064371853018 posixpath.py <- normcase
+ 0 3064371853025 site.py <- makepath
+ 0 3064371853065 site.py -> makepath
+ 0 3064371853073 posixpath.py -> join
+ 0 3064371853081 posixpath.py <- join
+ 0 3064371853088 posixpath.py -> abspath
+ 0 3064371853096 posixpath.py -> isabs
+ 0 3064371853104 posixpath.py <- isabs
+ 0 3064371853111 posixpath.py -> normpath
+ 0 3064371853126 posixpath.py <- normpath
+ 0 3064371853134 posixpath.py <- abspath
+ 0 3064371853142 posixpath.py -> normcase
+ 0 3064371853150 posixpath.py <- normcase
+ 0 3064371853157 site.py <- makepath
+ 0 3064371853165 site.py -> makepath
+ 0 3064371853173 posixpath.py -> join
+ 0 3064371853181 posixpath.py <- join
+ 0 3064371853188 posixpath.py -> abspath
+ 0 3064371853195 posixpath.py -> isabs
+ 0 3064371853203 posixpath.py <- isabs
+ 0 3064371853210 posixpath.py -> normpath
+ 0 3064371853226 posixpath.py <- normpath
+ 0 3064371853234 posixpath.py <- abspath
+ 0 3064371853241 posixpath.py -> normcase
+ 0 3064371853249 posixpath.py <- normcase
+ 0 3064371853256 site.py <- makepath
+ 0 3064371853265 site.py -> makepath
+ 0 3064371853272 posixpath.py -> join
+ 0 3064371853280 posixpath.py <- join
+ 0 3064371853287 posixpath.py -> abspath
+ 0 3064371853294 posixpath.py -> isabs
+ 0 3064371853303 posixpath.py <- isabs
+ 0 3064371853310 posixpath.py -> normpath
+ 0 3064371853325 posixpath.py <- normpath
+ 0 3064371853333 posixpath.py <- abspath
+ 0 3064371853341 posixpath.py -> normcase
+ 0 3064371853348 posixpath.py <- normcase
+ 0 3064371853356 site.py <- makepath
+ 0 3064371853364 site.py -> makepath
+ 0 3064371853372 posixpath.py -> join
+ 0 3064371853380 posixpath.py <- join
+ 0 3064371853387 posixpath.py -> abspath
+ 0 3064371853394 posixpath.py -> isabs
+ 0 3064371853402 posixpath.py <- isabs
+ 0 3064371853409 posixpath.py -> normpath
+ 0 3064371853425 posixpath.py <- normpath
+ 0 3064371853433 posixpath.py <- abspath
+ 0 3064371853440 posixpath.py -> normcase
+ 0 3064371853448 posixpath.py <- normcase
+ 0 3064371853455 site.py <- makepath
+ 0 3064371853466 site.py <- removeduppaths
+ 0 3064371853476 posixpath.py -> basename
+ 0 3064371853484 posixpath.py -> split
+ 0 3064371853498 posixpath.py <- split
+ 0 3064371853505 posixpath.py <- basename
+ 0 3064371853513 site.py -> addsitepackages
+ 0 3064371853524 posixpath.py -> join
+ 0 3064371853538 posixpath.py <- join
+ 0 3064371853546 posixpath.py -> join
+ 0 3064371853557 posixpath.py <- join
+ 0 3064371853566 posixpath.py -> isdir
+ 0 3064371853597 stat.py -> S_ISDIR
+ 0 3064371853604 stat.py -> S_IFMT
+ 0 3064371853612 stat.py <- S_IFMT
+ 0 3064371853620 stat.py <- S_ISDIR
+ 0 3064371853627 posixpath.py <- isdir
+ 0 3064371853636 site.py -> addsitedir
+ 0 3064371853643 site.py -> makepath
+ 0 3064371853651 posixpath.py -> join
+ 0 3064371853659 posixpath.py <- join
+ 0 3064371853666 posixpath.py -> abspath
+ 0 3064371853674 posixpath.py -> isabs
+ 0 3064371853683 posixpath.py <- isabs
+ 0 3064371853691 posixpath.py -> normpath
+ 0 3064371853707 posixpath.py <- normpath
+ 0 3064371853715 posixpath.py <- abspath
+ 0 3064371853723 posixpath.py -> normcase
+ 0 3064371853730 posixpath.py <- normcase
+ 0 3064371853738 site.py <- makepath
+ 0 3064371853938 site.py -> addpackage
+ 0 3064371853948 posixpath.py -> join
+ 0 3064371853958 posixpath.py <- join
+ 0 3064371854087 <string> -> ?
+ 0 3064371854098 site.py -> addsitedir
+ 0 3064371854106 site.py -> _init_pathinfo
+ 0 3064371854115 posixpath.py -> isdir
+ 0 3064371854195 posixpath.py <- isdir
+ 0 3064371854204 posixpath.py -> isdir
+ 0 3064371854224 stat.py -> S_ISDIR
+ 0 3064371854232 stat.py -> S_IFMT
+ 0 3064371854240 stat.py <- S_IFMT
+ 0 3064371854247 stat.py <- S_ISDIR
+ 0 3064371854254 posixpath.py <- isdir
+ 0 3064371854262 site.py -> makepath
+ 0 3064371854271 posixpath.py -> join
+ 0 3064371854279 posixpath.py <- join
+ 0 3064371854286 posixpath.py -> abspath
+ 0 3064371854293 posixpath.py -> isabs
+ 0 3064371854302 posixpath.py <- isabs
+ 0 3064371854309 posixpath.py -> normpath
+ 0 3064371854325 posixpath.py <- normpath
+ 0 3064371854333 posixpath.py <- abspath
+ 0 3064371854341 posixpath.py -> normcase
+ 0 3064371854349 posixpath.py <- normcase
+ 0 3064371854356 site.py <- makepath
+ 0 3064371854364 posixpath.py -> isdir
+ 0 3064371854386 stat.py -> S_ISDIR
+ 0 3064371854393 stat.py -> S_IFMT
+ 0 3064371854400 stat.py <- S_IFMT
+ 0 3064371854408 stat.py <- S_ISDIR
+ 0 3064371854415 posixpath.py <- isdir
+ 0 3064371854423 site.py -> makepath
+ 0 3064371854431 posixpath.py -> join
+ 0 3064371854438 posixpath.py <- join
+ 0 3064371854446 posixpath.py -> abspath
+ 0 3064371854453 posixpath.py -> isabs
+ 0 3064371854461 posixpath.py <- isabs
+ 0 3064371854469 posixpath.py -> normpath
+ 0 3064371854485 posixpath.py <- normpath
+ 0 3064371854493 posixpath.py <- abspath
+ 0 3064371854500 posixpath.py -> normcase
+ 0 3064371854508 posixpath.py <- normcase
+ 0 3064371854516 site.py <- makepath
+ 0 3064371854524 posixpath.py -> isdir
+ 0 3064371854556 stat.py -> S_ISDIR
+ 0 3064371854563 stat.py -> S_IFMT
+ 0 3064371854571 stat.py <- S_IFMT
+ 0 3064371854578 stat.py <- S_ISDIR
+ 0 3064371854585 posixpath.py <- isdir
+ 0 3064371854593 site.py -> makepath
+ 0 3064371854601 posixpath.py -> join
+ 0 3064371854609 posixpath.py <- join
+ 0 3064371854616 posixpath.py -> abspath
+ 0 3064371854624 posixpath.py -> isabs
+ 0 3064371854632 posixpath.py <- isabs
+ 0 3064371854639 posixpath.py -> normpath
+ 0 3064371854655 posixpath.py <- normpath
+ 0 3064371854663 posixpath.py <- abspath
+ 0 3064371854671 posixpath.py -> normcase
+ 0 3064371854679 posixpath.py <- normcase
+ 0 3064371854686 site.py <- makepath
+ 0 3064371854694 posixpath.py -> isdir
+ 0 3064371854715 stat.py -> S_ISDIR
+ 0 3064371854722 stat.py -> S_IFMT
+ 0 3064371854730 stat.py <- S_IFMT
+ 0 3064371854737 stat.py <- S_ISDIR
+ 0 3064371854744 posixpath.py <- isdir
+ 0 3064371854752 site.py -> makepath
+ 0 3064371854759 posixpath.py -> join
+ 0 3064371854767 posixpath.py <- join
+ 0 3064371854774 posixpath.py -> abspath
+ 0 3064371854782 posixpath.py -> isabs
+ 0 3064371854790 posixpath.py <- isabs
+ 0 3064371854797 posixpath.py -> normpath
+ 0 3064371854813 posixpath.py <- normpath
+ 0 3064371854821 posixpath.py <- abspath
+ 0 3064371854829 posixpath.py -> normcase
+ 0 3064371854837 posixpath.py <- normcase
+ 0 3064371854844 site.py <- makepath
+ 0 3064371854852 posixpath.py -> isdir
+ 0 3064371854872 stat.py -> S_ISDIR
+ 0 3064371854879 stat.py -> S_IFMT
+ 0 3064371854887 stat.py <- S_IFMT
+ 0 3064371854894 stat.py <- S_ISDIR
+ 0 3064371854901 posixpath.py <- isdir
+ 0 3064371854909 site.py -> makepath
+ 0 3064371854917 posixpath.py -> join
+ 0 3064371854925 posixpath.py <- join
+ 0 3064371854932 posixpath.py -> abspath
+ 0 3064371854939 posixpath.py -> isabs
+ 0 3064371854947 posixpath.py <- isabs
+ 0 3064371854954 posixpath.py -> normpath
+ 0 3064371854970 posixpath.py <- normpath
+ 0 3064371854978 posixpath.py <- abspath
+ 0 3064371854986 posixpath.py -> normcase
+ 0 3064371854994 posixpath.py <- normcase
+ 0 3064371855001 site.py <- makepath
+ 0 3064371855009 site.py <- _init_pathinfo
+ 0 3064371855016 site.py -> makepath
+ 0 3064371855024 posixpath.py -> join
+ 0 3064371855032 posixpath.py <- join
+ 0 3064371855039 posixpath.py -> abspath
+ 0 3064371855047 posixpath.py -> isabs
+ 0 3064371855055 posixpath.py <- isabs
+ 0 3064371855063 posixpath.py -> normpath
+ 0 3064371855078 posixpath.py <- normpath
+ 0 3064371855086 posixpath.py <- abspath
+ 0 3064371855094 posixpath.py -> normcase
+ 0 3064371855101 posixpath.py <- normcase
+ 0 3064371855144 site.py <- makepath
+ 0 3064371855318 site.py -> addpackage
+ 0 3064371855327 posixpath.py -> join
+ 0 3064371855337 posixpath.py <- join
+ 0 3064371855411 site.py -> makepath
+ 0 3064371855420 posixpath.py -> join
+ 0 3064371855430 posixpath.py <- join
+ 0 3064371855437 posixpath.py -> abspath
+ 0 3064371855445 posixpath.py -> isabs
+ 0 3064371855453 posixpath.py <- isabs
+ 0 3064371855460 posixpath.py -> normpath
+ 0 3064371855477 posixpath.py <- normpath
+ 0 3064371855485 posixpath.py <- abspath
+ 0 3064371855493 posixpath.py -> normcase
+ 0 3064371855501 posixpath.py <- normcase
+ 0 3064371855509 site.py <- makepath
+ 0 3064371855517 posixpath.py -> exists
+ 0 3064371855542 posixpath.py <- exists
+ 0 3064371855591 site.py <- addpackage
+ 0 3064371855611 site.py -> addpackage
+ 0 3064371855618 posixpath.py -> join
+ 0 3064371855628 posixpath.py <- join
+ 0 3064371855683 site.py -> makepath
+ 0 3064371855692 posixpath.py -> join
+ 0 3064371855739 posixpath.py <- join
+ 0 3064371855747 posixpath.py -> abspath
+ 0 3064371855754 posixpath.py -> isabs
+ 0 3064371855763 posixpath.py <- isabs
+ 0 3064371855770 posixpath.py -> normpath
+ 0 3064371855788 posixpath.py <- normpath
+ 0 3064371855796 posixpath.py <- abspath
+ 0 3064371855803 posixpath.py -> normcase
+ 0 3064371855811 posixpath.py <- normcase
+ 0 3064371855818 site.py <- makepath
+ 0 3064371855826 posixpath.py -> exists
+ 0 3064371855851 posixpath.py <- exists
+ 0 3064371855880 site.py <- addpackage
+ 0 3064371855892 site.py <- addsitedir
+ 0 3064371855900 <string> <- ?
+ 0 3064371855915 site.py <- addpackage
+ 0 3064371855923 site.py <- addsitedir
+ 0 3064371855932 posixpath.py -> isdir
+ 0 3064371855965 posixpath.py <- isdir
+ 0 3064371855973 site.py <- addsitepackages
+ 0 3064371855982 site.py -> setquit
+ 0 3064371855993 site.py <- setquit
+ 0 3064371856000 site.py -> setcopyright
+ 0 3064371856009 site.py -> __init__
+ 0 3064371856019 site.py <- __init__
+ 0 3064371856028 site.py -> __init__
+ 0 3064371856037 site.py <- __init__
+ 0 3064371856045 posixpath.py -> dirname
+ 0 3064371856052 posixpath.py -> split
+ 0 3064371856065 posixpath.py <- split
+ 0 3064371856073 posixpath.py <- dirname
+ 0 3064371856085 posixpath.py -> join
+ 0 3064371856096 posixpath.py <- join
+ 0 3064371856104 site.py -> __init__
+ 0 3064371856113 site.py <- __init__
+ 0 3064371856121 site.py <- setcopyright
+ 0 3064371856128 site.py -> sethelper
+ 0 3064371856136 site.py <- sethelper
+ 0 3064371856143 site.py -> aliasmbcs
+ 0 3064371856151 site.py <- aliasmbcs
+ 0 3064371856158 site.py -> setencoding
+ 0 3064371856166 site.py <- setencoding
+ 0 3064371856173 site.py -> execsitecustomize
+ 0 3064371871773 site.py <- execsitecustomize
+ 0 3064371871794 site.py <- main
+ 0 3064371871805 site.py <- ?
+ 0 3064371872141 warnings.py -> ?
+ 0 306437187232e linecache.py -> ?
+ 0 3064371872336 linecache.py <- ?
+ 0 3064371872352 warnings.py -> _OptionError
+ 0 3064371872361 warnings.py <- _OptionError
+ 0 3064371872378 warnings.py -> _processoptions
+ 0 3064371872387 warnings.py <- _processoptions
+ 0 3064371872397 warnings.py -> simplefilter
+ 0 3064371872410 warnings.py <- simplefilter
+ 0 3064371872418 warnings.py -> simplefilter
+ 0 3064371872428 warnings.py <- simplefilter
+ 0 3064371872436 warnings.py <- ?
+ 0 3064371886557 __init__.py -> ?
+ 0 3064371891761 codecs.py -> ?
+ 0 3064371891836 codecs.py -> Codec
+ 0 3064371891848 codecs.py <- Codec
+ 0 3064371891864 codecs.py -> StreamWriter
+ 0 3064371891874 codecs.py <- StreamWriter
+ 0 3064371891885 codecs.py -> StreamReader
+ 0 3064371891897 codecs.py <- StreamReader
+ 0 3064371891907 codecs.py -> StreamReaderWriter
+ 0 3064371891918 codecs.py <- StreamReaderWriter
+ 0 3064371891926 codecs.py -> StreamRecoder
+ 0 3064371891938 codecs.py <- StreamRecoder
+ 0 3064371891953 codecs.py <- ?
+ 0 3064371902521 aliases.py -> ?
+ 0 3064371902580 aliases.py <- ?
+ 0 3064371902605 __init__.py -> CodecRegistryError
+ 0 3064371902614 __init__.py <- CodecRegistryError
+ 0 3064371902636 __init__.py <- ?
+ 0 3064371902655 __init__.py -> search_function
+ 0 3064371902666 __init__.py -> normalize_encoding
+ 0 3064371902682 __init__.py <- normalize_encoding
+ 0 3064371902888 ascii.py -> ?
+ 0 3064371902900 ascii.py -> Codec
+ 0 3064371902909 ascii.py <- Codec
+ 0 3064371902922 ascii.py -> StreamWriter
+ 0 3064371902930 ascii.py <- StreamWriter
+ 0 3064371902941 ascii.py -> StreamReader
+ 0 3064371902949 ascii.py <- StreamReader
+ 0 3064371902972 ascii.py -> StreamConverter
+ 0 3064371902981 ascii.py <- StreamConverter
+ 0 3064371902993 ascii.py <- ?
+ 0 3064371903009 ascii.py -> getregentry
+ 0 3064371903018 ascii.py <- getregentry
+ 0 3064371903044 __init__.py <- search_function
+ 0 3064371903414 func_abc.py -> ?
+ 0 3064371933251 func_abc.py -> func_a
+ 0 3064372940696 func_abc.py -> func_b
+ 0 3064373950608 func_abc.py -> func_c
+ 0 3064374960497 func_abc.py <- func_c
+ 0 3064374960512 func_abc.py <- func_b
+ 0 3064374960520 func_abc.py <- func_a
+ 0 3064374960528 func_abc.py <- ?
+^C
+
+Here we can see that Python has done extensive pre-processing before it runs
+the Code/Python/func_abc.py program itself.
+
+This shows which function is calling which - the output above ends by
+showing that func_a called func_b which in turn called func_c etc.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt
new file mode 100644
index 000000000000..f93dc09b89d8
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt
@@ -0,0 +1,485 @@
+Following are examples of py_flowinfo.d.
+
+This is a simple script to trace the flow of Python functions. Here it traces
+the flow into and out of libraries and the example program,
+Code/Python/func_abc.py.
+
+# py_flowinfo.d
+C PID DELTA(us) FILE:LINE TYPE -- FUNC
+0 145424 3 site.py:58 func -> ?
+0 145424 1375 os.py:22 func -> ?
+0 145424 692 posixpath.py:11 func -> ?
+0 145424 184 stat.py:4 func -> ?
+0 145424 21 stat.py:86 func <- ?
+0 145424 32 posixpath.py:454 func <- ?
+0 145424 18 os.py:34 func -> _get_exports_list
+0 145424 135 os.py:38 func <- _get_exports_list
+0 145424 261 UserDict.py:1 func -> ?
+0 145424 11 UserDict.py:3 func -> UserDict
+0 145424 36 UserDict.py:71 func <- UserDict
+0 145424 16 UserDict.py:73 func -> IterableUserDict
+0 145424 9 UserDict.py:74 func <- IterableUserDict
+0 145424 13 UserDict.py:77 func -> DictMixin
+0 145424 174 UserDict.py:169 func <- DictMixin
+0 145424 11 UserDict.py:77 func <- ?
+0 145424 17 os.py:458 func -> _Environ
+0 145424 11 os.py:489 func <- _Environ
+0 145424 13 os.py:459 func -> __init__
+0 145424 11 UserDict.py:4 func -> __init__
+0 145424 11 UserDict.py:9 func <- __init__
+0 145424 10 os.py:461 func <- __init__
+0 145424 11 os.py:501 func -> _exists
+0 145424 604 <string>:0 func -> ?
+0 145424 10 <string>:0 func <- ?
+0 145424 9 os.py:504 func <- _exists
+0 145424 9 os.py:501 func -> _exists
+0 145424 24 <string>:0 func -> ?
+0 145424 9 <string>:0 func <- ?
+0 145424 15 os.py:506 func <- _exists
+0 145424 9 os.py:501 func -> _exists
+0 145424 23 <string>:0 func -> ?
+0 145424 8 <string>:0 func <- ?
+0 145424 9 os.py:504 func <- _exists
+0 145424 26 os.py:501 func -> _exists
+0 145424 23 <string>:0 func -> ?
+0 145424 8 <string>:0 func <- ?
+0 145424 8 os.py:504 func <- _exists
+0 145424 11 os.py:501 func -> _exists
+0 145424 22 <string>:0 func -> ?
+0 145424 8 <string>:0 func <- ?
+0 145424 8 os.py:504 func <- _exists
+0 145424 11 os.py:501 func -> _exists
+0 145424 22 <string>:0 func -> ?
+0 145424 8 <string>:0 func <- ?
+0 145424 8 os.py:504 func <- _exists
+0 145424 9 os.py:501 func -> _exists
+0 145424 21 <string>:0 func -> ?
+0 145424 9 <string>:0 func <- ?
+0 145424 14 os.py:506 func <- _exists
+0 145424 10 os.py:501 func -> _exists
+0 145424 22 <string>:0 func -> ?
+0 145424 9 <string>:0 func <- ?
+0 145424 13 os.py:506 func <- _exists
+0 145424 11 os.py:501 func -> _exists
+0 145424 22 <string>:0 func -> ?
+0 145424 8 <string>:0 func <- ?
+0 145424 13 os.py:506 func <- _exists
+0 145424 181 copy_reg.py:5 func -> ?
+0 145424 181 types.py:4 func -> ?
+0 145424 64 types.py:55 func -> _C
+0 145424 10 types.py:56 func <- _C
+0 145424 35 types.py:89 func <- ?
+0 145424 22 copy_reg.py:14 func -> pickle
+0 145424 11 copy_reg.py:27 func -> constructor
+0 145424 9 copy_reg.py:29 func <- constructor
+0 145424 9 copy_reg.py:25 func <- pickle
+0 145424 12 copy_reg.py:175 func <- ?
+0 145424 15 copy_reg.py:14 func -> pickle
+0 145424 10 copy_reg.py:27 func -> constructor
+0 145424 9 copy_reg.py:29 func <- constructor
+0 145424 9 copy_reg.py:25 func <- pickle
+0 145424 10 copy_reg.py:14 func -> pickle
+0 145424 10 copy_reg.py:27 func -> constructor
+0 145424 9 copy_reg.py:29 func <- constructor
+0 145424 9 copy_reg.py:25 func <- pickle
+0 145424 9 os.py:501 func -> _exists
+0 145424 26 <string>:0 func -> ?
+0 145424 9 <string>:0 func <- ?
+0 145424 14 os.py:506 func <- _exists
+0 145424 9 os.py:711 func <- ?
+0 145424 33 site.py:238 func -> _Printer
+0 145424 11 site.py:279 func <- _Printer
+0 145424 38 site.py:317 func -> _Helper
+0 145424 9 site.py:326 func <- _Helper
+0 145424 34 site.py:376 func -> main
+0 145424 8 site.py:69 func -> abs__file__
+0 145424 11 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 11 posixpath.py:49 func <- isabs
+0 145424 10 posixpath.py:374 func -> normpath
+0 145424 22 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 16 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 15 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 22 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 18 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 12 site.py:75 func <- abs__file__
+0 145424 9 site.py:77 func -> removeduppaths
+0 145424 11 site.py:65 func -> makepath
+0 145424 10 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 10 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 42 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:39 func -> normcase
+0 145424 8 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 8 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 8 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 16 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 8 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 12 site.py:93 func <- removeduppaths
+0 145424 11 posixpath.py:110 func -> basename
+0 145424 10 posixpath.py:74 func -> split
+0 145424 14 posixpath.py:81 func <- split
+0 145424 9 posixpath.py:112 func <- basename
+0 145424 9 site.py:171 func -> addsitepackages
+0 145424 13 posixpath.py:56 func -> join
+0 145424 15 posixpath.py:66 func <- join
+0 145424 10 posixpath.py:56 func -> join
+0 145424 12 posixpath.py:66 func <- join
+0 145424 11 posixpath.py:192 func -> isdir
+0 145424 34 stat.py:45 func -> S_ISDIR
+0 145424 9 stat.py:29 func -> S_IFMT
+0 145424 9 stat.py:30 func <- S_IFMT
+0 145424 9 stat.py:46 func <- S_ISDIR
+0 145424 9 posixpath.py:198 func <- isdir
+0 145424 11 site.py:148 func -> addsitedir
+0 145424 9 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 10 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 222 site.py:117 func -> addpackage
+0 145424 12 posixpath.py:56 func -> join
+0 145424 12 posixpath.py:66 func <- join
+0 145424 132 <string>:1 func -> ?
+0 145424 13 site.py:148 func -> addsitedir
+0 145424 9 site.py:105 func -> _init_pathinfo
+0 145424 11 posixpath.py:192 func -> isdir
+0 145424 84 posixpath.py:197 func <- isdir
+0 145424 12 posixpath.py:192 func -> isdir
+0 145424 23 stat.py:45 func -> S_ISDIR
+0 145424 9 stat.py:29 func -> S_IFMT
+0 145424 9 stat.py:30 func <- S_IFMT
+0 145424 9 stat.py:46 func <- S_ISDIR
+0 145424 9 posixpath.py:198 func <- isdir
+0 145424 10 site.py:65 func -> makepath
+0 145424 10 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 10 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 posixpath.py:192 func -> isdir
+0 145424 23 stat.py:45 func -> S_ISDIR
+0 145424 8 stat.py:29 func -> S_IFMT
+0 145424 8 stat.py:30 func <- S_IFMT
+0 145424 9 stat.py:46 func <- S_ISDIR
+0 145424 9 posixpath.py:198 func <- isdir
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 posixpath.py:192 func -> isdir
+0 145424 24 stat.py:45 func -> S_ISDIR
+0 145424 8 stat.py:29 func -> S_IFMT
+0 145424 8 stat.py:30 func <- S_IFMT
+0 145424 9 stat.py:46 func <- S_ISDIR
+0 145424 8 posixpath.py:198 func <- isdir
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 posixpath.py:192 func -> isdir
+0 145424 23 stat.py:45 func -> S_ISDIR
+0 145424 8 stat.py:29 func -> S_IFMT
+0 145424 8 stat.py:30 func <- S_IFMT
+0 145424 9 stat.py:46 func <- S_ISDIR
+0 145424 9 posixpath.py:198 func <- isdir
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 posixpath.py:192 func -> isdir
+0 145424 22 stat.py:45 func -> S_ISDIR
+0 145424 8 stat.py:29 func -> S_IFMT
+0 145424 8 stat.py:30 func <- S_IFMT
+0 145424 9 stat.py:46 func <- S_ISDIR
+0 145424 8 posixpath.py:198 func <- isdir
+0 145424 10 site.py:65 func -> makepath
+0 145424 9 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:39 func -> normcase
+0 145424 8 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 site.py:115 func <- _init_pathinfo
+0 145424 9 site.py:65 func -> makepath
+0 145424 10 posixpath.py:56 func -> join
+0 145424 9 posixpath.py:66 func <- join
+0 145424 9 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 10 posixpath.py:374 func -> normpath
+0 145424 17 posixpath.py:398 func <- normpath
+0 145424 9 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 170 site.py:117 func -> addpackage
+0 145424 11 posixpath.py:56 func -> join
+0 145424 12 posixpath.py:66 func <- join
+0 145424 73 site.py:65 func -> makepath
+0 145424 11 posixpath.py:56 func -> join
+0 145424 11 posixpath.py:66 func <- join
+0 145424 10 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 19 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 9 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 posixpath.py:168 func -> exists
+0 145424 41 posixpath.py:174 func <- exists
+0 145424 53 site.py:146 func <- addpackage
+0 145424 21 site.py:117 func -> addpackage
+0 145424 9 posixpath.py:56 func -> join
+0 145424 11 posixpath.py:66 func <- join
+0 145424 48 site.py:65 func -> makepath
+0 145424 10 posixpath.py:56 func -> join
+0 145424 47 posixpath.py:66 func <- join
+0 145424 10 posixpath.py:401 func -> abspath
+0 145424 9 posixpath.py:47 func -> isabs
+0 145424 9 posixpath.py:49 func <- isabs
+0 145424 9 posixpath.py:374 func -> normpath
+0 145424 18 posixpath.py:398 func <- normpath
+0 145424 10 posixpath.py:405 func <- abspath
+0 145424 10 posixpath.py:39 func -> normcase
+0 145424 9 posixpath.py:41 func <- normcase
+0 145424 9 site.py:67 func <- makepath
+0 145424 10 posixpath.py:168 func -> exists
+0 145424 25 posixpath.py:174 func <- exists
+0 145424 32 site.py:146 func <- addpackage
+0 145424 14 site.py:169 func <- addsitedir
+0 145424 10 <string>:1 func <- ?
+0 145424 16 site.py:146 func <- addpackage
+0 145424 10 site.py:169 func <- addsitedir
+0 145424 10 posixpath.py:192 func -> isdir
+0 145424 34 posixpath.py:197 func <- isdir
+0 145424 10 site.py:204 func <- addsitepackages
+0 145424 11 site.py:224 func -> setquit
+0 145424 11 site.py:235 func <- setquit
+0 145424 9 site.py:299 func -> setcopyright
+0 145424 11 site.py:244 func -> __init__
+0 145424 10 site.py:249 func <- __init__
+0 145424 12 site.py:244 func -> __init__
+0 145424 9 site.py:249 func <- __init__
+0 145424 10 posixpath.py:117 func -> dirname
+0 145424 9 posixpath.py:74 func -> split
+0 145424 14 posixpath.py:81 func <- split
+0 145424 9 posixpath.py:119 func <- dirname
+0 145424 14 posixpath.py:56 func -> join
+0 145424 11 posixpath.py:66 func <- join
+0 145424 11 site.py:244 func -> __init__
+0 145424 9 site.py:249 func <- __init__
+0 145424 9 site.py:314 func <- setcopyright
+0 145424 9 site.py:330 func -> sethelper
+0 145424 9 site.py:331 func <- sethelper
+0 145424 9 site.py:333 func -> aliasmbcs
+0 145424 9 site.py:346 func <- aliasmbcs
+0 145424 9 site.py:348 func -> setencoding
+0 145424 9 site.py:365 func <- setencoding
+0 145424 9 site.py:368 func -> execsitecustomize
+0 145424 706 site.py:373 func <- execsitecustomize
+0 145424 16 site.py:395 func <- main
+0 145424 12 site.py:406 func <- ?
+0 145424 289 warnings.py:1 func -> ?
+0 145424 158 linecache.py:6 func -> ?
+0 145424 17 linecache.py:66 func <- ?
+0 145424 20 warnings.py:179 func -> _OptionError
+0 145424 9 warnings.py:180 func <- _OptionError
+0 145424 19 warnings.py:184 func -> _processoptions
+0 145424 10 warnings.py:189 func <- _processoptions
+0 145424 12 warnings.py:160 func -> simplefilter
+0 145424 13 warnings.py:173 func <- simplefilter
+0 145424 10 warnings.py:160 func -> simplefilter
+0 145424 11 warnings.py:173 func <- simplefilter
+0 145424 9 warnings.py:259 func <- ?
+0 145424 492 __init__.py:28 func -> ?
+0 145424 599 codecs.py:8 func -> ?
+0 145424 61 codecs.py:76 func -> Codec
+0 145424 12 codecs.py:117 func <- Codec
+0 145424 18 codecs.py:147 func -> StreamWriter
+0 145424 11 codecs.py:200 func <- StreamWriter
+0 145424 13 codecs.py:209 func -> StreamReader
+0 145424 13 codecs.py:436 func <- StreamReader
+0 145424 12 codecs.py:445 func -> StreamReaderWriter
+0 145424 13 codecs.py:509 func <- StreamReaderWriter
+0 145424 11 codecs.py:518 func -> StreamRecoder
+0 145424 12 codecs.py:619 func <- StreamRecoder
+0 145424 17 codecs.py:817 func <- ?
+0 145424 625 aliases.py:17 func -> ?
+0 145424 54 aliases.py:18 func <- ?
+0 145424 21 __init__.py:43 func -> CodecRegistryError
+0 145424 10 __init__.py:45 func <- CodecRegistryError
+0 145424 19 __init__.py:145 func <- ?
+0 145424 18 __init__.py:69 func -> search_function
+0 145424 12 __init__.py:47 func -> normalize_encoding
+0 145424 16 __init__.py:67 func <- normalize_encoding
+0 145424 120 ascii.py:8 func -> ?
+0 145424 14 ascii.py:13 func -> Codec
+0 145424 10 ascii.py:18 func <- Codec
+0 145424 15 ascii.py:20 func -> StreamWriter
+0 145424 9 ascii.py:21 func <- StreamWriter
+0 145424 13 ascii.py:23 func -> StreamReader
+0 145424 9 ascii.py:24 func <- StreamReader
+0 145424 24 ascii.py:26 func -> StreamConverter
+0 145424 10 ascii.py:29 func <- StreamConverter
+0 145424 14 ascii.py:33 func <- ?
+0 145424 17 ascii.py:33 func -> getregentry
+0 145424 10 ascii.py:35 func <- getregentry
+0 145424 26 __init__.py:142 func <- search_function
+0 145424 367 func_abc.py:3 func -> ?
+0 145424 1722 func_abc.py:14 func -> func_a
+0 145424 1005677 func_abc.py:9 func -> func_b
+0 145424 1000271 func_abc.py:5 func -> func_c
+0 145424 1009739 func_abc.py:7 func <- func_c
+0 145424 25 func_abc.py:12 func <- func_b
+0 145424 9 func_abc.py:17 func <- func_a
+0 145424 9 func_abc.py:19 func <- ?
+^C
+
+As each function is entered, the last column is indented by 2 spaces. This
+shows which function is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The FILE::LINE column shows which line in which file was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt
new file mode 100644
index 000000000000..5ac494bba64d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt
@@ -0,0 +1,487 @@
+The following are examples of py_flowtime.d.
+
+This is a simple script to trace the flow of Python functions. Here it traces
+the example program, Code/Python/func_abc.py
+
+# py_flowtime.d
+ C TIME(us) FILE DELTA(us) -- FUNC
+ 0 3064660319556 site.py 3 -> ?
+ 0 3064660320224 os.py 667 -> ?
+ 0 3064660321335 posixpath.py 1111 -> ?
+ 0 3064660321526 stat.py 190 -> ?
+ 0 3064660321546 stat.py 20 <- ?
+ 0 3064660321576 posixpath.py 29 <- ?
+ 0 3064660321593 os.py 17 -> _get_exports_list
+ 0 3064660321728 os.py 134 <- _get_exports_list
+ 0 3064660321989 UserDict.py 260 -> ?
+ 0 3064660322000 UserDict.py 10 -> UserDict
+ 0 3064660322035 UserDict.py 34 <- UserDict
+ 0 3064660322050 UserDict.py 15 -> IterableUserDict
+ 0 3064660322058 UserDict.py 8 <- IterableUserDict
+ 0 3064660322071 UserDict.py 12 -> DictMixin
+ 0 3064660322247 UserDict.py 176 <- DictMixin
+ 0 3064660322258 UserDict.py 10 <- ?
+ 0 3064660322275 os.py 16 -> _Environ
+ 0 3064660322285 os.py 10 <- _Environ
+ 0 3064660322298 os.py 13 -> __init__
+ 0 3064660322308 UserDict.py 10 -> __init__
+ 0 3064660322319 UserDict.py 10 <- __init__
+ 0 3064660322328 os.py 9 <- __init__
+ 0 3064660322338 os.py 10 -> _exists
+ 0 3064660322946 <string> 607 -> ?
+ 0 3064660322955 <string> 8 <- ?
+ 0 3064660322963 os.py 8 <- _exists
+ 0 3064660322972 os.py 8 -> _exists
+ 0 3064660322996 <string> 23 -> ?
+ 0 3064660323005 <string> 8 <- ?
+ 0 3064660323020 os.py 14 <- _exists
+ 0 3064660323029 os.py 8 -> _exists
+ 0 3064660323051 <string> 22 -> ?
+ 0 3064660323059 <string> 7 <- ?
+ 0 3064660323067 os.py 8 <- _exists
+ 0 3064660323077 os.py 10 -> _exists
+ 0 3064660323098 <string> 21 -> ?
+ 0 3064660323106 <string> 7 <- ?
+ 0 3064660323114 os.py 8 <- _exists
+ 0 3064660323125 os.py 10 -> _exists
+ 0 3064660323146 <string> 21 -> ?
+ 0 3064660323154 <string> 7 <- ?
+ 0 3064660323162 os.py 8 <- _exists
+ 0 3064660323173 os.py 10 -> _exists
+ 0 3064660323194 <string> 21 -> ?
+ 0 3064660323202 <string> 7 <- ?
+ 0 3064660323210 os.py 8 <- _exists
+ 0 3064660323218 os.py 8 -> _exists
+ 0 3064660323239 <string> 21 -> ?
+ 0 3064660323247 <string> 8 <- ?
+ 0 3064660323261 os.py 13 <- _exists
+ 0 3064660323271 os.py 10 -> _exists
+ 0 3064660323293 <string> 21 -> ?
+ 0 3064660323301 <string> 8 <- ?
+ 0 3064660323314 os.py 12 <- _exists
+ 0 3064660323324 os.py 10 -> _exists
+ 0 3064660323345 <string> 21 -> ?
+ 0 3064660323354 <string> 8 <- ?
+ 0 3064660323366 os.py 12 <- _exists
+ 0 3064660323545 copy_reg.py 178 -> ?
+ 0 3064660323726 types.py 180 -> ?
+ 0 3064660323790 types.py 64 -> _C
+ 0 3064660323800 types.py 9 <- _C
+ 0 3064660323834 types.py 33 <- ?
+ 0 3064660323855 copy_reg.py 21 -> pickle
+ 0 3064660323866 copy_reg.py 10 -> constructor
+ 0 3064660323874 copy_reg.py 8 <- constructor
+ 0 3064660323883 copy_reg.py 8 <- pickle
+ 0 3064660323895 copy_reg.py 11 <- ?
+ 0 3064660323909 copy_reg.py 14 -> pickle
+ 0 3064660323919 copy_reg.py 9 -> constructor
+ 0 3064660323927 copy_reg.py 8 <- constructor
+ 0 3064660323936 copy_reg.py 8 <- pickle
+ 0 3064660323946 copy_reg.py 9 -> pickle
+ 0 3064660323955 copy_reg.py 9 -> constructor
+ 0 3064660323963 copy_reg.py 8 <- constructor
+ 0 3064660323972 copy_reg.py 8 <- pickle
+ 0 3064660323981 os.py 9 -> _exists
+ 0 3064660324006 <string> 25 -> ?
+ 0 3064660324015 <string> 8 <- ?
+ 0 3064660324028 os.py 13 <- _exists
+ 0 3064660324037 os.py 8 <- ?
+ 0 3064660324069 site.py 31 -> _Printer
+ 0 3064660324080 site.py 10 <- _Printer
+ 0 3064660324118 site.py 38 -> _Helper
+ 0 3064660324127 site.py 9 <- _Helper
+ 0 3064660324160 site.py 33 -> main
+ 0 3064660324168 site.py 8 -> abs__file__
+ 0 3064660324179 posixpath.py 10 -> abspath
+ 0 3064660324187 posixpath.py 8 -> isabs
+ 0 3064660324197 posixpath.py 9 <- isabs
+ 0 3064660324207 posixpath.py 9 -> normpath
+ 0 3064660324228 posixpath.py 21 <- normpath
+ 0 3064660324238 posixpath.py 9 <- abspath
+ 0 3064660324253 posixpath.py 15 -> abspath
+ 0 3064660324261 posixpath.py 8 -> isabs
+ 0 3064660324270 posixpath.py 8 <- isabs
+ 0 3064660324278 posixpath.py 8 -> normpath
+ 0 3064660324295 posixpath.py 16 <- normpath
+ 0 3064660324304 posixpath.py 9 <- abspath
+ 0 3064660324314 posixpath.py 9 -> abspath
+ 0 3064660324322 posixpath.py 8 -> isabs
+ 0 3064660324331 posixpath.py 8 <- isabs
+ 0 3064660324339 posixpath.py 8 -> normpath
+ 0 3064660324355 posixpath.py 15 <- normpath
+ 0 3064660324364 posixpath.py 8 <- abspath
+ 0 3064660324374 posixpath.py 9 -> abspath
+ 0 3064660324382 posixpath.py 8 -> isabs
+ 0 3064660324391 posixpath.py 8 <- isabs
+ 0 3064660324399 posixpath.py 8 -> normpath
+ 0 3064660324415 posixpath.py 15 <- normpath
+ 0 3064660324424 posixpath.py 8 <- abspath
+ 0 3064660324439 posixpath.py 14 -> abspath
+ 0 3064660324447 posixpath.py 8 -> isabs
+ 0 3064660324456 posixpath.py 8 <- isabs
+ 0 3064660324464 posixpath.py 8 -> normpath
+ 0 3064660324480 posixpath.py 15 <- normpath
+ 0 3064660324489 posixpath.py 8 <- abspath
+ 0 3064660324511 posixpath.py 21 -> abspath
+ 0 3064660324519 posixpath.py 8 -> isabs
+ 0 3064660324528 posixpath.py 8 <- isabs
+ 0 3064660324536 posixpath.py 8 -> normpath
+ 0 3064660324552 posixpath.py 15 <- normpath
+ 0 3064660324561 posixpath.py 9 <- abspath
+ 0 3064660324579 posixpath.py 17 -> abspath
+ 0 3064660324588 posixpath.py 8 -> isabs
+ 0 3064660324596 posixpath.py 8 <- isabs
+ 0 3064660324605 posixpath.py 8 -> normpath
+ 0 3064660324621 posixpath.py 15 <- normpath
+ 0 3064660324630 posixpath.py 8 <- abspath
+ 0 3064660324639 posixpath.py 9 -> abspath
+ 0 3064660324648 posixpath.py 8 -> isabs
+ 0 3064660324656 posixpath.py 8 <- isabs
+ 0 3064660324665 posixpath.py 8 -> normpath
+ 0 3064660324681 posixpath.py 15 <- normpath
+ 0 3064660324690 posixpath.py 9 <- abspath
+ 0 3064660324701 site.py 11 <- abs__file__
+ 0 3064660324709 site.py 8 -> removeduppaths
+ 0 3064660324719 site.py 10 -> makepath
+ 0 3064660324729 posixpath.py 9 -> join
+ 0 3064660324738 posixpath.py 8 <- join
+ 0 3064660324746 posixpath.py 8 -> abspath
+ 0 3064660324755 posixpath.py 8 -> isabs
+ 0 3064660324764 posixpath.py 8 <- isabs
+ 0 3064660324773 posixpath.py 9 -> normpath
+ 0 3064660324789 posixpath.py 15 <- normpath
+ 0 3064660324797 posixpath.py 8 <- abspath
+ 0 3064660324806 posixpath.py 8 -> normcase
+ 0 3064660324814 posixpath.py 8 <- normcase
+ 0 3064660324823 site.py 8 <- makepath
+ 0 3064660324864 site.py 40 -> makepath
+ 0 3064660324873 posixpath.py 8 -> join
+ 0 3064660324881 posixpath.py 8 <- join
+ 0 3064660324889 posixpath.py 8 -> abspath
+ 0 3064660324898 posixpath.py 8 -> isabs
+ 0 3064660324906 posixpath.py 8 <- isabs
+ 0 3064660324915 posixpath.py 8 -> normpath
+ 0 3064660324931 posixpath.py 15 <- normpath
+ 0 3064660324939 posixpath.py 8 <- abspath
+ 0 3064660324948 posixpath.py 8 -> normcase
+ 0 3064660324957 posixpath.py 8 <- normcase
+ 0 3064660324965 site.py 8 <- makepath
+ 0 3064660324974 site.py 9 -> makepath
+ 0 3064660324983 posixpath.py 8 -> join
+ 0 3064660324991 posixpath.py 8 <- join
+ 0 3064660325000 posixpath.py 8 -> abspath
+ 0 3064660325008 posixpath.py 8 -> isabs
+ 0 3064660325017 posixpath.py 8 <- isabs
+ 0 3064660325025 posixpath.py 8 -> normpath
+ 0 3064660325041 posixpath.py 15 <- normpath
+ 0 3064660325050 posixpath.py 8 <- abspath
+ 0 3064660325059 posixpath.py 8 -> normcase
+ 0 3064660325067 posixpath.py 8 <- normcase
+ 0 3064660325075 site.py 8 <- makepath
+ 0 3064660325084 site.py 9 -> makepath
+ 0 3064660325093 posixpath.py 8 -> join
+ 0 3064660325102 posixpath.py 8 <- join
+ 0 3064660325110 posixpath.py 8 -> abspath
+ 0 3064660325118 posixpath.py 8 -> isabs
+ 0 3064660325127 posixpath.py 8 <- isabs
+ 0 3064660325135 posixpath.py 8 -> normpath
+ 0 3064660325151 posixpath.py 15 <- normpath
+ 0 3064660325160 posixpath.py 8 <- abspath
+ 0 3064660325169 posixpath.py 8 -> normcase
+ 0 3064660325177 posixpath.py 7 <- normcase
+ 0 3064660325185 site.py 8 <- makepath
+ 0 3064660325194 site.py 9 -> makepath
+ 0 3064660325203 posixpath.py 8 -> join
+ 0 3064660325212 posixpath.py 8 <- join
+ 0 3064660325220 posixpath.py 8 -> abspath
+ 0 3064660325228 posixpath.py 8 -> isabs
+ 0 3064660325237 posixpath.py 8 <- isabs
+ 0 3064660325245 posixpath.py 8 -> normpath
+ 0 3064660325261 posixpath.py 15 <- normpath
+ 0 3064660325270 posixpath.py 8 <- abspath
+ 0 3064660325279 posixpath.py 8 -> normcase
+ 0 3064660325287 posixpath.py 8 <- normcase
+ 0 3064660325295 site.py 8 <- makepath
+ 0 3064660325307 site.py 11 <- removeduppaths
+ 0 3064660325317 posixpath.py 10 -> basename
+ 0 3064660325327 posixpath.py 9 -> split
+ 0 3064660325340 posixpath.py 13 <- split
+ 0 3064660325349 posixpath.py 8 <- basename
+ 0 3064660325358 site.py 8 -> addsitepackages
+ 0 3064660325370 posixpath.py 12 -> join
+ 0 3064660325385 posixpath.py 14 <- join
+ 0 3064660325394 posixpath.py 9 -> join
+ 0 3064660325406 posixpath.py 11 <- join
+ 0 3064660325416 posixpath.py 10 -> isdir
+ 0 3064660325447 stat.py 31 -> S_ISDIR
+ 0 3064660325456 stat.py 8 -> S_IFMT
+ 0 3064660325464 stat.py 8 <- S_IFMT
+ 0 3064660325473 stat.py 8 <- S_ISDIR
+ 0 3064660325481 posixpath.py 7 <- isdir
+ 0 3064660325491 site.py 10 -> addsitedir
+ 0 3064660325500 site.py 8 -> makepath
+ 0 3064660325508 posixpath.py 8 -> join
+ 0 3064660325517 posixpath.py 8 <- join
+ 0 3064660325525 posixpath.py 8 -> abspath
+ 0 3064660325534 posixpath.py 8 -> isabs
+ 0 3064660325543 posixpath.py 8 <- isabs
+ 0 3064660325552 posixpath.py 9 -> normpath
+ 0 3064660325569 posixpath.py 16 <- normpath
+ 0 3064660325578 posixpath.py 8 <- abspath
+ 0 3064660325587 posixpath.py 8 -> normcase
+ 0 3064660325595 posixpath.py 8 <- normcase
+ 0 3064660325604 site.py 8 <- makepath
+ 0 3064660325823 site.py 219 -> addpackage
+ 0 3064660325834 posixpath.py 10 -> join
+ 0 3064660325844 posixpath.py 10 <- join
+ 0 3064660325972 <string> 127 -> ?
+ 0 3064660325985 site.py 13 -> addsitedir
+ 0 3064660325994 site.py 8 -> _init_pathinfo
+ 0 3064660326004 posixpath.py 10 -> isdir
+ 0 3064660326086 posixpath.py 81 <- isdir
+ 0 3064660326097 posixpath.py 10 -> isdir
+ 0 3064660326118 stat.py 21 -> S_ISDIR
+ 0 3064660326127 stat.py 9 -> S_IFMT
+ 0 3064660326136 stat.py 8 <- S_IFMT
+ 0 3064660326144 stat.py 8 <- S_ISDIR
+ 0 3064660326152 posixpath.py 7 <- isdir
+ 0 3064660326161 site.py 9 -> makepath
+ 0 3064660326171 posixpath.py 9 -> join
+ 0 3064660326179 posixpath.py 8 <- join
+ 0 3064660326188 posixpath.py 8 -> abspath
+ 0 3064660326196 posixpath.py 8 -> isabs
+ 0 3064660326205 posixpath.py 9 <- isabs
+ 0 3064660326215 posixpath.py 9 -> normpath
+ 0 3064660326231 posixpath.py 16 <- normpath
+ 0 3064660326240 posixpath.py 8 <- abspath
+ 0 3064660326249 posixpath.py 9 -> normcase
+ 0 3064660326258 posixpath.py 8 <- normcase
+ 0 3064660326266 site.py 8 <- makepath
+ 0 3064660326276 posixpath.py 9 -> isdir
+ 0 3064660326298 stat.py 22 -> S_ISDIR
+ 0 3064660326306 stat.py 8 -> S_IFMT
+ 0 3064660326314 stat.py 7 <- S_IFMT
+ 0 3064660326322 stat.py 8 <- S_ISDIR
+ 0 3064660326330 posixpath.py 8 <- isdir
+ 0 3064660326340 site.py 9 -> makepath
+ 0 3064660326349 posixpath.py 8 -> join
+ 0 3064660326357 posixpath.py 8 <- join
+ 0 3064660326382 posixpath.py 24 -> abspath
+ 0 3064660326390 posixpath.py 8 -> isabs
+ 0 3064660326399 posixpath.py 8 <- isabs
+ 0 3064660326408 posixpath.py 8 -> normpath
+ 0 3064660326425 posixpath.py 16 <- normpath
+ 0 3064660326434 posixpath.py 9 <- abspath
+ 0 3064660326443 posixpath.py 9 -> normcase
+ 0 3064660326451 posixpath.py 8 <- normcase
+ 0 3064660326460 site.py 8 <- makepath
+ 0 3064660326469 posixpath.py 9 -> isdir
+ 0 3064660326493 stat.py 23 -> S_ISDIR
+ 0 3064660326501 stat.py 8 -> S_IFMT
+ 0 3064660326509 stat.py 7 <- S_IFMT
+ 0 3064660326517 stat.py 8 <- S_ISDIR
+ 0 3064660326525 posixpath.py 7 <- isdir
+ 0 3064660326534 site.py 9 -> makepath
+ 0 3064660326542 posixpath.py 8 -> join
+ 0 3064660326551 posixpath.py 8 <- join
+ 0 3064660326559 posixpath.py 8 -> abspath
+ 0 3064660326568 posixpath.py 8 -> isabs
+ 0 3064660326576 posixpath.py 8 <- isabs
+ 0 3064660326585 posixpath.py 8 -> normpath
+ 0 3064660326602 posixpath.py 16 <- normpath
+ 0 3064660326610 posixpath.py 8 <- abspath
+ 0 3064660326619 posixpath.py 8 -> normcase
+ 0 3064660326628 posixpath.py 8 <- normcase
+ 0 3064660326636 site.py 8 <- makepath
+ 0 3064660326646 posixpath.py 9 -> isdir
+ 0 3064660326668 stat.py 22 -> S_ISDIR
+ 0 3064660326676 stat.py 8 -> S_IFMT
+ 0 3064660326684 stat.py 7 <- S_IFMT
+ 0 3064660326692 stat.py 8 <- S_ISDIR
+ 0 3064660326700 posixpath.py 8 <- isdir
+ 0 3064660326709 site.py 9 -> makepath
+ 0 3064660326718 posixpath.py 8 -> join
+ 0 3064660326726 posixpath.py 8 <- join
+ 0 3064660326735 posixpath.py 8 -> abspath
+ 0 3064660326743 posixpath.py 8 -> isabs
+ 0 3064660326752 posixpath.py 8 <- isabs
+ 0 3064660326760 posixpath.py 8 -> normpath
+ 0 3064660326777 posixpath.py 16 <- normpath
+ 0 3064660326786 posixpath.py 9 <- abspath
+ 0 3064660326795 posixpath.py 9 -> normcase
+ 0 3064660326803 posixpath.py 8 <- normcase
+ 0 3064660326811 site.py 8 <- makepath
+ 0 3064660326821 posixpath.py 9 -> isdir
+ 0 3064660326842 stat.py 21 -> S_ISDIR
+ 0 3064660326850 stat.py 8 -> S_IFMT
+ 0 3064660326858 stat.py 7 <- S_IFMT
+ 0 3064660326866 stat.py 8 <- S_ISDIR
+ 0 3064660326874 posixpath.py 7 <- isdir
+ 0 3064660326883 site.py 9 -> makepath
+ 0 3064660326892 posixpath.py 8 -> join
+ 0 3064660326901 posixpath.py 8 <- join
+ 0 3064660326909 posixpath.py 8 -> abspath
+ 0 3064660326917 posixpath.py 8 -> isabs
+ 0 3064660326926 posixpath.py 8 <- isabs
+ 0 3064660326935 posixpath.py 8 -> normpath
+ 0 3064660326951 posixpath.py 16 <- normpath
+ 0 3064660326960 posixpath.py 8 <- abspath
+ 0 3064660326970 posixpath.py 9 -> normcase
+ 0 3064660326978 posixpath.py 8 <- normcase
+ 0 3064660326986 site.py 8 <- makepath
+ 0 3064660326995 site.py 8 <- _init_pathinfo
+ 0 3064660327004 site.py 8 -> makepath
+ 0 3064660327013 posixpath.py 9 -> join
+ 0 3064660327021 posixpath.py 8 <- join
+ 0 3064660327030 posixpath.py 8 -> abspath
+ 0 3064660327038 posixpath.py 8 -> isabs
+ 0 3064660327047 posixpath.py 8 <- isabs
+ 0 3064660327056 posixpath.py 8 -> normpath
+ 0 3064660327072 posixpath.py 15 <- normpath
+ 0 3064660327081 posixpath.py 9 <- abspath
+ 0 3064660327090 posixpath.py 8 -> normcase
+ 0 3064660327098 posixpath.py 8 <- normcase
+ 0 3064660327106 site.py 8 <- makepath
+ 0 3064660327278 site.py 171 -> addpackage
+ 0 3064660327289 posixpath.py 10 -> join
+ 0 3064660327300 posixpath.py 10 <- join
+ 0 3064660327372 site.py 72 -> makepath
+ 0 3064660327382 posixpath.py 10 -> join
+ 0 3064660327393 posixpath.py 10 <- join
+ 0 3064660327402 posixpath.py 9 -> abspath
+ 0 3064660327410 posixpath.py 8 -> isabs
+ 0 3064660327419 posixpath.py 8 <- isabs
+ 0 3064660327427 posixpath.py 8 -> normpath
+ 0 3064660327445 posixpath.py 17 <- normpath
+ 0 3064660327454 posixpath.py 9 <- abspath
+ 0 3064660327463 posixpath.py 9 -> normcase
+ 0 3064660327472 posixpath.py 8 <- normcase
+ 0 3064660327480 site.py 8 <- makepath
+ 0 3064660327489 posixpath.py 9 -> exists
+ 0 3064660327515 posixpath.py 26 <- exists
+ 0 3064660327567 site.py 51 <- addpackage
+ 0 3064660327588 site.py 20 -> addpackage
+ 0 3064660327597 posixpath.py 8 -> join
+ 0 3064660327607 posixpath.py 10 <- join
+ 0 3064660327654 site.py 46 -> makepath
+ 0 3064660327663 posixpath.py 9 -> join
+ 0 3064660327710 posixpath.py 46 <- join
+ 0 3064660327720 posixpath.py 9 -> abspath
+ 0 3064660327728 posixpath.py 8 -> isabs
+ 0 3064660327737 posixpath.py 9 <- isabs
+ 0 3064660327746 posixpath.py 8 -> normpath
+ 0 3064660327764 posixpath.py 17 <- normpath
+ 0 3064660327773 posixpath.py 9 <- abspath
+ 0 3064660327782 posixpath.py 9 -> normcase
+ 0 3064660327791 posixpath.py 8 <- normcase
+ 0 3064660327799 site.py 8 <- makepath
+ 0 3064660327808 posixpath.py 9 -> exists
+ 0 3064660327833 posixpath.py 24 <- exists
+ 0 3064660327864 site.py 31 <- addpackage
+ 0 3064660327878 site.py 13 <- addsitedir
+ 0 3064660327887 <string> 9 <- ?
+ 0 3064660327903 site.py 15 <- addpackage
+ 0 3064660327913 site.py 9 <- addsitedir
+ 0 3064660327923 posixpath.py 10 -> isdir
+ 0 3064660327955 posixpath.py 32 <- isdir
+ 0 3064660327965 site.py 9 <- addsitepackages
+ 0 3064660327976 site.py 10 -> setquit
+ 0 3064660327986 site.py 10 <- setquit
+ 0 3064660327995 site.py 8 -> setcopyright
+ 0 3064660328005 site.py 10 -> __init__
+ 0 3064660328015 site.py 9 <- __init__
+ 0 3064660328026 site.py 11 -> __init__
+ 0 3064660328035 site.py 8 <- __init__
+ 0 3064660328045 posixpath.py 9 -> dirname
+ 0 3064660328053 posixpath.py 8 -> split
+ 0 3064660328066 posixpath.py 13 <- split
+ 0 3064660328075 posixpath.py 8 <- dirname
+ 0 3064660328089 posixpath.py 13 -> join
+ 0 3064660328099 posixpath.py 10 <- join
+ 0 3064660328109 site.py 10 -> __init__
+ 0 3064660328118 site.py 9 <- __init__
+ 0 3064660328127 site.py 8 <- setcopyright
+ 0 3064660328136 site.py 8 -> sethelper
+ 0 3064660328145 site.py 8 <- sethelper
+ 0 3064660328153 site.py 8 -> aliasmbcs
+ 0 3064660328161 site.py 8 <- aliasmbcs
+ 0 3064660328170 site.py 8 -> setencoding
+ 0 3064660328178 site.py 7 <- setencoding
+ 0 3064660328186 site.py 8 -> execsitecustomize
+ 0 3064660328736 site.py 549 <- execsitecustomize
+ 0 3064660328748 site.py 12 <- main
+ 0 3064660328758 site.py 9 <- ?
+ 0 3064660329029 warnings.py 270 -> ?
+ 0 3064660329184 linecache.py 155 -> ?
+ 0 3064660329201 linecache.py 16 <- ?
+ 0 3064660329220 warnings.py 18 -> _OptionError
+ 0 3064660329228 warnings.py 8 <- _OptionError
+ 0 3064660329246 warnings.py 17 -> _processoptions
+ 0 3064660329255 warnings.py 8 <- _processoptions
+ 0 3064660329266 warnings.py 10 -> simplefilter
+ 0 3064660329278 warnings.py 12 <- simplefilter
+ 0 3064660329288 warnings.py 9 -> simplefilter
+ 0 3064660329298 warnings.py 10 <- simplefilter
+ 0 3064660329307 warnings.py 8 <- ?
+ 0 3064660329533 __init__.py 226 -> ?
+ 0 3064660330090 codecs.py 557 -> ?
+ 0 3064660330148 codecs.py 57 -> Codec
+ 0 3064660330158 codecs.py 10 <- Codec
+ 0 3064660330171 codecs.py 13 -> StreamWriter
+ 0 3064660330182 codecs.py 10 <- StreamWriter
+ 0 3064660330194 codecs.py 11 -> StreamReader
+ 0 3064660330206 codecs.py 12 <- StreamReader
+ 0 3064660330217 codecs.py 11 -> StreamReaderWriter
+ 0 3064660330229 codecs.py 11 <- StreamReaderWriter
+ 0 3064660330239 codecs.py 10 -> StreamRecoder
+ 0 3064660330251 codecs.py 11 <- StreamRecoder
+ 0 3064660330267 codecs.py 16 <- ?
+ 0 3064660331439 aliases.py 1171 -> ?
+ 0 3064660331500 aliases.py 61 <- ?
+ 0 3064660331526 __init__.py 25 -> CodecRegistryError
+ 0 3064660331535 __init__.py 9 <- CodecRegistryError
+ 0 3064660331557 __init__.py 21 <- ?
+ 0 3064660331577 __init__.py 20 -> search_function
+ 0 3064660331590 __init__.py 12 -> normalize_encoding
+ 0 3064660331605 __init__.py 15 <- normalize_encoding
+ 0 3064660331728 ascii.py 122 -> ?
+ 0 3064660331742 ascii.py 13 -> Codec
+ 0 3064660331752 ascii.py 9 <- Codec
+ 0 3064660331766 ascii.py 13 -> StreamWriter
+ 0 3064660331774 ascii.py 8 <- StreamWriter
+ 0 3064660331787 ascii.py 13 -> StreamReader
+ 0 3064660331796 ascii.py 8 <- StreamReader
+ 0 3064660331819 ascii.py 23 -> StreamConverter
+ 0 3064660331829 ascii.py 9 <- StreamConverter
+ 0 3064660331842 ascii.py 13 <- ?
+ 0 3064660331860 ascii.py 17 -> getregentry
+ 0 3064660331869 ascii.py 9 <- getregentry
+ 0 3064660331897 __init__.py 27 <- search_function
+ 0 3064660332263 func_abc.py 366 -> ?
+ 0 3064660333735 func_abc.py 1471 -> func_a
+ 0 3064661340597 func_abc.py 1006862 -> func_b
+ 0 3064662350504 func_abc.py 1009906 -> func_c
+ 0 3064663350678 func_abc.py 1000174 <- func_c
+ 0 3064663350700 func_abc.py 22 <- func_b
+ 0 3064663350709 func_abc.py 8 <- func_a
+ 0 3064663350717 func_abc.py 8 <- ?
+^C
+
+The fifth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - first a whole lot of
+pre-processing, then working through the func_abc.py program.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the third last line of data output
+shows the time elapsing between func_c returning and func_b returning as 22
+microseconds.
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt
new file mode 100644
index 000000000000..0ac87803fd8d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt
@@ -0,0 +1,89 @@
+The following are examples of py_funccalls.d.
+
+This is a simple script to count executed PHP functions. Here it traces
+an example program, Code/Python/func_abc.py
+
+# py_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ FILE FUNC CALLS
+ UserDict.py ? 1
+ UserDict.py DictMixin 1
+ UserDict.py IterableUserDict 1
+ UserDict.py UserDict 1
+ UserDict.py __init__ 1
+ __init__.py ? 1
+ __init__.py CodecRegistryError 1
+ __init__.py normalize_encoding 1
+ __init__.py search_function 1
+ aliases.py ? 1
+ ascii.py ? 1
+ ascii.py Codec 1
+ ascii.py StreamConverter 1
+ ascii.py StreamReader 1
+ ascii.py StreamWriter 1
+ ascii.py getregentry 1
+ codecs.py ? 1
+ codecs.py Codec 1
+ codecs.py StreamReader 1
+ codecs.py StreamReaderWriter 1
+ codecs.py StreamRecoder 1
+ codecs.py StreamWriter 1
+ copy_reg.py ? 1
+ func_abc.py ? 1
+ func_abc.py func_a 1
+ func_abc.py func_b 1
+ func_abc.py func_c 1
+ linecache.py ? 1
+ os.py ? 1
+ os.py _Environ 1
+ os.py __init__ 1
+ os.py _get_exports_list 1
+ posixpath.py ? 1
+ posixpath.py basename 1
+ posixpath.py dirname 1
+ site.py ? 1
+ site.py _Helper 1
+ site.py _Printer 1
+ site.py _init_pathinfo 1
+ site.py abs__file__ 1
+ site.py addsitepackages 1
+ site.py aliasmbcs 1
+ site.py execsitecustomize 1
+ site.py main 1
+ site.py removeduppaths 1
+ site.py setcopyright 1
+ site.py setencoding 1
+ site.py sethelper 1
+ site.py setquit 1
+ stat.py ? 1
+ types.py ? 1
+ types.py _C 1
+ warnings.py ? 1
+ warnings.py _OptionError 1
+ warnings.py _processoptions 1
+ posixpath.py exists 2
+ posixpath.py split 2
+ site.py addsitedir 2
+ warnings.py simplefilter 2
+ copy_reg.py constructor 3
+ copy_reg.py pickle 3
+ site.py __init__ 3
+ site.py addpackage 3
+ stat.py S_IFMT 6
+ stat.py S_ISDIR 6
+ posixpath.py isdir 8
+ os.py _exists 10
+ <string> ? 11
+ posixpath.py normcase 14
+ site.py makepath 14
+ posixpath.py join 20
+ posixpath.py abspath 22
+ posixpath.py isabs 22
+ posixpath.py normpath 22
+
+It tells you how many times each function was called, and which file this
+function was associated with. In this case you can see most of the function
+calls come from functions within the posixpath.py library.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt
new file mode 100644
index 000000000000..be8fc25a484f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt
@@ -0,0 +1,508 @@
+The following are examples of py_malloc.d
+
+This is an experimental script to identify who is calling malloc() for memory
+allocation, and to print distribution plots of the requested bytes. Here you
+can see it running on Code/Python/func_abc.py
+
+# py_malloc.d -c ./func_abc.py
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Python malloc byte distributions by engine caller,
+
+ libpython2.4.so.1.0`_PyUnicode_New, total bytes = 2
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ libpython2.4.so.1.0`find_key, total bytes = 16
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ libpython2.4.so.1.0`PyInterpreterState_New, total bytes = 36
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ libpython2.4.so.1.0`_PyImport_Init, total bytes = 60
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ libpython2.4.so.1.0`PyThreadState_New, total bytes = 84
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ libpython2.4.so.1.0`pmerge, total bytes = 132
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@ 1
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 16
+ 16 | 0
+
+ libpython2.4.so.1.0`PyThread_allocate_lock, total bytes = 144
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 64 | 0
+
+ libpython2.4.so.1.0`convertsimple, total bytes = 210
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 64 | 0
+
+ libc.so.1`strdup, total bytes = 451
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@ 1
+ 4 |@@@ 1
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 8
+ 32 |@@@@@@@@@@@@@@@ 6
+ 64 | 0
+
+ libpython2.4.so.1.0`PyList_New, total bytes = 528
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@ 22
+ 8 |@@@@@@@@@@@@@@@@@ 21
+ 16 |@@@@@ 6
+ 32 | 0
+ 64 | 0
+ 128 |@ 1
+ 256 | 0
+
+ libpython2.4.so.1.0`PyTokenizer_FromFile, total bytes = 1024
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ libpython2.4.so.1.0`_PyExc_Init, total bytes = 1058
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 40
+ 32 |@@ 2
+ 64 | 0
+
+ libpython2.4.so.1.0`tok_new, total bytes = 1832
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 1024 | 0
+
+ libpython2.4.so.1.0`fill_free_list, total bytes = 1976
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 1024 | 0
+
+ libpython2.4.so.1.0`PyParser_New, total bytes = 12024
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8192 | 0
+
+ libpython2.4.so.1.0`PyObject_Malloc, total bytes = 35152
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@ 20
+ 512 |@@@@@@@ 7
+ 1024 |@@@@@@@@@@ 11
+ 2048 |@@@@ 4
+ 4096 | 0
+
+ libpython2.4.so.1.0`PyMem_Malloc, total bytes = 50683
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@ 2
+ 16 |@@@@@@@ 4
+ 32 |@@ 1
+ 64 |@@@@@@@@@@@@@ 8
+ 128 |@@@@@ 3
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@@@@@@@@@ 6
+ 16384 | 0
+
+ libc.so.1`_findbuf, total bytes = 51800
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@ 4
+ 1024 |@@@@ 1
+ 2048 | 0
+ 4096 |@@@@@@@ 2
+ 8192 |@@@@@@@@@@@@@@@ 4
+ 16384 | 0
+
+ libpython2.4.so.1.0`dictresize, total bytes = 178752
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@ 1
+ 256 |@@@@@@@@@@@@@@@@@@@@@ 29
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@ 19
+ 2048 |@ 1
+ 4096 |@ 2
+ 8192 | 0
+ 16384 |@ 1
+ 32768 | 0
+ 65536 |@ 1
+ 131072 | 0
+
+ libpython2.4.so.1.0`new_arena, total bytes = 262208
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 0
+ 32768 | 0
+ 65536 | 0
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+
+Python malloc byte distributions by Python file and function,
+
+ site.py, addsitepackages, bytes total = 4
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ site.py, abs__file__, bytes total = 60
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ posixpath.py, exists, bytes total = 83
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ stat.py, S_ISDIR, bytes total = 364
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, _init_pathinfo, bytes total = 380
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ UserDict.py, DictMixin, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ codecs.py, StreamReader, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ codecs.py, StreamReaderWriter, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ codecs.py, StreamRecoder, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ codecs.py, StreamWriter, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ os.py, _Environ, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, _Printer, bytes total = 384
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ site.py, addsitedir, bytes total = 388
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ linecache.py, ?, bytes total = 396
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ posixpath.py, isdir, bytes total = 608
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@ 2
+ 4 | 0
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@ 7
+ 32 |@@@@@@@ 2
+ 64 | 0
+ 128 | 0
+ 256 |@@@ 1
+ 512 | 0
+
+ os.py, _get_exports_list, bytes total = 612
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ posixpath.py, abspath, bytes total = 728
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 512 | 0
+
+ site.py, execsitecustomize, bytes total = 790
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9
+ 64 | 0
+ 128 | 0
+ 256 |@@@@ 1
+ 512 | 0
+
+ UserDict.py, UserDict, bytes total = 1920
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ stat.py, ?, bytes total = 1920
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ types.py, ?, bytes total = 2680
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@ 1
+ 8 |@@@@@@@@@@@ 2
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@ 3
+ 512 | 0
+ 1024 |@@@@@@ 1
+ 2048 | 0
+
+ posixpath.py, ?, bytes total = 3306
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@ 2
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@ 1
+ 4096 | 0
+
+ copy_reg.py, ?, bytes total = 3547
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@ 1
+ 512 |@@@@@@@@ 1
+ 1024 | 0
+ 2048 |@@@@@@@@ 1
+ 4096 | 0
+
+ warnings.py, ?, bytes total = 3924
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@ 1
+ 32 |@@@@@@@@ 1
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@ 2
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@ 1
+ 4096 | 0
+
+ func_abc.py, func_a, bytes total = 5100
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ codecs.py, ?, bytes total = 5612
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@ 1
+ 128 |@@@@@@ 1
+ 256 |@@@@@@@@@@@ 2
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@ 3
+ 2048 | 0
+
+ aliases.py, ?, bytes total = 8064
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@ 1
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ func_abc.py, ?, bytes total = 16105
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@ 1
+ 8 |@@@@@ 2
+ 16 |@@@@@@@@@ 4
+ 32 |@@@@@ 2
+ 64 | 0
+ 128 |@@ 1
+ 256 |@@@@@@@ 3
+ 512 |@@ 1
+ 1024 |@@@@@ 2
+ 2048 | 0
+ 4096 | 0
+ 8192 |@@ 1
+ 16384 | 0
+
+ os.py, ?, bytes total = 58957
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@ 3
+ 8 |@@@@@ 6
+ 16 |@ 1
+ 32 |@@ 2
+ 64 | 0
+ 128 |@ 1
+ 256 |@@@@@@@@@@@@@@@@@@ 23
+ 512 |@@ 3
+ 1024 |@@@@@ 7
+ 2048 | 0
+ 4096 |@@@ 4
+ 8192 |@ 1
+ 16384 | 0
+
+ site.py, ?, bytes total = 62589
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@ 2
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 20
+ 512 |@ 1
+ 1024 |@@@ 2
+ 2048 |@ 1
+ 4096 | 0
+ 8192 | 0
+ 16384 |@@@ 2
+ 32768 | 0
+
+ __init__.py, ?, bytes total = 62593
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@ 1
+ 2 | 0
+ 4 | 0
+ 8 | 0
+ 16 |@@@ 2
+ 32 |@@ 1
+ 64 | 0
+ 128 | 0
+ 256 |@@@@@@@@@@@ 7
+ 512 |@@@@@@@@@@@@@@@@ 10
+ 1024 |@@@ 2
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 |@@@ 2
+ 32768 | 0
+
+ posixpath.py, join, bytes total = 262144
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+ os.py, _exists, bytes total = 362768
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@ 10
+ 8 |@ 10
+ 16 |@@ 20
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 |@ 7
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 447
+ 1024 |@@ 20
+ 2048 | 0
+ 4096 |@ 10
+ 8192 | 0
+
+
+The results are divided into two sections. If a malloc() occurred while in a
+Python function, then that function is identified as responsible; and the
+results will appear in the second section - Python malloc byte distributions
+by Python file and function.
+
+Otherwise the caller of malloc() is identified as responsible - which will be
+a function from the Python engine, and these are noted in the first section -
+Python malloc byte distributions by engine caller.
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt
new file mode 100644
index 000000000000..a466737f34b2
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt
@@ -0,0 +1,314 @@
+Following are examples of running py_mallocstk.d. This traces malloc() from
+Python, printing byte distributions by user stack trace.
+
+Here we see the script runnin on the program Code/Python/func_abc.py
+
+# py_mallocstk.d -c ./func_abc.py
+
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Python malloc byte distributions by stack trace,
+
+
+
+ libc.so.1`malloc
+ libpython2.4.so.1.0`r_object+0x52f
+ libpython2.4.so.1.0`r_object+0x491
+ libpython2.4.so.1.0`r_object+0xd3
+ libpython2.4.so.1.0`r_object+0x491
+ libpython2.4.so.1.0`r_object+0xd3
+ libpython2.4.so.1.0`r_object+0x491
+ libpython2.4.so.1.0`r_object+0xd3
+ libpython2.4.so.1.0`PyMarshal_ReadObjectFromString+0x36
+ libpython2.4.so.1.0`PyMarshal_ReadLastObjectFromFile+0x6a
+ libpython2.4.so.1.0`read_compiled_module+0xf
+ libpython2.4.so.1.0`load_source_module+0x63
+ libpython2.4.so.1.0`load_module+0xac
+ libpython2.4.so.1.0`import_submodule+0xfb
+ libpython2.4.so.1.0`load_next+0xee
+ libpython2.4.so.1.0`import_module_ex+0x48
+ libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+ libpython2.4.so.1.0`builtin___import__+0x4e
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`PyObject_Call+0x1d
+ libpython2.4.so.1.0`PyEval_CallObjectWithKeywords+0xb8
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xd3c
+ [ /usr/lib/python2.4/encodings/__init__.py:28 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+ libpython2.4.so.1.0`load_source_module+0xe6
+ libpython2.4.so.1.0`load_module+0xac
+ libpython2.4.so.1.0`load_package+0xef
+ libpython2.4.so.1.0`load_module+0x6a
+ libpython2.4.so.1.0`import_submodule+0xfb
+ libpython2.4.so.1.0`load_next+0xa2
+ libpython2.4.so.1.0`import_module_ex+0x48
+ libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+ libpython2.4.so.1.0`_PyCodecRegistry_Init+0xce
+ libpython2.4.so.1.0`_PyCodec_Lookup+0x2a
+ libpython2.4.so.1.0`PyCodec_Encoder+0xf
+ libpython2.4.so.1.0`Py_InitializeEx+0x257
+ libpython2.4.so.1.0`Py_Initialize+0xd
+ libpython2.4.so.1.0`Py_Main+0x4db
+ python`main+0x11
+ python`_start+0x7a
+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+
+ libc.so.1`malloc
+ libpython2.4.so.1.0`_PyUnicode_New+0xb2
+ libpython2.4.so.1.0`_PyUnicodeUCS2_Init+0x19
+ libpython2.4.so.1.0`Py_InitializeEx+0x11c
+ libpython2.4.so.1.0`Py_Initialize+0xd
+ libpython2.4.so.1.0`Py_Main+0x4db
+ python`main+0x11
+ python`_start+0x7a
+
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+
+ libc.so.1`malloc
+ libc.so.1`_real_gettext_u+0x81
+ libc.so.1`dgettext+0x5e
+ libc.so.1`strerror+0x40
+ libpython2.4.so.1.0`PyErr_SetFromErrnoWithFilenameObject+0x2d
+ libpython2.4.so.1.0`PyErr_SetFromErrnoWithFilename+0x27
+ libpython2.4.so.1.0`posix_error_with_allocated_filename+0x17
+ libpython2.4.so.1.0`posix_do_stat+0x21f
+ libpython2.4.so.1.0`posix_stat+0x1f
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`call_function+0x406
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/posixpath.py:195 (isdir) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:202 (addsitepackages) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:382 (main) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:397 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+ libpython2.4.so.1.0`load_source_module+0xe6
+ libpython2.4.so.1.0`load_module+0xac
+ libpython2.4.so.1.0`import_submodule+0xfb
+ libpython2.4.so.1.0`load_next+0xa2
+ libpython2.4.so.1.0`import_module_ex+0x48
+ libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+ libpython2.4.so.1.0`builtin___import__+0x4e
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`PyObject_Call+0x1d
+ libpython2.4.so.1.0`PyObject_CallFunction+0x90
+ libpython2.4.so.1.0`PyImport_Import+0x163
+ libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+ libpython2.4.so.1.0`initsite+0x10
+ libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+ libpython2.4.so.1.0`Py_Initialize+0xd
+ libpython2.4.so.1.0`Py_Main+0x4db
+ python`main+0x11
+ python`_start+0x7a
+
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+[... around 17000 lines truncated ...]
+
+
+ libc.so.1`malloc
+ libpython2.4.so.1.0`PyObject_Malloc+0x126
+ libpython2.4.so.1.0`fixstate+0x26
+ libpython2.4.so.1.0`fixdfa+0x2a
+ libpython2.4.so.1.0`PyGrammar_AddAccelerators+0x1b
+ libpython2.4.so.1.0`PyParser_New+0x18
+ libpython2.4.so.1.0`parsetok+0x17
+ libpython2.4.so.1.0`PyParser_ParseStringFlagsFilename+0x72
+ libpython2.4.so.1.0`PyParser_ParseStringFlags+0x1c
+ libpython2.4.so.1.0`PyParser_SimpleParseStringFlags+0x23
+ libpython2.4.so.1.0`PyRun_StringFlags+0x2c
+ libpython2.4.so.1.0`builtin_eval+0x273
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`call_function+0x406
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/os.py:503 (_exists) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/os.py:509 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+ libpython2.4.so.1.0`load_source_module+0xe6
+ libpython2.4.so.1.0`load_module+0xac
+ libpython2.4.so.1.0`import_submodule+0xfb
+ libpython2.4.so.1.0`load_next+0xa2
+ libpython2.4.so.1.0`import_module_ex+0x48
+ libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+ libpython2.4.so.1.0`builtin___import__+0x4e
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`PyObject_Call+0x1d
+ libpython2.4.so.1.0`PyEval_CallObjectWithKeywords+0xb8
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xd3c
+ [ /usr/lib/python2.4/site.py:58 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+ libpython2.4.so.1.0`load_source_module+0xe6
+ libpython2.4.so.1.0`load_module+0xac
+ libpython2.4.so.1.0`import_submodule+0xfb
+ libpython2.4.so.1.0`load_next+0xa2
+ libpython2.4.so.1.0`import_module_ex+0x48
+ libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+ libpython2.4.so.1.0`builtin___import__+0x4e
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`PyObject_Call+0x1d
+ libpython2.4.so.1.0`PyObject_CallFunction+0x90
+ libpython2.4.so.1.0`PyImport_Import+0x163
+ libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+ libpython2.4.so.1.0`initsite+0x10
+ libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+ libpython2.4.so.1.0`Py_Initialize+0xd
+ libpython2.4.so.1.0`Py_Main+0x4db
+ python`main+0x11
+ python`_start+0x7a
+
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 331
+ 1024 | 0
+
+
+ libc.so.1`malloc
+ libpython2.4.so.1.0`new_arena+0x13
+ libpython2.4.so.1.0`PyObject_Malloc+0x91
+ libpython2.4.so.1.0`string_concat+0x109
+ libpython2.4.so.1.0`PyString_Concat+0x3b
+ libpython2.4.so.1.0`string_concatenate+0x150
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x27cc
+ [ /usr/lib/python2.4/posixpath.py:62 (join) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`function_call+0x15e
+ libpython2.4.so.1.0`PyObject_Call+0x1d
+ libpython2.4.so.1.0`ext_do_call+0xfb
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xb4f
+ [ /usr/lib/python2.4/site.py:66 (makepath) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`fast_function+0x112
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:138 (addpackage) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`fast_function+0x112
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:166 (addsitedir) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`fast_function+0x112
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ <string>:1 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ libpython2.4.so.1.0`run_err_node+0x1f
+ libpython2.4.so.1.0`PyRun_String+0x27
+ libpython2.4.so.1.0`exec_statement+0x2b0
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x15d6
+ [ /usr/lib/python2.4/site.py:134 (addpackage) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`fast_function+0x112
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:166 (addsitedir) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`fast_function+0x112
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:203 (addsitepackages) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:382 (main) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ /usr/lib/python2.4/site.py:397 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`PyImport_ExecCodeModuleEx+0xc0
+ libpython2.4.so.1.0`load_source_module+0xe6
+ libpython2.4.so.1.0`load_module+0xac
+ libpython2.4.so.1.0`import_submodule+0xfb
+ libpython2.4.so.1.0`load_next+0xa2
+ libpython2.4.so.1.0`import_module_ex+0x48
+ libpython2.4.so.1.0`PyImport_ImportModuleEx+0x1d
+ libpython2.4.so.1.0`builtin___import__+0x4e
+ libpython2.4.so.1.0`PyCFunction_Call+0x15f
+ libpython2.4.so.1.0`PyObject_Call+0x1d
+ libpython2.4.so.1.0`PyObject_CallFunction+0x90
+ libpython2.4.so.1.0`PyImport_Import+0x163
+ libpython2.4.so.1.0`PyImport_ImportModule+0x1f
+ libpython2.4.so.1.0`initsite+0x10
+ libpython2.4.so.1.0`Py_InitializeEx+0x1ea
+ libpython2.4.so.1.0`Py_Initialize+0xd
+ libpython2.4.so.1.0`Py_Main+0x4db
+
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+
+ libc.so.1`malloc
+ libpython2.4.so.1.0`new_arena+0x13
+ libpython2.4.so.1.0`PyObject_Malloc+0x91
+ libpython2.4.so.1.0`_PyObject_GC_Malloc+0x13
+ libpython2.4.so.1.0`_PyObject_GC_NewVar+0x24
+ libpython2.4.so.1.0`PyTuple_New+0x78
+ libpython2.4.so.1.0`PyType_Ready+0x98
+ libpython2.4.so.1.0`PyType_Ready+0x60
+ libpython2.4.so.1.0`_Py_ReadyTypes+0x10
+ libpython2.4.so.1.0`Py_InitializeEx+0xed
+ libpython2.4.so.1.0`Py_Initialize+0xd
+ libpython2.4.so.1.0`Py_Main+0x4db
+ python`main+0x11
+ python`_start+0x7a
+
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+
+This output looks a little unusual at first glance, and can be confusing for
+people unfamiliar with stack tracing and Python engine internals.
+
+Start by looking at the distribution plots below each stack trace - each plot
+shows how many bytes were requested as a histogram by byte size. This should
+indicated to you if python is malloc()ing much memory or not, and whether it
+is doing so in a few large malloc()s or many small ones.
+
+With this information in mind you can inspect the stack traces - these explain
+why Python called malloc() in that instance, along with translations of Python
+functions buried in the stack trace. The stack traces can be hard to read at
+first (or even at second or at third) - since you are examining Python engine
+internals. Try looking for lines in square brackets - those are Python language
+frames, and will show where (or if) the malloc() was caused by Python code.
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt
new file mode 100644
index 000000000000..04c06886e4c2
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt
@@ -0,0 +1,399 @@
+The following are examples of py_profile.d.
+
+This samples stack traces for the process specified. This stack trace will
+cross the Python engine and system libraries, and insert translations for
+Python stack frames where appropriate. Here you can see it running on
+Code/Python/func_slow.py
+
+# py_profile.d -c ./func_slow.py
+Sampling 10-level stacks at 1001 Hertz... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Top 25 most frequently sampled stacks,
+
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x266
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 11
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x278
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 11
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x278a
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 11
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+ [ ./func_slow.py:18 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ libpython2.4.so.1.0`run_err_node+0x1f
+ libpython2.4.so.1.0`PyRun_FileExFlags+0x5e
+ libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f
+ 12
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x1fe
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 13
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x35d
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 13
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x1f5
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 14
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x149
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 14
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x5aa
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 14
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x58f
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 15
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x58f
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 15
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x254
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 17
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x286
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 17
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 17
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x35d
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 18
+
+ libc.so.1`ioctl+0x7
+ libpython2.4.so.1.0`_init+0x25
+ ld.so.1`call_init+0xff
+ ld.so.1`setup+0xf93
+ ld.so.1`_setup+0x310
+ ld.so.1`_rt_boot+0x56
+ 0x8047e5c
+ 19
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+ [ ./func_slow.py:18 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ libpython2.4.so.1.0`run_err_node+0x1f
+ libpython2.4.so.1.0`PyRun_FileExFlags+0x5e
+ libpython2.4.so.1.0`PyRun_SimpleFileExFlags+0x12f
+ 20
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x5ba
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 20
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x583
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 22
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 22
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x278a
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 24
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+ [ ./func_slow.py:10 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ libpython2.4.so.1.0`PyEval_EvalCodeEx+0x732
+ libpython2.4.so.1.0`PyEval_EvalCode+0x22
+ libpython2.4.so.1.0`run_node+0x35
+ 25
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x583
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 35
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x5a4
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 47
+
+ libpython2.4.so.1.0`PyEval_EvalFrame+0x205
+ [ ./func_slow.py:3 (func_c) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:16 (func_b) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:24 (func_a) ]
+ libpython2.4.so.1.0`fast_function+0xa8
+ libpython2.4.so.1.0`call_function+0xda
+ libpython2.4.so.1.0`PyEval_EvalFrame+0xbdf
+ [ ./func_slow.py:26 (?) ]
+ 50
+
+ The lines in square brackets are the native Python frames, the rest
+ are the Python engine.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt
new file mode 100644
index 000000000000..3aac3d28e882
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt
@@ -0,0 +1,129 @@
+The following are examples of py_syscalls.d.
+
+This is a simple script to count executed Python functions and system calls.
+Here it traces an example program, Code/Pythong/func_abc.py.
+
+# py_syscalls.d -c ./func_abc.py
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Calls for PID 145538,
+
+ FILE TYPE NAME COUNT
+ UserDict.py func ? 1
+ UserDict.py func DictMixin 1
+ UserDict.py func IterableUserDict 1
+ UserDict.py func UserDict 1
+ UserDict.py func __init__ 1
+ __init__.py func ? 1
+ __init__.py func CodecRegistryError 1
+ __init__.py func normalize_encoding 1
+ __init__.py func search_function 1
+ aliases.py func ? 1
+ ascii.py func ? 1
+ ascii.py func Codec 1
+ ascii.py func StreamConverter 1
+ ascii.py func StreamReader 1
+ ascii.py func StreamWriter 1
+ ascii.py func getregentry 1
+ codecs.py func ? 1
+ codecs.py func Codec 1
+ codecs.py func StreamReader 1
+ codecs.py func StreamReaderWriter 1
+ codecs.py func StreamRecoder 1
+ codecs.py func StreamWriter 1
+ copy_reg.py func ? 1
+ func_abc.py func ? 1
+ func_abc.py func func_a 1
+ func_abc.py func func_b 1
+ func_abc.py func func_c 1
+ func_abc.py syscall getrlimit 1
+ func_abc.py syscall gtime 1
+ func_abc.py syscall memcntl 1
+ func_abc.py syscall rexit 1
+ func_abc.py syscall sigpending 1
+ func_abc.py syscall sysi86 1
+ func_abc.py syscall write 1
+ func_abc.py syscall xstat 1
+ linecache.py func ? 1
+ os.py func ? 1
+ os.py func _Environ 1
+ os.py func __init__ 1
+ os.py func _get_exports_list 1
+ posixpath.py func ? 1
+ posixpath.py func basename 1
+ posixpath.py func dirname 1
+ site.py func ? 1
+ site.py func _Helper 1
+ site.py func _Printer 1
+ site.py func _init_pathinfo 1
+ site.py func abs__file__ 1
+ site.py func addsitepackages 1
+ site.py func aliasmbcs 1
+ site.py func execsitecustomize 1
+ site.py func main 1
+ site.py func removeduppaths 1
+ site.py func setcopyright 1
+ site.py func setencoding 1
+ site.py func sethelper 1
+ site.py func setquit 1
+ stat.py func ? 1
+ types.py func ? 1
+ types.py func _C 1
+ warnings.py func ? 1
+ warnings.py func _OptionError 1
+ warnings.py func _processoptions 1
+ func_abc.py syscall fcntl 2
+ func_abc.py syscall fsat 2
+ func_abc.py syscall getcwd 2
+ func_abc.py syscall getpid 2
+ func_abc.py syscall mprotect 2
+ func_abc.py syscall readlink 2
+ func_abc.py syscall resolvepath 2
+ func_abc.py syscall setcontext 2
+ posixpath.py func exists 2
+ posixpath.py func split 2
+ site.py func addsitedir 2
+ warnings.py func simplefilter 2
+ copy_reg.py func constructor 3
+ copy_reg.py func pickle 3
+ func_abc.py syscall munmap 3
+ func_abc.py syscall pollsys 3
+ site.py func __init__ 3
+ site.py func addpackage 3
+ func_abc.py syscall getdents64 4
+ func_abc.py syscall open 4
+ func_abc.py syscall sysconfig 4
+ func_abc.py syscall mmap 5
+ func_abc.py syscall lwp_exit 6
+ stat.py func S_IFMT 6
+ stat.py func S_ISDIR 6
+ posixpath.py func isdir 8
+ os.py func _exists 10
+ <string> func ? 11
+ posixpath.py func normcase 14
+ site.py func makepath 14
+ posixpath.py func join 20
+ posixpath.py func abspath 22
+ posixpath.py func isabs 22
+ posixpath.py func normpath 22
+ func_abc.py syscall ioctl 28
+ func_abc.py syscall llseek 34
+ func_abc.py syscall read 36
+ func_abc.py syscall close 41
+ func_abc.py syscall sigaction 52
+ func_abc.py syscall brk 58
+ func_abc.py syscall fstat64 74
+ func_abc.py syscall stat64 77
+ func_abc.py syscall open64 173
+
+While tracing there were numerous system calls made, including 173 open64()'s,
+and 77 stat64()'s. There were also many functions called, including 22 each
+of abspath, isabs, and normpath by the posixpath.py library.
+
+This script can provide an insight to how an application is interacting
+with the system, by providing both application function calls and
+system calls in the same output.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt
new file mode 100644
index 000000000000..0a6367f9fe6d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt
@@ -0,0 +1,584 @@
+The following are examples of py_syscolors.d.
+
+This is a simple script to trace the flow of Python functons and system
+calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Python/func_abc.py.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# py_syscolors.d -c ./func_abc.py
+C PID DELTA(us) FILE:LINE TYPE -- NAME
+0 145544 2 ":- syscall -> munmap
+0 145544 34 ":- syscall <- munmap
+0 145544 56 ":- syscall -> mmap
+0 145544 19 ":- syscall <- mmap
+0 145544 42 ":- syscall -> setcontext
+0 145544 10 ":- syscall <- setcontext
+0 145544 9 ":- syscall -> getrlimit
+0 145544 10 ":- syscall <- getrlimit
+0 145544 9 ":- syscall -> getpid
+0 145544 8 ":- syscall <- getpid
+0 145544 68 ":- syscall -> setcontext
+0 145544 8 ":- syscall <- setcontext
+0 145544 121 ":- syscall -> sigpending
+0 145544 9 ":- syscall <- sigpending
+0 145544 172 ":- syscall -> open64
+0 145544 114 ":- syscall <- open64
+0 145544 14 ":- syscall -> ioctl
+0 145544 28209 ":- syscall <- ioctl
+0 145544 285 ":- syscall -> close
+0 145544 31 ":- syscall <- close
+0 145544 41 ":- syscall -> open64
+0 145544 88 ":- syscall <- open64
+0 145544 9 ":- syscall -> ioctl
+0 145544 293 ":- syscall <- ioctl
+0 145544 11 ":- syscall -> close
+0 145544 13 ":- syscall <- close
+0 145544 1182 ":- syscall -> sysi86
+0 145544 12 ":- syscall <- sysi86
+0 145544 143 ":- syscall -> sysconfig
+0 145544 53 ":- syscall <- sysconfig
+0 145544 95 ":- syscall -> open64
+0 145544 22 ":- syscall <- open64
+0 145544 11 ":- syscall -> fstat64
+0 145544 10 ":- syscall <- fstat64
+0 145544 31 ":- syscall -> ioctl
+0 145544 42 ":- syscall <- ioctl
+0 145544 24 ":- syscall -> brk
+0 145544 10 ":- syscall <- brk
+0 145544 8 ":- syscall -> brk
+0 145544 17 ":- syscall <- brk
+0 145544 30 ":- syscall -> sysconfig
+0 145544 8 ":- syscall <- sysconfig
+0 145544 32 ":- syscall -> brk
+0 145544 7 ":- syscall <- brk
+0 145544 8 ":- syscall -> brk
+
+[... 1400 lines truncated ...]
+
+0 145544 8 ":- syscall -> fstat64
+0 145544 7 ":- syscall <- fstat64
+0 145544 11 ":- syscall -> read
+0 145544 8 ":- syscall <- read
+0 145544 29 ":- syscall -> brk
+0 145544 8 ":- syscall <- brk
+0 145544 8 ":- syscall -> brk
+0 145544 10 ":- syscall <- brk
+0 145544 393 ":- syscall -> llseek
+0 145544 8 ":- syscall <- llseek
+0 145544 9 ":- syscall -> close
+0 145544 9 ":- syscall <- close
+0 145544 14 aliases.py:17 func -> ?
+0 145544 57 aliases.py:18 func <- ?
+0 145544 20 ":- syscall -> llseek
+0 145544 8 ":- syscall <- llseek
+0 145544 8 ":- syscall -> close
+0 145544 8 ":- syscall <- close
+0 145544 15 __init__.py:43 func -> CodecRegistryError
+0 145544 12 __init__.py:45 func <- CodecRegistryError
+0 145544 26 __init__.py:145 func <- ?
+0 145544 18 ":- syscall -> llseek
+0 145544 8 ":- syscall <- llseek
+0 145544 8 ":- syscall -> close
+0 145544 9 ":- syscall <- close
+0 145544 13 __init__.py:69 func -> search_function
+0 145544 14 __init__.py:47 func -> normalize_encoding
+0 145544 18 __init__.py:67 func <- normalize_encoding
+0 145544 29 ":- syscall -> stat64
+0 145544 20 ":- syscall <- stat64
+0 145544 10 ":- syscall -> open64
+0 145544 18 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 17 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 18 ":- syscall <- open64
+0 145544 9 ":- syscall -> fstat64
+0 145544 8 ":- syscall <- fstat64
+0 145544 8 ":- syscall -> open64
+0 145544 18 ":- syscall <- open64
+0 145544 8 ":- syscall -> fstat64
+0 145544 8 ":- syscall <- fstat64
+0 145544 9 ":- syscall -> fstat64
+0 145544 7 ":- syscall <- fstat64
+0 145544 8 ":- syscall -> ioctl
+0 145544 7 ":- syscall <- ioctl
+0 145544 8 ":- syscall -> read
+0 145544 19 ":- syscall <- read
+0 145544 8 ":- syscall -> fstat64
+0 145544 8 ":- syscall <- fstat64
+0 145544 8 ":- syscall -> read
+0 145544 8 ":- syscall <- read
+0 145544 22 ":- syscall -> llseek
+0 145544 8 ":- syscall <- llseek
+0 145544 8 ":- syscall -> close
+0 145544 9 ":- syscall <- close
+0 145544 12 ascii.py:8 func -> ?
+0 145544 16 ascii.py:13 func -> Codec
+0 145544 12 ascii.py:18 func <- Codec
+0 145544 22 ascii.py:20 func -> StreamWriter
+0 145544 11 ascii.py:21 func <- StreamWriter
+0 145544 20 ascii.py:23 func -> StreamReader
+0 145544 11 ascii.py:24 func <- StreamReader
+0 145544 32 ascii.py:26 func -> StreamConverter
+0 145544 12 ascii.py:29 func <- StreamConverter
+0 145544 21 ascii.py:33 func <- ?
+0 145544 17 ":- syscall -> llseek
+0 145544 8 ":- syscall <- llseek
+0 145544 8 ":- syscall -> close
+0 145544 8 ":- syscall <- close
+0 145544 13 ascii.py:33 func -> getregentry
+0 145544 12 ascii.py:35 func <- getregentry
+0 145544 34 __init__.py:142 func <- search_function
+0 145544 23 ":- syscall -> ioctl
+0 145544 42 ":- syscall <- ioctl
+0 145544 11 ":- syscall -> ioctl
+0 145544 9 ":- syscall <- ioctl
+0 145544 12 ":- syscall -> readlink
+0 145544 16 ":- syscall <- readlink
+0 145544 20 ":- syscall -> resolvepath
+0 145544 18 ":- syscall <- resolvepath
+0 145544 12 ":- syscall -> getcwd
+0 145544 20 ":- syscall <- getcwd
+0 145544 27 ":- syscall -> ioctl
+0 145544 8 ":- syscall <- ioctl
+0 145544 14 ":- syscall -> llseek
+0 145544 7 ":- syscall <- llseek
+0 145544 8 ":- syscall -> fstat64
+0 145544 8 ":- syscall <- fstat64
+0 145544 8 ":- syscall -> fstat64
+0 145544 7 ":- syscall <- fstat64
+0 145544 8 ":- syscall -> ioctl
+0 145544 7 ":- syscall <- ioctl
+0 145544 8 ":- syscall -> read
+0 145544 19 ":- syscall <- read
+0 145544 9 ":- syscall -> llseek
+0 145544 7 ":- syscall <- llseek
+0 145544 8 ":- syscall -> llseek
+0 145544 7 ":- syscall <- llseek
+0 145544 12 ":- syscall -> read
+0 145544 13 ":- syscall <- read
+0 145544 105 ":- syscall -> read
+0 145544 9 ":- syscall <- read
+0 145544 10 ":- syscall -> llseek
+0 145544 7 ":- syscall <- llseek
+0 145544 8 ":- syscall -> close
+0 145544 9 ":- syscall <- close
+0 145544 117 func_abc.py:3 func -> ?
+0 145544 20 ":- syscall -> stat64
+0 145544 15 ":- syscall <- stat64
+0 145544 10 ":- syscall -> stat64
+0 145544 13 ":- syscall <- stat64
+0 145544 10 ":- syscall -> open64
+0 145544 15 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 9 ":- syscall -> stat64
+0 145544 13 ":- syscall <- stat64
+0 145544 9 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 13 ":- syscall <- open64
+0 145544 9 ":- syscall -> stat64
+0 145544 15 ":- syscall <- stat64
+0 145544 8 ":- syscall -> open64
+0 145544 15 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 15 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 15 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 15 ":- syscall <- open64
+0 145544 9 ":- syscall -> stat64
+0 145544 17 ":- syscall <- stat64
+0 145544 9 ":- syscall -> open64
+0 145544 17 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 16 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 16 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 16 ":- syscall <- open64
+0 145544 8 ":- syscall -> stat64
+0 145544 17 ":- syscall <- stat64
+0 145544 8 ":- syscall -> open64
+0 145544 17 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 16 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 16 ":- syscall <- open64
+0 145544 8 ":- syscall -> open64
+0 145544 16 ":- syscall <- open64
+0 145544 9 ":- syscall -> stat64
+0 145544 17 ":- syscall <- stat64
+0 145544 8 ":- syscall -> open64
+0 145544 19 ":- syscall <- open64
+0 145544 14 ":- syscall -> fstat64
+0 145544 9 ":- syscall <- fstat64
+0 145544 20 ":- syscall -> xstat
+0 145544 18 ":- syscall <- xstat
+0 145544 8 ":- syscall -> resolvepath
+0 145544 19 ":- syscall <- resolvepath
+0 145544 10 ":- syscall -> open
+0 145544 19 ":- syscall <- open
+0 145544 10 ":- syscall -> mmap
+0 145544 21 ":- syscall <- mmap
+0 145544 33 ":- syscall -> mmap
+0 145544 13 ":- syscall <- mmap
+0 145544 9 ":- syscall -> mmap
+0 145544 16 ":- syscall <- mmap
+0 145544 8 ":- syscall -> mmap
+0 145544 11 ":- syscall <- mmap
+0 145544 34 ":- syscall -> munmap
+0 145544 11 ":- syscall <- munmap
+0 145544 43 ":- syscall -> memcntl
+0 145544 13 ":- syscall <- memcntl
+0 145544 8 ":- syscall -> close
+0 145544 9 ":- syscall <- close
+0 145544 30 ":- syscall -> mprotect
+0 145544 13 ":- syscall <- mprotect
+0 145544 169 ":- syscall -> mprotect
+0 145544 13 ":- syscall <- mprotect
+0 145544 2 ":- syscall <- nosys
+0 145544 280 ":- syscall -> open
+0 145544 90 ":- syscall <- open
+0 145544 154 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 301 ":- syscall <- ioctl
+0 145544 186 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 210 ":- syscall -> close
+0 145544 18 ":- syscall <- close
+0 145544 146 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 208 ":- syscall -> open
+0 145544 73 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 209 ":- syscall -> ioctl
+0 145544 45 ":- syscall <- ioctl
+0 145544 171 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 194 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 203 ":- syscall -> open
+0 145544 63 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 209 ":- syscall -> ioctl
+0 145544 280 ":- syscall <- ioctl
+0 145544 185 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 193 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 230 ":- syscall -> open
+0 145544 82 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 210 ":- syscall -> ioctl
+0 145544 45 ":- syscall <- ioctl
+0 145544 171 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 195 ":- syscall -> close
+0 145544 18 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 204 ":- syscall -> open
+0 145544 64 ":- syscall <- open
+0 145544 149 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 208 ":- syscall -> ioctl
+0 145544 283 ":- syscall <- ioctl
+0 145544 184 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 192 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 146 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 209 ":- syscall -> open
+0 145544 72 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 209 ":- syscall -> ioctl
+0 145544 45 ":- syscall <- ioctl
+0 145544 171 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 198 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 860 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 223 ":- syscall -> open
+0 145544 83 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 213 ":- syscall -> ioctl
+0 145544 281 ":- syscall <- ioctl
+0 145544 187 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 196 ":- syscall -> close
+0 145544 19 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 209 ":- syscall -> open
+0 145544 69 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 213 ":- syscall -> ioctl
+0 145544 47 ":- syscall <- ioctl
+0 145544 173 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 199 ":- syscall -> close
+0 145544 18 ":- syscall <- close
+0 145544 144 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 212 ":- syscall -> open
+0 145544 67 ":- syscall <- open
+0 145544 149 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 213 ":- syscall -> ioctl
+0 145544 282 ":- syscall <- ioctl
+0 145544 187 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 197 ":- syscall -> close
+0 145544 59 ":- syscall <- close
+0 145544 637 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 222 ":- syscall -> open
+0 145544 80 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 47 ":- syscall <- ioctl
+0 145544 172 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 199 ":- syscall -> close
+0 145544 19 ":- syscall <- close
+0 145544 144 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 205 ":- syscall -> open
+0 145544 62 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 211 ":- syscall -> ioctl
+0 145544 304 ":- syscall <- ioctl
+0 145544 190 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 197 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 211 ":- syscall -> open
+0 145544 70 ":- syscall <- open
+0 145544 149 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 211 ":- syscall -> ioctl
+0 145544 46 ":- syscall <- ioctl
+0 145544 172 ":- syscall -> lwp_exit
+0 145544 2 ":- syscall <- nosys
+0 145544 260 ":- syscall -> close
+0 145544 26 ":- syscall <- close
+0 145544 160 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 207 ":- syscall -> open
+0 145544 79 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 216 ":- syscall -> ioctl
+0 145544 274 ":- syscall <- ioctl
+0 145544 187 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 195 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 211 ":- syscall -> open
+0 145544 70 ":- syscall <- open
+0 145544 149 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 48 ":- syscall <- ioctl
+0 145544 173 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 201 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 211 ":- syscall -> open
+0 145544 65 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 213 ":- syscall -> ioctl
+0 145544 324 ":- syscall <- ioctl
+0 145544 342 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 203 ":- syscall -> close
+0 145544 19 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 213 ":- syscall -> open
+0 145544 76 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 48 ":- syscall <- ioctl
+0 145544 174 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 198 ":- syscall -> close
+0 145544 18 ":- syscall <- close
+0 145544 146 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 206 ":- syscall -> open
+0 145544 63 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 213 ":- syscall -> ioctl
+0 145544 272 ":- syscall <- ioctl
+0 145544 185 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 194 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 146 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 213 ":- syscall -> open
+0 145544 70 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 47 ":- syscall <- ioctl
+0 145544 173 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 236 ":- syscall -> close
+0 145544 23 ":- syscall <- close
+0 145544 156 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 210 ":- syscall -> open
+0 145544 76 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 276 ":- syscall <- ioctl
+0 145544 187 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 197 ":- syscall -> close
+0 145544 17 ":- syscall <- close
+0 145544 145 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 211 ":- syscall -> open
+0 145544 71 ":- syscall <- open
+0 145544 149 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 214 ":- syscall -> ioctl
+0 145544 47 ":- syscall <- ioctl
+0 145544 172 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 199 ":- syscall -> close
+0 145544 19 ":- syscall <- close
+0 145544 144 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 210 ":- syscall -> open
+0 145544 64 ":- syscall <- open
+0 145544 150 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 212 ":- syscall -> ioctl
+0 145544 297 ":- syscall <- ioctl
+0 145544 522 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 210 ":- syscall -> close
+0 145544 21 ":- syscall <- close
+0 145544 146 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 213 ":- syscall -> open
+0 145544 79 ":- syscall <- open
+0 145544 151 ":- syscall -> lwp_exit
+0 145544 0 ":- syscall <- nosys
+0 145544 213 ":- syscall -> ioctl
+0 145544 47 ":- syscall <- ioctl
+0 145544 173 ":- syscall -> lwp_exit
+0 145544 1 ":- syscall <- nosys
+0 145544 201 ":- syscall -> close
+0 145544 19 ":- syscall <- close
+0 145544 144 ":- syscall -> lwp_exit
+0 145544 91667 ":- syscall -> munmap
+0 145544 34 ":- syscall <- munmap
+0 145544 65 ":- syscall -> gtime
+0 145544 9 ":- syscall <- gtime
+0 145544 13 ":- syscall -> open
+0 145544 42 ":- syscall <- open
+0 145544 10 ":- syscall -> fstat64
+0 145544 9 ":- syscall <- fstat64
+0 145544 8 ":- syscall -> read
+0 145544 31 ":- syscall <- read
+0 145544 9 ":- syscall -> close
+0 145544 11 ":- syscall <- close
+0 145544 65 ":- syscall -> llseek
+0 145544 9 ":- syscall <- llseek
+0 145544 8 ":- syscall -> close
+0 145544 9 ":- syscall <- close
+0 145544 25 func_abc.py:14 func -> func_a
+0 145544 24 ":- syscall -> ioctl
+0 145544 9 ":- syscall <- ioctl
+0 145544 8 ":- syscall -> fstat64
+0 145544 8 ":- syscall <- fstat64
+0 145544 9 ":- syscall -> fstat64
+0 145544 7 ":- syscall <- fstat64
+0 145544 40 ":- syscall -> pollsys
+0 145544 1009424 ":- syscall <- pollsys
+0 145544 35 func_abc.py:9 func -> func_b
+0 145544 40 ":- syscall -> pollsys
+0 145544 1009681 ":- syscall <- pollsys
+0 145544 36 func_abc.py:5 func -> func_c
+0 145544 41 ":- syscall -> pollsys
+Function A
+Function B
+Function C
+0 145544 1000116 ":- syscall <- pollsys
+0 145544 34 func_abc.py:7 func <- func_c
+0 145544 28 func_abc.py:12 func <- func_b
+0 145544 14 func_abc.py:17 func <- func_a
+0 145544 14 func_abc.py:19 func <- ?
+0 145544 26 ":- syscall -> sigaction
+0 145544 15 ":- syscall <- sigaction
+0 145544 1150 ":- syscall -> write
+0 145544 21 ":- syscall <- write
+0 145544 212 ":- syscall -> open64
+0 145544 116 ":- syscall <- open64
+0 145544 11 ":- syscall -> ioctl
+0 145544 24 ":- syscall <- ioctl
+0 145544 10 ":- syscall -> close
+0 145544 16 ":- syscall <- close
+0 145544 8 ":- syscall -> open64
+0 145544 32 ":- syscall <- open64
+0 145544 9 ":- syscall -> ioctl
+0 145544 169 ":- syscall <- ioctl
+0 145544 10 ":- syscall -> close
+0 145544 12 ":- syscall <- close
+0 145544 62 ":- syscall -> rexit
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+0 145544 35 func_abc.py:9 func -> func_b
+0 145544 40 ":- syscall -> pollsys
+0 145544 1009681 ":- syscall <- pollsys
+0 145544 36 func_abc.py:5 func -> func_c
+
+This excerpt shows line 9 of the script executing. It makes a pollsys syscall
+in order to fulfill the request to sleep for one second, returns and then goes
+to line 5. Checking the logic flow of the example program, this makes sense.
diff --git a/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt
new file mode 100644
index 000000000000..7d1c3f1c27b0
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt
@@ -0,0 +1,34 @@
+These are examples of the results after running the py_who.d script.
+
+This script shows which UIDs and PIDs are running Python programs with Python
+provider support, and how active they are. It lists the name of the program,
+along with the number of lines executed per program as recorded by the line
+provider.
+
+Here it runs as the Code/Python/func_abc.py program is executed.
+
+# py_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ PID UID FUNCS FILE
+ 145442 0 1 /usr/lib/python2.4/encodings/aliases.py
+ 145442 0 1 /usr/lib/python2.4/linecache.py
+ 145442 0 2 /usr/lib/python2.4/types.py
+ 145442 0 4 /usr/lib/python2.4/encodings/__init__.py
+ 145442 0 4 func_abc.py
+ 145442 0 5 /usr/lib/python2.4/UserDict.py
+ 145442 0 5 /usr/lib/python2.4/warnings.py
+ 145442 0 6 /usr/lib/python2.4/codecs.py
+ 145442 0 6 /usr/lib/python2.4/encodings/ascii.py
+ 145442 0 7 /usr/lib/python2.4/copy_reg.py
+ 145442 0 11 <string>
+ 145442 0 13 /usr/lib/python2.4/stat.py
+ 145442 0 14 /usr/lib/python2.4/os.py
+ 145442 0 36 /usr/lib/python2.4/site.py
+ 145442 0 115 /usr/lib/python2.4/posixpath.py
+
+You can see that the program itself had four lines executed attributed to it,
+and the other lines in the program were associated with their particular
+Python library calls.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt
new file mode 100644
index 000000000000..088497c56286
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt
@@ -0,0 +1,153 @@
+The following is an example of running rb_calldist.d and tracing the elapsed
+times for functions.
+
+We run rb_calldist.d while running the program Code/Ruby/func_abc.rb. We can
+see that there are three sections in the DTrace output
+
+# rb_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+ ., obj-new, NoMemoryError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ., obj-new, SystemStackError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ., obj-new, ThreadGroup
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ ., obj-new, fatal
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ ., obj-new, Object
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 1
+ 32 | 0
+
+
+Exclusive function elapsed times (us),
+ func_abc.rb, func, Module::method_added
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ func_abc.rb, func, Object::print
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 |@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ func_abc.rb, func, IO::write
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ func_abc.rb, func, Object::func_a
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ func_abc.rb, func, Object::func_b
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ func_abc.rb, func, Object::func_c
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ func_abc.rb, func, Object::sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+
+Inclusive function elapsed times (us),
+ func_abc.rb, func, Module::method_added
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ func_abc.rb, func, IO::write
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ func_abc.rb, func, Object::print
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 128 |@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ func_abc.rb, func, Object::func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.rb, func, Object::func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_abc.rb, func, Object::sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+ func_abc.rb, func, Object::func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+The elapsed times show us that the script spent some small amount of time
+processing various events that were not functions. In this case they were all
+obj-new events, and you can see that the slowest of these was a new Object at
+between 16 microseconds and 31 microseconds.
+
+The exclusive subroutine elapsed times show that each of our user defined
+functions took between 256 and 511 microseconds. This time excludes the time
+spent in other subroutines.
+
+The inclusive subroutine elapsed times show that func_c() took between 0.5
+seconds and 1 second, func_b() took between 1 second and 2.1 seconds, and
+func_a() took between 2.1 seconds and 4.2 seconds to execute. This time
+includes the time spent in other subroutines called, and since func_a() called
+func_b() which called func_c(), these times make sense.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt
new file mode 100644
index 000000000000..acc0d4d4ef7b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt
@@ -0,0 +1,29 @@
+The following are examples of the results of running the rb_calls.d script.
+
+This script traces activity from all Ruby programs on the system that are
+running with Ruby provider support. In this example we see it running while
+the Code/Ruby/func_abc.rb script is run.
+
+# rb_calls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE TYPE NAME CALLS
+ . obj-new NoMemoryError 1
+ . obj-new SystemStackError 1
+ . obj-new ThreadGroup 1
+ . obj-new fatal 1
+ func_abc.rb method Object::func_a 1
+ func_abc.rb method Object::func_b 1
+ func_abc.rb method Object::func_c 1
+ . obj-new Object 3
+ func_abc.rb method IO::write 3
+ func_abc.rb method Module::method_added 3
+ func_abc.rb method Object::print 3
+ func_abc.rb method Object::sleep 3
+
+We can see that the file func_abc.rb called each of the user-defined functions
+included in the script; func_a, func_b, and func_c. It also called the print
+object and sleep amongst other things. Interspersed in the output are calls
+to new objects that are not tied to the program func_abc.rb. They are called
+from the Ruby engine for some other reason.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt
new file mode 100644
index 000000000000..7245fec0e7f8
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt
@@ -0,0 +1,77 @@
+The following is an example of running rb_calltime.d and tracing the elapsed
+times for functions.
+
+We run rb_calltime.d while running the program Code/Ruby/func_abc.rb. We can
+see that there are four sections in the DTrace output
+
+# rb_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ . obj-new NoMemoryError 1
+ . obj-new SystemStackError 1
+ . obj-new ThreadGroup 1
+ . obj-new fatal 1
+ func_abc.rb func Object::func_a 1
+ func_abc.rb func Object::func_b 1
+ func_abc.rb func Object::func_c 1
+ . obj-new Object 3
+ func_abc.rb func IO::write 3
+ func_abc.rb func Module::method_added 3
+ func_abc.rb func Object::print 3
+ func_abc.rb func Object::sleep 3
+ - total - 15
+
+Elapsed times (us),
+ FILE TYPE NAME TOTAL
+ . obj-new SystemStackError 3
+ . obj-new NoMemoryError 3
+ . obj-new fatal 11
+ . obj-new ThreadGroup 13
+ . obj-new Object 26
+
+Exclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.rb func Module::method_added 9
+ func_abc.rb func Object::print 92
+ func_abc.rb func IO::write 185
+ func_abc.rb func Object::func_c 344
+ func_abc.rb func Object::func_a 379
+ func_abc.rb func Object::func_b 383
+ func_abc.rb func Object::sleep 3020597
+ - total - 3021992
+
+Inclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.rb func Module::method_added 9
+ func_abc.rb func IO::write 185
+ func_abc.rb func Object::print 277
+ func_abc.rb func Object::func_c 1009829
+ func_abc.rb func Object::func_b 2019781
+ func_abc.rb func Object::sleep 3020597
+ func_abc.rb func Object::func_a 3021983
+
+The first section, Count, shows us how many times each function associated
+with func_abc.rb was called. It also shows other functions called by the Ruby
+engine.
+
+The second section, elapsed times, shows how long each action that was not
+calling a function took.
+
+The third section, exclusive function 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. The last
+line gives us the total time in microseconds.
+
+The fourth section, inclusive function 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.
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt
new file mode 100644
index 000000000000..718495e394f0
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt
@@ -0,0 +1,199 @@
+The following are examples of rb_cpudist.d.
+
+This script traces the on-CPU time of Ruby functions and prints a report in
+the form of a histogram. Here it traces the example program,
+Code/Ruby/func_slow.rb
+
+# rb_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+On-CPU times (us),
+ ., obj-new, NoMemoryError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ., obj-new, SystemStackError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ ., obj-new, ThreadGroup
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ ., obj-new, fatal
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ ., obj-new, Object
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+ 8 |@@@@@@@@@@@@@ 1
+ 16 | 0
+
+
+Exclusive function on-CPU times (us),
+ func_slow.rb, func, Module::method_added
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 2 | 0
+
+ func_slow.rb, func, Object::print
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 8 |@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ func_slow.rb, func, IO::write
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ func_slow.rb, func, Object::func_a
+ value ------------- Distribution ------------- count
+ 131072 | 0
+ 262144 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 524288 | 0
+
+ func_slow.rb, func, Object::func_b
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_slow.rb, func, Fixnum::<
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 599556
+ 2 | 72
+ 4 | 35
+ 8 | 128
+ 16 | 158
+ 32 | 49
+ 64 | 3
+ 128 | 2
+ 256 | 0
+
+ func_slow.rb, func, Object::func_c
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_slow.rb, func, Fixnum::+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1199062
+ 2 | 138
+ 4 | 74
+ 8 | 279
+ 16 | 344
+ 32 | 91
+ 64 | 9
+ 128 | 0
+ 256 | 3
+ 512 | 0
+
+
+Inclusive function on-CPU times (us),
+ func_slow.rb, func, Module::method_added
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 2 | 0
+
+ func_slow.rb, func, IO::write
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ func_slow.rb, func, Object::print
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 |@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ func_slow.rb, func, Fixnum::<
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 599556
+ 2 | 72
+ 4 | 35
+ 8 | 128
+ 16 | 158
+ 32 | 49
+ 64 | 3
+ 128 | 2
+ 256 | 0
+
+ func_slow.rb, func, Fixnum::+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1199062
+ 2 | 138
+ 4 | 74
+ 8 | 279
+ 16 | 344
+ 32 | 91
+ 64 | 9
+ 128 | 0
+ 256 | 3
+ 512 | 0
+
+ func_slow.rb, func, Object::func_b
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ func_slow.rb, func, Object::func_c
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ func_slow.rb, func, Object::func_a
+ value ------------- Distribution ------------- count
+ 2097152 | 0
+ 4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8388608 | 0
+
+You can see that the results are in three sections.
+
+The first section shows us the on-CPU time for actions that were not of the
+type 'func'.
+
+The second section, Exclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, not including time spent in subroutines. You can
+see here that Object::print had two instances of being on-CPU between 4
+microseconds and 7 microseconds, and once instance of being on-CPU between 8
+microseconds and 15 microseconds.
+
+The third section, Inclusive function on-CPU times, shows us the time spent
+on-CPU by various functions, including that time spent in subroutines called
+by those functions. You can see that here Object::print had two instances
+of being on-CPU between 32 microseconds and 63 microseconds, and one instance
+of being on-CPU between 64 microseconds and 127 microseconds.
+
+It is important to pay close attention to the third column, "count" as this
+will indicate if there were any instances in a particular timeframe, even if
+the number is too small to show up on the histogram clearly. See Inclusive
+function on-CPU time for Fixnum::+ for an example.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt
new file mode 100644
index 000000000000..edfa5aa75da2
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt
@@ -0,0 +1,81 @@
+The following are examples of rb_cputime.d.
+
+This script traces the on-CPU time of Ruby functions and prints a report.
+Here it traces the example program, Code/Ruby/func_slow.rb
+
+# rb_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Count,
+ FILE TYPE NAME COUNT
+ . obj-new NoMemoryError 1
+ . obj-new SystemStackError 1
+ . obj-new ThreadGroup 1
+ . obj-new fatal 1
+ func_slow.rb func Object::func_a 1
+ func_slow.rb func Object::func_b 1
+ func_slow.rb func Object::func_c 1
+ . obj-new Object 3
+ func_slow.rb func IO::write 3
+ func_slow.rb func Module::method_added 3
+ func_slow.rb func Object::print 3
+ func_slow.rb func Fixnum::< 600003
+ func_slow.rb func Fixnum::+ 1200000
+ - total - 1800015
+
+Elapsed times (us),
+ FILE TYPE NAME TOTAL
+ . obj-new SystemStackError 2
+ . obj-new NoMemoryError 2
+ . obj-new fatal 11
+ . obj-new ThreadGroup 12
+ . obj-new Object 19
+
+Exclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.rb func Module::method_added 4
+ func_slow.rb func Object::print 57
+ func_slow.rb func IO::write 180
+ func_slow.rb func Object::func_a 405946
+ func_slow.rb func Fixnum::< 691125
+ func_slow.rb func Object::func_b 809970
+ func_slow.rb func Object::func_c 1225235
+ func_slow.rb func Fixnum::+ 1285200
+ - total - 4417721
+
+Inclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.rb func Module::method_added 4
+ func_slow.rb func IO::write 180
+ func_slow.rb func Object::print 238
+ func_slow.rb func Fixnum::< 691125
+ func_slow.rb func Fixnum::+ 1285200
+ func_slow.rb func Object::func_c 2212572
+ func_slow.rb func Object::func_b 3683688
+ func_slow.rb func Object::func_a 4417717
+
+You can see the results are printed in four sections.
+
+The first section reports how many times each subroutine was called, and it's
+type.
+
+The second section reports on the on-CPU time of anything that was not of type
+"func", in this case the only elements reported here are of type obj-new.
+
+The exclusive function on-CPU times shows, amongst other results, that func_a
+spent around 0.4 seconds on-CPU. This time excludes time spent in other
+subroutines.
+
+The inclusive function on-CPU times show that func_a spent around 4.4
+seconds on-CPU. This includes the time spent in other subroutines called.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt
new file mode 100644
index 000000000000..6cfa54ff0084
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt
@@ -0,0 +1,54 @@
+The following are examples of rb_flow.d.
+
+This is a simple script to trace the flow of Ruby functions.
+Here it traces the example program, Code/Ruby/func_abc.rb
+
+# rb_flow.d
+ C TIME(us) FILE -- CLASS::METHOD
+ 0 3066417516583 func_abc.rb -> Module::method_added
+ 0 3066417516640 func_abc.rb <- Module::method_added
+ 0 3066417516658 func_abc.rb -> Module::method_added
+ 0 3066417516668 func_abc.rb <- Module::method_added
+ 0 3066417516680 func_abc.rb -> Module::method_added
+ 0 3066417516689 func_abc.rb <- Module::method_added
+ 0 3066417516701 func_abc.rb -> Object::func_a
+ 0 3066417516711 func_abc.rb -> Object::print
+ 0 3066417516730 func_abc.rb -> IO::write
+ 0 3066417516832 func_abc.rb <- IO::write
+ 0 3066417516841 func_abc.rb <- Object::print
+ 0 3066417516849 func_abc.rb -> Object::sleep
+ 0 3066418520705 func_abc.rb <- Object::sleep
+ 0 3066418520727 func_abc.rb -> Object::func_b
+ 0 3066418520744 func_abc.rb -> Object::print
+ 0 3066418520753 func_abc.rb -> IO::write
+ 0 3066418520796 func_abc.rb <- IO::write
+ 0 3066418520805 func_abc.rb <- Object::print
+ 0 3066418520813 func_abc.rb -> Object::sleep
+ 0 3066419530803 func_abc.rb <- Object::sleep
+ 0 3066419530825 func_abc.rb -> Object::func_c
+ 0 3066419530842 func_abc.rb -> Object::print
+ 0 3066419530852 func_abc.rb -> IO::write
+ 0 3066419530893 func_abc.rb <- IO::write
+ 0 3066419530902 func_abc.rb <- Object::print
+ 0 3066419530910 func_abc.rb -> Object::sleep
+ 0 3066420540804 func_abc.rb <- Object::sleep
+ 0 3066420540822 func_abc.rb <- Object::func_c
+ 0 3066420540831 func_abc.rb <- Object::func_b
+ 0 3066420540840 func_abc.rb <- Object::func_a
+^C
+
+The fourth column is indented by 2 spaces to show when a new function begins.
+This shows which function is calling which - the output above begins by adding
+new methods, then showing that func_a began; did some print IO; slept, and
+returned from sleep; and then called func_b.
+
+The TIME(us) column shows time from boot in microseconds.
+
+The FILE column shows the file that was being executed.
+
+If the output looks illogical, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt
new file mode 100644
index 000000000000..14fd851fab4a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt
@@ -0,0 +1,54 @@
+Following are examples of rb_flowinfo.d.
+
+This is a simple script to trace the flow of Ruby methods. Here it traces the
+example program, Code/Ruby/func_abc.rb.
+
+# rb_flowinfo.d
+C PID DELTA(us) FILE:LINE TYPE -- NAME
+0 146395 2 func_abc.rb:3 method -> Module::method_added
+0 146395 26 func_abc.rb:3 method <- Module::method_added
+0 146395 25 func_abc.rb:8 method -> Module::method_added
+0 146395 11 func_abc.rb:8 method <- Module::method_added
+0 146395 16 func_abc.rb:14 method -> Module::method_added
+0 146395 10 func_abc.rb:14 method <- Module::method_added
+0 146395 15 func_abc.rb:20 method -> Object::func_a
+0 146395 12 func_abc.rb:15 method -> Object::print
+0 146395 20 func_abc.rb:15 method -> IO::write
+0 146395 110 func_abc.rb:15 method <- IO::write
+0 146395 11 func_abc.rb:15 method <- Object::print
+0 146395 11 func_abc.rb:16 method -> Object::sleep
+0 146395 1003728 func_abc.rb:16 method <- Object::sleep
+0 146395 35 func_abc.rb:17 method -> Object::func_b
+0 146395 20 func_abc.rb:9 method -> Object::print
+0 146395 12 func_abc.rb:9 method -> IO::write
+0 146395 42 func_abc.rb:9 method <- IO::write
+0 146395 11 func_abc.rb:9 method <- Object::print
+0 146395 11 func_abc.rb:10 method -> Object::sleep
+0 146395 1009976 func_abc.rb:10 method <- Object::sleep
+0 146395 35 func_abc.rb:11 method -> Object::func_c
+0 146395 20 func_abc.rb:4 method -> Object::print
+0 146395 12 func_abc.rb:4 method -> IO::write
+0 146395 38 func_abc.rb:4 method <- IO::write
+0 146395 11 func_abc.rb:4 method <- Object::print
+0 146395 11 func_abc.rb:5 method -> Object::sleep
+0 146395 1009883 func_abc.rb:5 method <- Object::sleep
+0 146395 29 func_abc.rb:5 method <- Object::func_c
+0 146395 12 func_abc.rb:11 method <- Object::func_b
+0 146395 11 func_abc.rb:17 method <- Object::func_a
+^C
+
+As each method is entered, the last column is indented by 2 spaces. This
+shows which method is calling which.
+
+The DELTA(us) column shows the change in time from the previous line to the
+current line.
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt
new file mode 100644
index 000000000000..27102da8ec35
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt
@@ -0,0 +1,56 @@
+The following are examples of rb_flowtime.d.
+
+This is a simple script to trace the flow of Ruby methods.
+Here it traces the example program, Code/Ruby/func_abc.rb
+
+# rb_flowtime.d
+ C TIME(us) FILE DELTA(us) -- CLASS::METHOD
+ 0 3066547402640 func_abc.rb 2 -> Module::method_added
+ 0 3066547402662 func_abc.rb 22 <- Module::method_added
+ 0 3066547402683 func_abc.rb 20 -> Module::method_added
+ 0 3066547402693 func_abc.rb 9 <- Module::method_added
+ 0 3066547402707 func_abc.rb 14 -> Module::method_added
+ 0 3066547402716 func_abc.rb 9 <- Module::method_added
+ 0 3066547402729 func_abc.rb 12 -> Object::func_a
+ 0 3066547402740 func_abc.rb 10 -> Object::print
+ 0 3066547402759 func_abc.rb 18 -> IO::write
+ 0 3066547402860 func_abc.rb 101 <- IO::write
+ 0 3066547402871 func_abc.rb 10 <- Object::print
+ 0 3066547402881 func_abc.rb 10 -> Object::sleep
+ 0 3066548410630 func_abc.rb 1007749 <- Object::sleep
+ 0 3066548410660 func_abc.rb 30 -> Object::func_b
+ 0 3066548410679 func_abc.rb 18 -> Object::print
+ 0 3066548410689 func_abc.rb 10 -> IO::write
+ 0 3066548410730 func_abc.rb 40 <- IO::write
+ 0 3066548410740 func_abc.rb 9 <- Object::print
+ 0 3066548410749 func_abc.rb 9 -> Object::sleep
+ 0 3066549420724 func_abc.rb 1009974 <- Object::sleep
+ 0 3066549420755 func_abc.rb 30 -> Object::func_c
+ 0 3066549420773 func_abc.rb 18 -> Object::print
+ 0 3066549420783 func_abc.rb 10 -> IO::write
+ 0 3066549420825 func_abc.rb 41 <- IO::write
+ 0 3066549420835 func_abc.rb 9 <- Object::print
+ 0 3066549420844 func_abc.rb 9 -> Object::sleep
+ 0 3066550430611 func_abc.rb 1009766 <- Object::sleep
+ 0 3066550430635 func_abc.rb 24 <- Object::func_c
+ 0 3066550430645 func_abc.rb 10 <- Object::func_b
+ 0 3066550430655 func_abc.rb 9 <- Object::func_a
+^C
+
+The fifth column is indented by 2 spaces to show when a new method begins.
+This shows which method is calling which.
+
+The TIME(us) column shows time since boot.
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the seventh line of data output
+(skipping the header) reads as "the time from func_a beginning to
+calling the print method was 10 microseconds".
+
+The FILE column shows file that was being executed.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt
new file mode 100644
index 000000000000..27c9c0c071e4
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt
@@ -0,0 +1,25 @@
+This is a list of examples of the usage of rb_funccalls.d.
+
+It reports method calls from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Here we run it while the program Code/Ruby/func_abc.rb is executing.
+
+# rb_funccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE CLASS METHOD CALLS
+ func_abc.rb Object func_a 1
+ func_abc.rb Object func_b 1
+ func_abc.rb Object func_c 1
+ func_abc.rb IO write 3
+ func_abc.rb Module method_added 3
+ func_abc.rb Object print 3
+ func_abc.rb Object sleep 3
+
+We can see that during that one Ruby program, Our 3 user-defined methods,
+func_a, func_b and func_c are called once each. Amongst other calls we can
+see that a method from class IO - write, was called three times; probably by
+the print method. If you look at the example program Code/Ruby/func_abc.rb,
+you can see that 'print' is used three times, but IO::write is never directly
+called.
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt
new file mode 100644
index 000000000000..544b508f6282
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt
@@ -0,0 +1,30 @@
+This simple script uses the line probe to count how many times a line was
+executed in a Ruby program. In this example you can see it running on the
+Code/Ruby/func_slow.rb program.
+
+# rb_lines.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE:LINE COUNT
+ func_slow.rb:3 1
+ func_slow.rb:4 1
+ func_slow.rb:5 1
+ func_slow.rb:6 1
+ func_slow.rb:12 1
+ func_slow.rb:13 1
+ func_slow.rb:14 1
+ func_slow.rb:15 1
+ func_slow.rb:19 1
+ func_slow.rb:22 1
+ func_slow.rb:23 1
+ func_slow.rb:24 1
+ func_slow.rb:25 1
+ func_slow.rb:29 1
+ func_slow.rb:32 1
+ func_slow.rb:26 100000
+ func_slow.rb:27 100000
+ func_slow.rb:16 200000
+ func_slow.rb:17 200000
+ func_slow.rb:7 300000
+ func_slow.rb:8 300000
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt
new file mode 100644
index 000000000000..e0917c9af7cc
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt
@@ -0,0 +1,120 @@
+The following is an example of rb_malloc.d.
+
+WARNING: This script is not 100% accurate; This prints graphical
+representations of libc malloc() byte distributions by "recent" Ruby operation,
+which we hope will be usually correct. This is an experimental script that may
+be improved over time.
+
+Here we can see it running on Code/Ruby/func_abc.rb
+
+# rb_malloc.d -c ./func_abc.rb
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Ruby malloc byte distributions by recent Ruby operation,
+ func_abc.rb, method, Object::print
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 1
+ 32 | 0
+
+ func_abc.rb, method, Module::method_added
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ ., objnew, fatal
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@ 1
+ 4 |@ 1
+ 8 |@@@ 2
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 22
+ 32 |@@@@@@ 5
+ 64 | 0
+
+ func_abc.rb, method, IO::write
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8192 | 0
+
+ ., objnew, SystemStackError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 | 3
+ 4 |@@@@ 32
+ 8 |@@ 15
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 279
+ 32 |@@@ 30
+ 64 | 2
+ 128 | 0
+
+ ., objnew, NoMemoryError
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@ 3
+ 4 |@@@ 17
+ 8 |@@@@@@ 37
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@ 146
+ 32 |@@ 13
+ 64 | 2
+ 128 |@@@ 20
+ 256 | 0
+ 512 | 0
+ 1024 | 1
+ 2048 | 0
+
+ ., objnew, ThreadGroup
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 | 8
+ 4 |@@@ 224
+ 8 |@ 93
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1806
+ 32 |@@@@@@@@ 496
+ 64 | 3
+ 128 | 2
+ 256 | 0
+ 512 | 1
+ 1024 | 0
+
+ ., objnew, Object
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 | 35
+ 4 |@@@ 291
+ 8 |@@@ 300
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2679
+ 32 |@@ 215
+ 64 | 7
+ 128 | 0
+
+ ruby, startup, -
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@ 10
+ 4 |@@@ 34
+ 8 |@@@ 38
+ 16 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 409
+ 32 |@@ 30
+ 64 | 1
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 2
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 0
+ 32768 | 0
+ 65536 | 0
+ 131072 | 1
+ 262144 | 0
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt
new file mode 100644
index 000000000000..48e8a78abbcb
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt
@@ -0,0 +1,51 @@
+The following are examples of running rb_objcpu.d.
+
+The rb_objnew.d script reports the on-CPU time for new Object creation in Ruby
+while the script is tracing. Here we see it running while
+Code/Ruby/func_abc.rb is executed.
+
+# rb_objcpu.d
+Tracing... Hit Ctrl-C to end.
+^C
+Total object creation on-CPU time (ms): 0
+
+Object creation on-CPU time distributions (us),
+
+ NoMemoryError
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ SystemStackError
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ fatal
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ ThreadGroup
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 16 | 0
+
+ Object
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@ 1
+ 2 |@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 |@@@@@@@@@@@@@ 1
+ 16 | 0
+
+We can see that there were several different types of Objects created
+including three of type 'Object', one of which took 1 microsecond, one of
+which took 2 to 3 microseconds, and the last of which took between 8 and 15
+microseconds.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt
new file mode 100644
index 000000000000..340ac9a8cf11
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt
@@ -0,0 +1,21 @@
+The following are examples of running rb_objnew.d.
+
+The rb_objnew.d script reports the new Ruby objects created (by filename and
+class) while the script is tracing. Here we see it running while
+Code/Ruby/func_abc.rb is executed.
+
+# rb_objnew.d
+Tracing... Hit Ctrl-C to end.
+^C
+ FILE CLASS COUNT
+ . NoMemoryError 1
+ . SystemStackError 1
+ . ThreadGroup 1
+ . fatal 1
+ . Object 3
+
+Since this is a simple example, not many objects were allocated - a few
+for the ruby engine, and three of class Object. No file was associated
+with these allocations, as they may have been caused by Ruby engine startup,
+and not necessarily lines of code in the example program.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt
new file mode 100644
index 000000000000..706bf95b15cc
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt
@@ -0,0 +1,22 @@
+The following are examples of running rb_stat.d on Ruby programs.
+
+rb_stat.d shows you the number of events per second that have happened since
+the last line output. The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the rb_stat.d script reflecting the Code/Ruby/func_slow.rb script.
+
+# ./rb_stat.d
+TIME EXEC/s METHOD/s OBJNEW/s OBJFRE/s RAIS/s RESC/s GC/s
+2007 Sep 17 03:59:07 0 0 0 0 0 0 0
+2007 Sep 17 03:59:08 0 210426 7 0 0 0 0
+2007 Sep 17 03:59:09 0 724067 0 0 0 0 0
+2007 Sep 17 03:59:10 0 730877 0 0 0 0 0
+2007 Sep 17 03:59:11 0 134645 0 0 0 0 0
+2007 Sep 17 03:59:12 0 0 0 0 0 0 0
+2007 Sep 17 03:59:13 0 0 0 0 0 0 0
+^C
+
+We can see that at 2007 Sep 17 03:59:08 there were 0 new Ruby programs
+executed, 210426 methods called, 7 objects created, 0 objects freed, 0 raises,
+0 rescues and 0 garbage collects.
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt
new file mode 100644
index 000000000000..869884b313c3
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt
@@ -0,0 +1,54 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Ruby methods and system calls. Here we trace
+an example program - Code/Ruby/func_abc.rb
+
+# rb_syscalls.d -c ./func_abc.rb
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+
+Calls for PID 146493,
+
+ FILE TYPE NAME COUNT
+ func_abc.rb method Object::func_a 1
+ func_abc.rb method Object::func_b 1
+ func_abc.rb method Object::func_c 1
+ func_abc.rb syscall getpid 1
+ func_abc.rb syscall getrlimit 1
+ func_abc.rb syscall getrlimit64 1
+ func_abc.rb syscall mmap 1
+ func_abc.rb syscall munmap 1
+ func_abc.rb syscall rexit 1
+ func_abc.rb syscall schedctl 1
+ func_abc.rb syscall sigpending 1
+ func_abc.rb syscall sysconfig 1
+ func_abc.rb syscall sysi86 1
+ func_abc.rb syscall write 1
+ func_abc.rb syscall llseek 2
+ func_abc.rb syscall read 2
+ func_abc.rb syscall setcontext 2
+ func_abc.rb method IO::write 3
+ func_abc.rb method Module::method_added 3
+ func_abc.rb method Object::print 3
+ func_abc.rb method Object::sleep 3
+ func_abc.rb syscall fstat64 3
+ func_abc.rb syscall getgid 3
+ func_abc.rb syscall getuid 3
+ func_abc.rb syscall ioctl 3
+ func_abc.rb syscall pollsys 3
+ func_abc.rb syscall close 4
+ func_abc.rb syscall lwp_sigmask 4
+ func_abc.rb syscall open64 4
+ func_abc.rb syscall gtime 6
+ func_abc.rb syscall sigaction 12
+ func_abc.rb syscall brk 56
+
+While tracing, three user-defined functions were called - func_a, func_b and
+func_c. There were 3 instances of the IO::write method being called. There
+were also many system calls made, including 56 brk()'s, and 12 sigaction()'s.
+
+This script can provide an insight to how a Ruby program is interacting
+with the system, by providing methods and system calls in the same output.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt
new file mode 100644
index 000000000000..854016e07e9a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt
@@ -0,0 +1,331 @@
+The following are examples of rb_syscolors.d.
+
+This is a simple script to trace the method flow of Ruby functions within a
+program, and the system calls made. It renders the output in color ("colour")
+using terminal escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Ruby/func_abc.rb.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# rb_syscolors.d -c ./func_abc.rb
+C PID DELTA(us) FILE:LINE TYPE -- NAME
+0 146499 2 ":- syscall -> munmap
+0 146499 35 ":- syscall <- munmap
+0 146499 56 ":- syscall -> mmap
+0 146499 18 ":- syscall <- mmap
+0 146499 41 ":- syscall -> setcontext
+0 146499 10 ":- syscall <- setcontext
+0 146499 10 ":- syscall -> getrlimit
+0 146499 11 ":- syscall <- getrlimit
+0 146499 9 ":- syscall -> getpid
+0 146499 8 ":- syscall <- getpid
+0 146499 66 ":- syscall -> setcontext
+0 146499 8 ":- syscall <- setcontext
+0 146499 1125 ":- syscall -> sysi86
+0 146499 12 ":- syscall <- sysi86
+0 146499 86 ":- syscall -> open64
+0 146499 89 ":- syscall <- open64
+0 146499 13 ":- syscall -> ioctl
+0 146499 35 ":- syscall <- ioctl
+0 146499 15 ":- syscall -> close
+0 146499 16 ":- syscall <- close
+0 146499 141 ":- syscall -> getrlimit64
+0 146499 10 ":- syscall <- getrlimit64
+0 146499 37 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 17 ":- syscall <- brk
+0 146499 19 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 11 ":- syscall <- brk
+0 146499 495 ":- syscall -> brk
+0 146499 11 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 55 ":- syscall -> sysconfig
+0 146499 9 ":- syscall <- sysconfig
+0 146499 109 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 189 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 161 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 144 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 184 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 129 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 174 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 145 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 129 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 134 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 135 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 136 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 98 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 132 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 125 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 189 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 413 ":- syscall -> brk
+0 146499 11 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 171 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 137 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 188 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 135 ":- syscall -> sigaction
+0 146499 10 ":- syscall <- sigaction
+0 146499 10 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> sigaction
+0 146499 8 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 9 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 12 ":- syscall -> sigpending
+0 146499 8 ":- syscall <- sigpending
+0 146499 15 ":- syscall -> schedctl
+0 146499 44 ":- syscall <- schedctl
+0 146499 17 ":- syscall -> lwp_sigmask
+0 146499 8 ":- syscall <- lwp_sigmask
+0 146499 9 ":- syscall -> sigaction
+0 146499 8 ":- syscall <- sigaction
+0 146499 11 ":- syscall -> lwp_sigmask
+0 146499 8 ":- syscall <- lwp_sigmask
+0 146499 9 ":- syscall -> lwp_sigmask
+0 146499 7 ":- syscall <- lwp_sigmask
+0 146499 8 ":- syscall -> sigaction
+0 146499 7 ":- syscall <- sigaction
+0 146499 8 ":- syscall -> lwp_sigmask
+0 146499 7 ":- syscall <- lwp_sigmask
+0 146499 65 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 11 ":- syscall <- brk
+0 146499 149 ":- syscall -> getuid
+0 146499 9 ":- syscall <- getuid
+0 146499 12 ":- syscall -> getgid
+0 146499 8 ":- syscall <- getgid
+0 146499 29 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 184 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 9 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 171 ":- syscall -> brk
+0 146499 9 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 10 ":- syscall <- brk
+0 146499 48 ":- syscall -> getuid
+0 146499 8 ":- syscall <- getuid
+0 146499 9 ":- syscall -> getuid
+0 146499 7 ":- syscall <- getuid
+0 146499 10 ":- syscall -> getgid
+0 146499 7 ":- syscall <- getgid
+0 146499 8 ":- syscall -> getgid
+0 146499 7 ":- syscall <- getgid
+0 146499 79 ":- syscall -> open64
+0 146499 31 ":- syscall <- open64
+0 146499 14 ":- syscall -> llseek
+0 146499 9 ":- syscall <- llseek
+0 146499 9 ":- syscall -> close
+0 146499 12 ":- syscall <- close
+0 146499 15 ":- syscall -> open64
+0 146499 13 ":- syscall <- open64
+0 146499 21 ":- syscall -> fstat64
+0 146499 11 ":- syscall <- fstat64
+0 146499 22 ":- syscall -> read
+0 146499 36 ":- syscall <- read
+0 146499 153 ":- syscall -> read
+0 146499 10 ":- syscall <- read
+0 146499 11 ":- syscall -> llseek
+0 146499 8 ":- syscall <- llseek
+0 146499 8 ":- syscall -> close
+0 146499 9 ":- syscall <- close
+0 146499 23 func_abc.rb:3 line -- 
+0 146499 64 func_abc.rb:3 method -> Module::method_added
+0 146499 24 func_abc.rb:3 method <- Module::method_added
+0 146499 20 func_abc.rb:8 line -- 
+0 146499 15 func_abc.rb:8 method -> Module::method_added
+0 146499 13 func_abc.rb:8 method <- Module::method_added
+0 146499 13 func_abc.rb:14 line -- 
+0 146499 14 func_abc.rb:14 method -> Module::method_added
+0 146499 13 func_abc.rb:14 method <- Module::method_added
+0 146499 12 func_abc.rb:20 line -- 
+0 146499 13 func_abc.rb:20 method -> Object::func_a
+0 146499 12 func_abc.rb:15 line -- 
+0 146499 10 func_abc.rb:15 method -> Object::print
+0 146499 22 func_abc.rb:15 method -> IO::write
+0 146499 38 ":- syscall -> ioctl
+0 146499 11 ":- syscall <- ioctl
+0 146499 20 ":- syscall -> fstat64
+0 146499 9 ":- syscall <- fstat64
+0 146499 9 ":- syscall -> brk
+0 146499 8 ":- syscall <- brk
+0 146499 8 ":- syscall -> brk
+0 146499 11 ":- syscall <- brk
+0 146499 25 ":- syscall -> fstat64
+0 146499 8 ":- syscall <- fstat64
+0 146499 10 func_abc.rb:15 method <- IO::write
+0 146499 13 func_abc.rb:15 method <- Object::print
+0 146499 12 func_abc.rb:16 line -- 
+0 146499 10 func_abc.rb:16 method -> Object::sleep
+0 146499 20 ":- syscall -> gtime
+0 146499 9 ":- syscall <- gtime
+0 146499 24 ":- syscall -> pollsys
+0 146499 1006964 ":- syscall <- pollsys
+0 146499 26 ":- syscall -> gtime
+0 146499 14 ":- syscall <- gtime
+0 146499 18 func_abc.rb:16 method <- Object::sleep
+0 146499 27 func_abc.rb:17 line -- 
+0 146499 21 func_abc.rb:17 method -> Object::func_b
+0 146499 19 func_abc.rb:9 line -- 
+0 146499 12 func_abc.rb:9 method -> Object::print
+0 146499 14 func_abc.rb:9 method -> IO::write
+0 146499 15 func_abc.rb:9 method <- IO::write
+0 146499 12 func_abc.rb:9 method <- Object::print
+0 146499 12 func_abc.rb:10 line -- 
+0 146499 9 func_abc.rb:10 method -> Object::sleep
+0 146499 12 ":- syscall -> gtime
+0 146499 8 ":- syscall <- gtime
+0 146499 11 ":- syscall -> pollsys
+0 146499 1009739 ":- syscall <- pollsys
+0 146499 26 ":- syscall -> gtime
+0 146499 14 ":- syscall <- gtime
+0 146499 18 func_abc.rb:10 method <- Object::sleep
+0 146499 27 func_abc.rb:11 line -- 
+0 146499 21 func_abc.rb:11 method -> Object::func_c
+0 146499 20 func_abc.rb:4 line -- 
+0 146499 12 func_abc.rb:4 method -> Object::print
+0 146499 14 func_abc.rb:4 method -> IO::write
+0 146499 15 func_abc.rb:4 method <- IO::write
+0 146499 12 func_abc.rb:4 method <- Object::print
+0 146499 12 func_abc.rb:5 line -- 
+0 146499 9 func_abc.rb:5 method -> Object::sleep
+0 146499 12 ":- syscall -> gtime
+0 146499 8 ":- syscall <- gtime
+0 146499 11 ":- syscall -> pollsys
+Function A
+Function B
+Function C
+0 146499 1009762 ":- syscall <- pollsys
+0 146499 25 ":- syscall -> gtime
+0 146499 14 ":- syscall <- gtime
+0 146499 19 func_abc.rb:5 method <- Object::sleep
+0 146499 26 func_abc.rb:5 method <- Object::func_c
+0 146499 13 func_abc.rb:11 method <- Object::func_b
+0 146499 13 func_abc.rb:17 method <- Object::func_a
+0 146499 33 ":- syscall -> sigaction
+0 146499 10 ":- syscall <- sigaction
+0 146499 100 ":- syscall -> open64
+0 146499 107 ":- syscall <- open64
+0 146499 10 ":- syscall -> ioctl
+0 146499 10 ":- syscall <- ioctl
+0 146499 11 ":- syscall -> close
+0 146499 17 ":- syscall <- close
+0 146499 28 ":- syscall -> write
+0 146499 20 ":- syscall <- write
+0 146499 11 ":- syscall -> rexit
+
+Here you can see the output showing the path the program follows in its
+execution.
+
+ie:
+0 146499 10 func_abc.rb:16 method -> Object::sleep
+0 146499 20 ":- syscall -> gtime
+0 146499 9 ":- syscall <- gtime
+0 146499 24 ":- syscall -> pollsys
+0 146499 1006964 ":- syscall <- pollsys
+0 146499 26 ":- syscall -> gtime
+0 146499 14 ":- syscall <- gtime
+0 146499 18 func_abc.rb:16 method <- Object::sleep
+0 146499 27 func_abc.rb:17 line -- 
+0 146499 21 func_abc.rb:17 method -> Object::func_b
+0 146499 19 func_abc.rb:9 line -- 
+0 146499 12 func_abc.rb:9 method -> Object::print
+0 146499 14 func_abc.rb:9 method -> IO::write
+0 146499 15 func_abc.rb:9 method <- IO::write
+0 146499 12 func_abc.rb:9 method <- Object::print
+0 146499 12 func_abc.rb:10 line -- 
+
+shows that on cpu 0 the program is running a sleep command at line 16 of the
+func_abc.rb program (the pollsys and gtime syscalls are used in the Ruby
+engine to implement sleep). Then func_b runs, and prints a line
+(using Object::print which uses IO::write). Notice that the 'write' syscall
+does not happen until later. It is probably being buffered by Ruby - you can
+confirm this through further DTracing. Notice also tht you can see the output
+of the program:
+
+Function A
+Function B
+Function C
+
+in the file happening before the write syscall is run. DTrace does not do its
+output in 'real time'. There is a slight delay due to buffering.
diff --git a/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt
new file mode 100644
index 000000000000..35c0bb70edef
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt
@@ -0,0 +1,20 @@
+These are examples of the results after running the rb_who.d script.
+
+This script shows which UIDs and PIDs are running Ruby programs with Ruby
+provider support, and how active they are. It lists the name of the program,
+along with the number of lines executed per program as recorded by the line
+provider.
+
+Here it runs as three Ruby programs are executed. Code/Ruby/func_abc.rb runs
+twice and Code/Ruby/func_slow.rb once.
+
+# rb_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID LINES FILE
+ 146485 0 12 ./func_abc.rb
+ 146486 0 12 ./func_abc.rb
+ 146487 0 1200015 ./func_slow.rb
+
+You can see that func_abc.rb has twelve lines of executable Ruby code, and
+that func_slow.rb has 100,000x that.
diff --git a/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt b/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt
new file mode 100644
index 000000000000..fa2923b1b649
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the readbytes.d script,
+
+
+Here the readbytes.d script is run for a few seconds, then Ctrl-C is hit,
+
+ # readbytes.d
+ dtrace: description 'sysinfo:::readch ' matched 4 probes
+ ^C
+
+ mozilla-bin 16
+ gnome-smproxy 64
+ metacity 64
+ dsdm 64
+ wnck-applet 64
+ xscreensaver 96
+ gnome-terminal 900
+ ttymon 5952
+ Xorg 17544
+
+In this interval the Xorg command has successfully read 17.5 Kb, while
+ttymon has read 5952 bytes.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt b/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt
new file mode 100644
index 000000000000..42811d8d36ae
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt
@@ -0,0 +1,35 @@
+The following is an example of the readdist.d script,
+
+
+Here the readdist.d script is run for a few seconds, then Ctrl-C is hit,
+
+ # readdist.d
+ dtrace: description 'sysinfo:::readch ' matched 4 probes
+ ^C
+ [...]
+ gnome-terminal
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 15
+ 64 |@@@ 1
+ 128 | 0
+
+ Xorg
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@ 26
+ 1 | 0
+ 2 | 0
+ 4 | 0
+ 8 |@@@@ 6
+ 16 |@ 2
+ 32 |@ 2
+ 64 | 0
+ 128 |@@@@@@@@ 11
+ 256 |@@@ 4
+ 512 | 0
+
+This allows us to understand the read behaviour of each process. The
+Xorg command has executed 26 reads that returned 0 bytes, through
+to 4 reads that were at least 256 bytes (up to 511).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt b/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt
new file mode 100644
index 000000000000..dcce81ee4da7
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt
@@ -0,0 +1,94 @@
+The following are demonstrations of the rfileio.d script.
+
+
+rfileio.d prints file system statistics by file,
+
+ # ./rfileio.d
+
+ Read IOPS, top 20 (count)
+ /lib/ld.so.1 logical 2
+ /devices/pseudo/clone@0:ptm logical 4
+ /usr/bin/grep logical 4
+ /devices/pseudo/pts@0:3 logical 4
+ /extra1/contents physical 1700
+ /extra1/contents logical 11582
+
+ Read Bandwidth, top 20 (bytes)
+ /devices/pseudo/pts@0:3 logical 3
+ /devices/pseudo/clone@0:ptm logical 92
+ /lib/ld.so.1 logical 212
+ /usr/bin/grep logical 269
+ /extra1/contents physical 48115712
+ /extra1/contents logical 94865162
+
+ Total File System miss-rate: 50%
+ ^C
+
+ $ ls -l /extra1/contents
+ -rw-r--r-- 1 root root 94865162 Nov 2 21:08 /extra1/contents
+
+The /extra1/contents file was read using the grep command. The output shows
+that half of the contents was returned from the cache, the other half from disk
+(50% miss-rate). It is 94,865,162 bytes in size, which can be seen both in
+the ls -l output and the logical read() bytes reported by rfileio.d. There
+were 11,582 logical read() calls, which the disk driver satisfied by using
+1,700 disk events (aggregation).
+
+
+
+The following demonstrates many files being read.
+
+ # ./rfileio.d
+
+ Read IOPS, top 20 (count)
+ /usr/bin/amd64/glib-mkenums logical 4
+ /usr/bin/amd64/glib-genmarshal physical 4
+ /usr/bin/amd64/gdk-pixbuf-query-loaders logical 4
+ /usr/bin/amd64/ls logical 5
+ /usr/bin/amd64/pargs logical 5
+ /usr/bin/amd64/ps logical 5
+ /usr/bin/amd64/gconf-merge-tree physical 6
+ /usr/bin/amd64/cputrack logical 6
+ /usr/bin/amd64/gconftool-2 physical 6
+ /usr/bin/amd64/prctl logical 6
+ /usr/bin/amd64/prstat logical 6
+ /usr/bin/amd64/glib-genmarshal logical 7
+ /usr/bin/amd64/truss physical 8
+ /usr/bin/amd64/sort logical 9
+ /usr/bin/amd64/prex logical 10
+ /usr/bin/amd64/gconf-merge-tree logical 13
+ /usr/bin/amd64/mdb physical 15
+ /usr/bin/amd64/gconftool-2 logical 15
+ /usr/bin/amd64/truss logical 26
+ /usr/bin/amd64/mdb logical 63
+
+ Read Bandwidth, top 20 (bytes)
+ /usr/bin/amd64/prctl logical 36784
+ /usr/bin/amd64/prctl physical 36864
+ /usr/bin/amd64/prstat logical 44760
+ /usr/bin/amd64/prstat physical 45056
+ /usr/bin/amd64/glib-genmarshal logical 46064
+ /usr/bin/amd64/glib-genmarshal physical 46080
+ /usr/bin/amd64/cputrack logical 46912
+ /usr/bin/amd64/cputrack physical 47104
+ /usr/bin/amd64/sort logical 65120
+ /usr/bin/amd64/sort physical 65536
+ /usr/bin/amd64/prex logical 80968
+ /usr/bin/amd64/prex physical 81920
+ /usr/bin/amd64/gconf-merge-tree logical 113592
+ /usr/bin/amd64/gconf-merge-tree physical 122880
+ /usr/bin/amd64/gconftool-2 logical 129208
+ /usr/bin/amd64/gconftool-2 physical 139264
+ /usr/bin/amd64/truss logical 246360
+ /usr/bin/amd64/truss physical 262144
+ /usr/bin/amd64/mdb logical 627456
+ /usr/bin/amd64/mdb physical 638976
+
+ Total File System miss-rate: 81%
+ ^C
+
+The miss-rate was 81%, meaning we are returning around 20% of the data from
+the cache. Details for the top 20 files read by-bytes and by-count are listed;
+this shows the /usr/bin/amd64/mdb file was read() 63 times, causing 15 disk
+reads, and while 627,456 bytes were requested, 638,976 bytes were read from
+disk (the extra bytes are due to read-ahead and file system metadata).
diff --git a/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt b/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt
new file mode 100644
index 000000000000..858ddf840088
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt
@@ -0,0 +1,82 @@
+The following are demonstrations of the rfsio.d script.
+
+
+
+Here we trace file read() activity that has fully missed the cache and
+must be read from disk,
+
+ # ./rfsio.d
+
+ Read IOPS (count)
+ / logical 7
+ /extra1 physical 162
+ /boot logical 235
+ /boot physical 410
+ /extra1 logical 9514
+
+ Read Bandwidth (bytes)
+ / logical 533
+ /boot logical 1502386
+ /boot physical 1512960
+ /extra1 physical 97153024
+ /extra1 logical 97228668
+
+ Total File System miss-rate: 100%
+ ^C
+
+The miss rate of 100% means that all of the file system activity missed
+the cache, and had to read from disk.
+
+
+
+The following demonstrates file read() activity to the root filesystem
+that mostly returned from the file system cache.
+
+ # ./rfsio.d
+
+ Read IOPS (count)
+ / physical 1
+ /extra1 physical 9
+ /devices logical 9
+ / logical 15
+ /extra1 logical 4096
+
+ Read Bandwidth (bytes)
+ /devices logical 9
+ / logical 949
+ / physical 8192
+ /extra1 physical 917504
+ /extra1 logical 4194304
+
+ Total File System miss-rate: 22%
+ ^C
+
+The total miss-rate was 22%, which is based on the bytes transferred that
+missed the cache.
+
+
+
+
+Now for an unusual demonstration,
+
+ # ./rfsio.d
+
+ Read IOPS (count)
+ /devices logical 1
+ / logical 10
+ /extra1 physical 106
+ /extra1 logical 6337
+
+ Read Bandwidth (bytes)
+ /devices logical 2
+ / logical 961
+ /extra1 logical 64846450
+ /extra1 physical 66151424
+
+ Total File System miss-rate: 102%
+ ^C
+
+Here the miss-rate is 102%, which indicates that more data was read from
+disk than was requested; this can occur due to UFS read-ahead, which
+assists the performance of sequential disk activity at the small risk of
+reading too much data.
diff --git a/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt b/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt
new file mode 100644
index 000000000000..53dcb5f96671
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt
@@ -0,0 +1,53 @@
+The following are demonstrations of the runocc.d script.
+
+
+
+Here we run it on a single CPU server that is fairly busy,
+
+ # ./runocc.d
+
+ CPU %runocc
+ 0 86
+
+ CPU %runocc
+ 0 85
+
+ CPU %runocc
+ 0 82
+ ^C
+
+The run queue occupancy is around 85%, meaning most of the time there
+are runnable threads queued waiting for CPU.
+
+
+
+This script is more interesting on a multi-CPU server,
+
+ # ./runocc.d
+
+ CPU %runocc
+ 1 16
+ 3 27
+ 0 38
+ 2 75
+
+ CPU %runocc
+ 0 25
+ 2 41
+ 3 42
+ 1 50
+
+ CPU %runocc
+ 3 1
+ 0 17
+ 2 26
+ 1 27
+
+ CPU %runocc
+ 3 2
+ 2 5
+ 0 24
+ 1 25
+ ^C
+
+Here there was some degree of saturation, especially on CPU 2 to start with.
diff --git a/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt
new file mode 100644
index 000000000000..9091adfef859
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt
@@ -0,0 +1,26 @@
+The following is a demonstration of the rwbbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # rwbbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD DIR BYTES
+ 20347 bash R 22
+ 11053 dtrace W 32
+ 1532 Xorg W 64
+ 20317 sshd R 86
+ 20347 bash W 87
+ 20317 sshd W 137
+ 1659 mozilla-bin R 213
+ 20334 sshd R 1232
+ 20334 sshd W 1282
+ 11054 cp W 18652
+ 11054 cp R 18652
+ 1532 Xorg R 51112
+ 1659 mozilla-bin W 51261
+
+In the above output, we can see that mozilla-bin with PID 1659 has written
+51261 bytes, while Xorg has read 51112 bytes.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt
new file mode 100644
index 000000000000..0c8559b45da9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt
@@ -0,0 +1,19 @@
+The following is a demonstration of the rwbypid.d script,
+
+
+Here we run it for a few seconds then hit Ctrl-C,
+
+ # rwbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD DIR COUNT
+ 11131 dtrace W 2
+ 20334 sshd W 17
+ 20334 sshd R 24
+ 1532 Xorg W 69
+ 1659 mozilla-bin R 852
+ 1659 mozilla-bin W 1128
+ 1532 Xorg R 1702
+
+In the above output, we can see that Xorg with PID 1532 has made 1702 reads.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt b/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt
new file mode 100644
index 000000000000..118cf1657c64
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt
@@ -0,0 +1,37 @@
+The following is an example fo the rwbytype.d script.
+
+
+We run rwbytype.d for a few seconds then hit Ctrl-C,
+
+ # rwbytype.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD VTYPE DIR BYTES
+ 1545 sshd chr W 1
+ 10357 more chr R 30
+ 2357 sshd chr W 31
+ 10354 dtrace chr W 32
+ 1545 sshd chr R 34
+ 6778 bash chr W 44
+ 1545 sshd sock R 52
+ 405 poold reg W 68
+ 1545 sshd sock W 136
+ 10357 bash reg R 481
+ 10356 find reg R 481
+ 10355 bash reg R 481
+ 10357 more reg R 1652
+ 2357 sshd sock R 1664
+ 10357 more chr W 96925
+ 10357 more fifo R 97280
+ 2357 sshd chr R 98686
+ 10356 grep fifo W 117760
+ 2357 sshd sock W 118972
+ 10356 grep reg R 147645
+
+Here we can see that the grep process with PID 10356 read 147645 bytes
+from "regular" files. These are I/O bytes at the application level, so
+much of these read bytes would have been cached by the filesystem page cache.
+
+vnode file types are listed in /usr/include/sys/vnode.h, and give an idea of
+what the file descriptor refers to.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt
new file mode 100644
index 000000000000..2ef26ababd94
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt
@@ -0,0 +1,98 @@
+The following is a demonstration of the rwsnoop program,
+
+
+Here we run it for about a second,
+
+ # rwsnoop
+ UID PID CMD D BYTES FILE
+ 100 20334 sshd R 52 <unknown>
+ 100 20334 sshd W 1 /devices/pseudo/clone@0:ptm
+ 0 20320 bash W 1 /devices/pseudo/pts@0:12
+ 100 20334 sshd R 2 /devices/pseudo/clone@0:ptm
+ 100 20334 sshd W 52 <unknown>
+ 0 2848 ls W 58 /devices/pseudo/pts@0:12
+ 0 2848 ls W 68 /devices/pseudo/pts@0:12
+ 0 2848 ls W 57 /devices/pseudo/pts@0:12
+ 0 2848 ls W 67 /devices/pseudo/pts@0:12
+ 0 2848 ls W 48 /devices/pseudo/pts@0:12
+ 0 2848 ls W 49 /devices/pseudo/pts@0:12
+ 0 2848 ls W 33 /devices/pseudo/pts@0:12
+ 0 2848 ls W 41 /devices/pseudo/pts@0:12
+ 100 20334 sshd R 429 /devices/pseudo/clone@0:ptm
+ 100 20334 sshd W 468 <unknown>
+ ^C
+
+The output scrolls rather fast. Above, we can see an ls command was run,
+and we can see as ls writes each line. The "<unknown>" read/writes are
+socket activity, which have no corresponding filename.
+
+
+For a summary style output, use the rwtop program.
+
+
+
+If a particular program is of interest, the "-n" option can be used
+to match on process name. Here we match on "bash" during a login where
+the user uses the bash shell as their default,
+
+ # rwsnoop -n bash
+ UID PID CMD D BYTES FILE
+ 100 2854 bash R 757 /etc/nsswitch.conf
+ 100 2854 bash R 0 /etc/nsswitch.conf
+ 100 2854 bash R 668 /etc/passwd
+ 100 2854 bash R 980 /etc/profile
+ 100 2854 bash W 15 /devices/pseudo/pts@0:14
+ 100 2854 bash R 10 /export/home/brendan/.bash_profile
+ 100 2854 bash R 867 /export/home/brendan/.bashrc
+ 100 2854 bash R 980 /etc/profile
+ 100 2854 bash W 15 /devices/pseudo/pts@0:14
+ 100 2854 bash R 8951 /export/home/brendan/.bash_history
+ 100 2854 bash R 8951 /export/home/brendan/.bash_history
+ 100 2854 bash R 1652 /usr/share/lib/terminfo/d/dtterm
+ 100 2854 bash W 41 /devices/pseudo/pts@0:14
+ 100 2854 bash R 1 /devices/pseudo/pts@0:14
+ 100 2854 bash W 1 /devices/pseudo/pts@0:14
+ 100 2854 bash W 41 /devices/pseudo/pts@0:14
+ 100 2854 bash R 1 /devices/pseudo/pts@0:14
+ 100 2854 bash W 7 /devices/pseudo/pts@0:14
+
+In the above, various bash related files such as ".bash_profile" and
+".bash_history" can be seen. The ".bashrc" is also read, as it was sourced
+from the .bash_profile.
+
+
+
+Extra options with rwsnoop allow us to print zone ID, project ID, timestamps,
+etc. Here we use "-v" to see the time printed, and match on "ps" processes,
+
+ # rwsnoop -vn ps
+ TIMESTR UID PID CMD D BYTES FILE
+ 2005 Jul 24 04:23:45 0 2804 ps R 168 /proc/2804/auxv
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/2804/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 1495 /etc/ttysrch
+ 2005 Jul 24 04:23:45 0 2804 ps W 28 /devices/pseudo/pts.
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/0/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/1/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/2/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/3/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/218/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/7/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/9/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/360/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/91/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/112/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/307/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/226/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/242/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/228/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/243/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/234/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/119/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/143/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/361/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/20314/psinfo
+ 2005 Jul 24 04:23:45 0 2804 ps R 336 /proc/116/psinfo
+ [...]
+
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt b/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt
new file mode 100644
index 000000000000..728431243f87
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt
@@ -0,0 +1,59 @@
+The following is a demonstration of the rwtop program,
+
+
+By default it will refresh the screen every 5 seconds,
+
+ # rwtop
+ 2005 Jul 24 01:00:43, load: 1.02, app_r: 8 KB, app_w: 19 KB
+
+ UID PID PPID CMD D BYTES
+ 0 20320 20347 bash R 10
+ 0 20320 20347 bash W 95
+ 100 20317 20314 sshd R 650
+ 100 20317 20314 sshd W 733
+ 0 2365 20320 ls W 1300
+ 0 2364 20320 vi R 2323
+ 0 2365 20320 ls R 2485
+ 100 20334 20331 sshd R 3010
+ 100 20334 20331 sshd W 3729
+ 0 2364 20320 vi W 14128
+
+In the above output, we can see that a "vi" process wrote 14 Kbytes and
+read 2 Kbytes.
+
+
+
+In the following example, we print the top 5 processes in a scrolling
+output by using "-C" to not clear the screen,
+
+ # rwtop -C -t5
+ Tracing... Please wait.
+ 2005 Jul 24 01:03:27, load: 1.05, app_r: 261 KB, app_w: 348 KB
+
+ UID PID PPID CMD D BYTES
+ 0 2381 20320 svcs W 5801
+ 0 9 1 svc.configd R 115712
+ 0 2380 20320 find W 140003
+ 100 20334 20331 sshd R 150740
+ 100 20334 20331 sshd W 210773
+
+ 2005 Jul 24 01:03:32, load: 1.07, app_r: 110 KB, app_w: 233 KB
+
+ UID PID PPID CMD D BYTES
+ 100 20317 20314 sshd R 419
+ 100 20317 20314 sshd W 468
+ 0 2382 20320 find W 110720
+ 100 20334 20331 sshd R 112835
+ 100 20334 20331 sshd W 128175
+
+ 2005 Jul 24 01:03:37, load: 1.07, app_r: 6 KB, app_w: 7 KB
+
+ UID PID PPID CMD D BYTES
+ 0 2383 20320 df W 1154
+ 0 2385 20320 ls W 1300
+ 0 2385 20320 ls R 2485
+ 100 20334 20331 sshd R 3929
+ 100 20334 20331 sshd W 4339
+
+ ^C
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt
new file mode 100644
index 000000000000..d60d44644b7e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt
@@ -0,0 +1,62 @@
+The following is an example of the sampleproc program.
+
+
+Here we run sampleproc for a few seconds on a workstation,
+
+ # ./sampleproc
+ Sampling at 100 hertz... Hit Ctrl-C to end.
+ ^C
+ PID CMD COUNT
+ 1659 mozilla-bin 3
+ 109 nscd 4
+ 2197 prstat 23
+ 2190 setiathome 421
+
+ PID CMD PERCENT
+ 1659 mozilla-bin 0
+ 109 nscd 0
+ 2197 prstat 5
+ 2190 setiathome 93
+
+The first table shows a count of how many times each process was sampled
+on the CPU. The second table gives this as a percentage.
+
+setiathome was on the CPU 421 times, which is 93% of the samples.
+
+
+
+
+The following is sampleproc running on a server with 4 CPUs. A bash shell
+is running in an infinate loop,
+
+ # ./sampleproc
+ Sampling at 100 hertz... Hit Ctrl-C to end.
+ ^C
+ PID CMD COUNT
+ 10140 dtrace 1
+ 28286 java 1
+ 29345 esd 2
+ 29731 esd 3
+ 2 pageout 4
+ 29733 esd 6
+ 10098 bash 1015
+ 0 sched 3028
+
+ PID CMD PERCENT
+ 10140 dtrace 0
+ 28286 java 0
+ 29345 esd 0
+ 29731 esd 0
+ 2 pageout 0
+ 29733 esd 0
+ 10098 bash 24
+ 0 sched 74
+
+The bash shell was on the CPUs for 24% of the time, which is consistant
+with a CPU bound single threaded application on a 4 CPU server.
+
+The above sample was around 10 seconds long. During this time, there were
+around 4000 samples (checking the COUNT column), this is due to
+4000 = CPUs (4) * Hertz (100) * Seconds (10).
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt b/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt
new file mode 100644
index 000000000000..7669eba5b61f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt
@@ -0,0 +1,55 @@
+The following is a demonstration of the sar-c.d script.
+
+
+Here we run both sar-c.d and "sar -c 1 100" at the same time, to compare
+outputs.
+
+The DTrace script,
+
+ # ./sar-c.d
+ Time scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s
+ 2005 Jun 14 02:40:24 1556 82 71 0.00 0.00 10262 10508
+ 2005 Jun 14 02:40:25 1553 88 75 0.00 0.00 15095 15341
+ 2005 Jun 14 02:40:26 1596 89 76 0.00 0.00 14885 15131
+ 2005 Jun 14 02:40:27 5395 290 154 9.00 10.00 185991 77219
+ 2005 Jun 14 02:40:28 1755 91 98 1.00 1.00 15421 16788
+ 2005 Jun 14 02:40:29 1757 100 91 1.00 1.00 17127 17462
+ 2005 Jun 14 02:40:30 1603 95 80 0.00 0.00 16767 16634
+ 2005 Jun 14 02:40:31 14380 83 2420 1.00 1.00 14556 126461
+ 2005 Jun 14 02:40:32 10573 88 1586 0.00 0.00 14222 87888
+ 2005 Jun 14 02:40:33 1645 87 76 0.00 0.00 15320 15608
+ 2005 Jun 14 02:40:34 2099 167 130 0.00 0.00 126295 74281
+ 2005 Jun 14 02:40:35 1559 79 67 0.00 0.00 11663 11977
+ [...]
+
+The original command,
+
+ $ sar -c 1 100
+
+ SunOS jupiter 5.10 Generic i86pc 06/14/2005
+
+ 02:40:23 scall/s sread/s swrit/s fork/s exec/s rchar/s wchar/s
+ 02:40:24 1549 86 74 0.00 0.00 14799 15040
+ 02:40:25 1552 85 73 0.00 0.00 14475 14719
+ 02:40:26 5479 300 161 9.00 10.00 186755 77983
+ 02:40:27 1725 86 94 0.99 0.99 14819 16172
+ 02:40:28 1596 96 82 0.00 0.00 16521 16762
+ 02:40:29 1716 93 85 1.00 1.00 16395 16730
+ 02:40:30 1579 88 75 0.00 0.00 15324 15192
+ 02:40:32 23036 79 3887 0.99 0.99 10113 193520
+ 02:40:33 1756 94 83 0.00 0.00 14935 15300
+ 02:40:34 2099 165 130 0.00 0.00 125051 73552
+ 02:40:35 1560 82 69 0.00 0.00 15976 16287
+ [...]
+
+We can see that both tools are producing similar data.
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The sar-c.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt b/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt
new file mode 100644
index 000000000000..ba41a87e847e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt
@@ -0,0 +1,197 @@
+The following are examples of seeksize.d.
+
+seeksize.d records disk head seek size for each operation by process.
+This allows up to identify processes that are causing "random" disk
+access and those causing "sequential" disk access.
+
+It is desirable for processes to be accesing the disks in large
+sequential operations. By using seeksize.d and bitesize.d we can
+identify this behaviour.
+
+
+
+In this example we read through a large file by copying it to a
+remote server. Most of the seek sizes are zero, indicating sequential
+access - and we would expect good performance from the disks
+under these conditions,
+
+# ./seeksize.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ 22349 scp /dl/sol-10-b63-x86-v1.iso mars:\0
+
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 726
+ 1 | 0
+ 2 | 0
+ 4 | 0
+ 8 |@ 13
+ 16 | 4
+ 32 | 0
+ 64 | 0
+ 128 | 2
+ 256 | 3
+ 512 | 4
+ 1024 | 4
+ 2048 | 3
+ 4096 | 0
+ 8192 | 3
+ 16384 | 0
+ 32768 | 1
+ 65536 | 0
+
+
+
+In this example we run find. The disk operations are fairly scattered,
+as illustrated below by the volume of non sequential reads,
+
+# ./seeksize.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ 22399 find /var/sadm/pkg/\0
+
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@@ 1475
+ 1 | 0
+ 2 | 44
+ 4 |@ 77
+ 8 |@@@ 286
+ 16 |@@ 191
+ 32 |@ 154
+ 64 |@@ 173
+ 128 |@@ 179
+ 256 |@@ 201
+ 512 |@@ 186
+ 1024 |@@ 236
+ 2048 |@@ 201
+ 4096 |@@ 274
+ 8192 |@@ 243
+ 16384 |@ 154
+ 32768 |@ 113
+ 65536 |@@ 182
+ 131072 |@ 81
+ 262144 | 0
+
+
+
+
+I found the following interesting. This time I gzipp'd the large file.
+While zipping, the process is reading from one location and writing
+to another. One might expect that as the program toggles between
+reading from one location and writing to another, that often the
+distance would be the same (depending on where UFS puts the new file),
+
+# ./seeksize.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ 22368 gzip sol-10-b63-x86-v1.iso\0
+
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@ 353
+ 1 | 0
+ 2 | 0
+ 4 | 0
+ 8 | 7
+ 16 | 4
+ 32 | 2
+ 64 | 4
+ 128 | 14
+ 256 | 3
+ 512 | 3
+ 1024 | 5
+ 2048 | 1
+ 4096 | 0
+ 8192 | 3
+ 16384 | 1
+ 32768 | 1
+ 65536 | 1
+ 131072 | 1
+ 262144 |@@@@@@@@ 249
+ 524288 | 1
+ 1048576 | 2
+ 2097152 | 1
+ 4194304 | 2
+ 8388608 |@@@@@@@@@@@@@@@@@@ 536
+ 16777216 | 0
+
+
+
+
+The following example compares the operation of "find" with "tar".
+Both are reading from the same location, and we would expect that
+both programs would generally need to do the same number of seeks
+to navigate the direttory tree (depending on caching); and tar
+causing extra operations as it reads the file contents as well,
+
+# ./seeksize.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+ PID CMD
+ 22278 find /etc\0
+
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@ 251
+ 1 | 0
+ 2 |@ 8
+ 4 | 5
+ 8 |@ 10
+ 16 |@ 10
+ 32 |@ 10
+ 64 |@ 9
+ 128 |@ 11
+ 256 |@ 14
+ 512 |@@ 20
+ 1024 |@ 10
+ 2048 | 6
+ 4096 |@ 7
+ 8192 |@ 10
+ 16384 |@ 16
+ 32768 |@@ 21
+ 65536 |@@ 28
+ 131072 |@ 7
+ 262144 |@ 14
+ 524288 | 6
+ 1048576 |@ 15
+ 2097152 |@ 7
+ 4194304 | 0
+
+
+ 22282 tar cf /dev/null /etc\0
+
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@ 397
+ 1 | 0
+ 2 | 8
+ 4 | 14
+ 8 | 16
+ 16 |@ 24
+ 32 |@ 29
+ 64 |@@ 99
+ 128 |@@ 73
+ 256 |@@ 78
+ 512 |@@@ 109
+ 1024 |@@ 62
+ 2048 |@@ 69
+ 4096 |@@ 73
+ 8192 |@@@ 113
+ 16384 |@@ 81
+ 32768 |@@@ 111
+ 65536 |@@@ 108
+ 131072 |@ 49
+ 262144 |@ 33
+ 524288 | 20
+ 1048576 | 13
+ 2097152 | 7
+ 4194304 | 5
+ 8388608 |@ 30
+ 16777216 | 0
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt b/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt
new file mode 100644
index 000000000000..be197bf4b566
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt
@@ -0,0 +1,28 @@
+The following is an example of setuids.d. Login events in particular can
+be seen, along with use of the "su" command.
+
+ # ./setuids.d
+ UID SUID PPID PID PCMD CMD
+ 0 100 3037 3040 in.telnetd login -p -h mars -d /dev/pts/12
+ 100 0 3040 3045 bash su -
+ 0 102 3045 3051 sh su - fred
+ 0 100 3055 3059 sshd /usr/lib/ssh/sshd
+ 0 100 3065 3067 in.rlogind login -d /dev/pts/12 -r mars
+ 0 100 3071 3073 in.rlogind login -d /dev/pts/12 -r mars
+ 0 102 3078 3081 in.telnetd login -p -h mars -d /dev/pts/12
+ ^C
+
+The first line is a telnet login to the user brendan, UID 100. The parent
+command is "in.telnetd", the telnet daemon spawned by inetd, and the
+command that in.telnetd runs is "login".
+
+The second line shows UID 100 using the "su" command to become root.
+
+The third line has the root user using "su" to become fred, UID 102.
+
+The fourth line is an example of an ssh login.
+
+The fifth and sixth lines are examples of rsh and rlogin.
+
+The last line is another example of a telnet login for fred, UID 102.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt
new file mode 100644
index 000000000000..6c6a01faedb5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt
@@ -0,0 +1,309 @@
+The following are examples of sh_calldist.d.
+
+This script traces the elapsed time of Bourne shell functions and
+prints a report containing distribution plots per function. Here it
+traces the example program, Code/Shell/func_abc.sh.
+
+ # sh_calldist.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Elapsed times (us),
+
+ func_abc.sh, builtin, echo
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 1
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ func_abc.sh, cmd, sleep
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+ Exclusive function elapsed times (us),
+
+ func_abc.sh, func, func_a
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ func_abc.sh, func, func_b
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ func_abc.sh, func, func_c
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ Inclusive function elapsed times (us),
+
+ func_abc.sh, func, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_abc.sh, func, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_abc.sh, func, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+The elapsed times show that the echo builtin takes between 16 and 64 us
+to execute.
+
+The exclusive function elapsed times show that each function spent
+between 2 and 4 ms. This exclusive time excludes the time spent in
+other functions.
+
+The inclusive function elapsed times show that func_c() took between 0.5 and
+1.0 seconds, func_b() took between 1.0 and 2.1 seconds, and func_a() took
+between 2.1 and 4.2 seconds to execute. This inclusive time includes the
+time spent in other functions and commands called, and since func_a()
+calls func_b() which calls func_c(), and, each function is calling "sleep 1",
+these times make sense.
+
+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.
+
+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.
+
+
+
+The following traces the firefox startup script.
+
+# sh_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Elapsed times (us),
+
+ run-mozilla.sh, builtin, return
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ run-mozilla.sh, builtin, shift
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2 | 0
+
+ run-mozilla.sh, builtin, break
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ firefox, builtin, break
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ run-mozilla.sh, builtin, export
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@ 1
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 | 0
+
+ firefox, builtin, export
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4 |@@@@@@@@@@@@@ 1
+ 8 | 0
+
+ firefox, builtin, :
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 2 | 0
+ 4 |@@@@@@@ 1
+ 8 | 0
+
+ firefox, builtin, pwd
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ firefox, builtin, test
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ firefox, builtin, cd
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@ 1
+ 16 |@@@@@@@@@@@@@ 1
+ 32 |@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ firefox, builtin, [
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@ 3
+ 2 |@@ 1
+ 4 |@@ 1
+ 8 |@@@@@@@ 3
+ 16 |@@@@@@@@@@@ 5
+ 32 |@@@@@@@ 3
+ 64 |@@@@ 2
+ 128 | 0
+
+ run-mozilla.sh, builtin, type
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ run-mozilla.sh, builtin, [
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@ 4
+ 2 |@@@@@@@@@@ 5
+ 4 |@@@@ 2
+ 8 |@@@@@@ 3
+ 16 |@@@@@@@@@@ 5
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@ 1
+ 4096 | 0
+
+ firefox, builtin, echo
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@ 1
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ firefox, cmd, /usr/lib/firefox/run-mozilla.sh
+ value ------------- Distribution ------------- count
+ 2097152 | 0
+ 4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8388608 | 0
+
+ run-mozilla.sh, cmd, /usr/lib/firefox/firefox-bin
+ value ------------- Distribution ------------- count
+ 2097152 | 0
+ 4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8388608 | 0
+
+Exclusive function elapsed times (us),
+
+ run-mozilla.sh, func, moz_test_binary
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 64 | 0
+
+ firefox, func, moz_spc_verbose_echo
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@ 2
+ 8 |@@@@@@@@@@@@@ 2
+ 16 |@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ firefox, func, moz_pis_startstop_scripts
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ run-mozilla.sh, func, moz_run_program
+ value ------------- Distribution ------------- count
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 262144 | 0
+
+Inclusive function elapsed times (us),
+
+ firefox, func, moz_spc_verbose_echo
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 4
+ 16 |@@@@@@@@@@@@@ 2
+ 32 | 0
+
+ run-mozilla.sh, func, moz_test_binary
+ value ------------- Distribution ------------- count
+ 32 | 0
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ firefox, func, moz_pis_startstop_scripts
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 | 0
+ 32768 |@@@@@@@@@@@@@@@@@@@@ 1
+ 65536 | 0
+
+ run-mozilla.sh, func, moz_run_program
+ value ------------- Distribution ------------- count
+ 2097152 | 0
+ 4194304 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 8388608 | 0
+
+
+As an example of interpreting the output: the inclusive elapsed time for
+the "[" (test) builtin,
+
+ firefox, builtin, [
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@ 3
+ 2 |@@ 1
+ 4 |@@ 1
+ 8 |@@@@@@@ 3
+ 16 |@@@@@@@@@@@ 5
+ 32 |@@@@@@@ 3
+ 64 |@@@@ 2
+ 128 | 0
+
+shows that it was called 17 times (after adding up the counts), 5 of which
+took between 16 and 31 microseconds.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt
new file mode 100644
index 000000000000..064cf977936f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt
@@ -0,0 +1,60 @@
+The following are examples of sh_calls.d.
+
+This is a simple script to count Bourne shell calls. Here it traces an
+example program, Code/Perl/func_abc.sh.
+
+ # sh_calls.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ FILE TYPE NAME COUNT
+ func_abc.sh func func_a 1
+ func_abc.sh func func_b 1
+ func_abc.sh func func_c 1
+ func_abc.sh builtin echo 3
+ func_abc.sh cmd sleep 3
+
+While tracing, function func_a() from the program "func_abc.sh" was executed
+once, along with func_b() and func_c(). The "echo" builtin was called 3
+times, as was the "sleep" command.
+
+
+The following traced the firefox start script,
+
+ # sh_calls.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ FILE TYPE NAME COUNT
+ firefox builtin . 1
+ firefox builtin break 1
+ firefox builtin exit 1
+ firefox builtin pwd 1
+ firefox builtin test 1
+ firefox cmd /usr/lib/firefox/run-mozilla.sh 1
+ run-mozilla.sh builtin break 1
+ run-mozilla.sh builtin exit 1
+ run-mozilla.sh builtin return 1
+ run-mozilla.sh builtin shift 1
+ run-mozilla.sh builtin type 1
+ run-mozilla.sh cmd /usr/lib/firefox/firefox-bin 1
+ run-mozilla.sh func moz_run_program 1
+ run-mozilla.sh func moz_test_binary 1
+ firefox builtin echo 2
+ firefox func moz_pis_startstop_scripts 2
+ firefox builtin cd 3
+ firefox builtin export 3
+ run-mozilla.sh builtin export 3
+ firefox builtin : 6
+ firefox func moz_spc_verbose_echo 6
+ run-mozilla.sh subsh - 9
+ firefox builtin [ 18
+ firefox subsh - 20
+ run-mozilla.sh builtin [ 20
+
+The firefox start script called run-mozilla.sh, which can be seen both
+as a "cmd" call in the above output from the "firefox" script, and as
+additionall calls from the "run-mozilla.sh" script.
+
+The builtin called "[" is the test builtin, and was called 20 times by
+"run-mozilla.sh" and 18 times by "firefox". The "firefox" script also called
+20 subshells.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt
new file mode 100644
index 000000000000..5c39ae404f0d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt
@@ -0,0 +1,144 @@
+The following are examples of sh_calltime.d.
+
+This script traces the elapsed time of Bourne shell functions and
+prints a report. Here it traces the example program, Code/Shell/func_abc.sh.
+
+ # sh_calltime.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Counts,
+ FILE TYPE NAME COUNT
+ func_abc.sh func func_a 1
+ func_abc.sh func func_b 1
+ func_abc.sh func func_c 1
+ func_abc.sh builtin echo 3
+ func_abc.sh cmd sleep 3
+ - total - 9
+
+ Elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.sh builtin echo 108
+ func_abc.sh cmd sleep 3023760
+ - total - 3023868
+
+ Exclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.sh func func_b 2629
+ func_abc.sh func func_c 2822
+ func_abc.sh func func_a 3249
+ - total - 8702
+
+ Inclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ func_abc.sh func func_c 1009659
+ func_abc.sh func func_b 2020077
+ func_abc.sh func func_a 3032571
+
+In total, three functions were called, one builtin and one command.
+
+The elapsed times show that 3.0 seconds was spent in the sleep command,
+which is what would be expected based on the script.
+
+The exclusive function elapsed times show that each function spent around
+2.7 milliseconds of time processing code - while not in other functions.
+
+The inclusive function elapsed times show that func_a() took around 3.0
+seconds to execute, followed by func_b() at 2.0 seconds, and func_c() at 1.0.
+The inclusive time includes the time spent in other calls, and since
+func_a() called func_b() which called func_c(), and they all call "sleep 1",
+these times make sense.
+
+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.
+
+If you study the func_abc.sh program alongside the above output, the numbers
+should make sense.
+
+
+
+The following traces the firefox start script.
+
+# sh_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Counts,
+ FILE TYPE NAME COUNT
+ firefox builtin break 1
+ firefox builtin pwd 1
+ firefox builtin test 1
+ firefox cmd /usr/lib/firefox/run-mozilla.sh 1
+ run-mozilla.sh builtin break 1
+ run-mozilla.sh builtin return 1
+ run-mozilla.sh builtin shift 1
+ run-mozilla.sh builtin type 1
+ run-mozilla.sh cmd /usr/lib/firefox/firefox-bin 1
+ run-mozilla.sh func moz_run_program 1
+ run-mozilla.sh func moz_test_binary 1
+ firefox builtin echo 2
+ firefox func moz_pis_startstop_scripts 2
+ firefox builtin cd 3
+ firefox builtin export 3
+ run-mozilla.sh builtin export 3
+ firefox builtin : 6
+ firefox func moz_spc_verbose_echo 6
+ firefox builtin [ 18
+ run-mozilla.sh builtin [ 20
+ - total - 103
+
+Elapsed times (us),
+ FILE TYPE NAME TOTAL
+ run-mozilla.sh builtin return 1
+ run-mozilla.sh builtin shift 1
+ run-mozilla.sh builtin break 2
+ firefox builtin break 4
+ run-mozilla.sh builtin export 6
+ firefox builtin export 10
+ firefox builtin : 15
+ firefox builtin pwd 50
+ firefox builtin cd 72
+ run-mozilla.sh builtin [ 210
+ firefox builtin echo 323
+ firefox builtin [ 480
+ run-mozilla.sh builtin type 486
+ firefox builtin test 15330
+ run-mozilla.sh cmd /usr/lib/firefox/firefox-bin 8941269
+ firefox cmd /usr/lib/firefox/run-mozilla.sh 9384335
+ - total - 18342766
+
+Exclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ run-mozilla.sh func moz_test_binary 54
+ firefox func moz_spc_verbose_echo 136
+ firefox func moz_pis_startstop_scripts 230221
+ run-mozilla.sh func moz_run_program 402343
+ - total - 632756
+
+Inclusive function elapsed times (us),
+ FILE TYPE NAME TOTAL
+ run-mozilla.sh func moz_test_binary 91
+ firefox func moz_spc_verbose_echo 151
+ firefox func moz_pis_startstop_scripts 230587
+ run-mozilla.sh func moz_run_program 9343826
+
+
+
+The output showed that the most inclusive function elapsed time was in
+moz_run_program() at 9.3 seconds, which comes as little suprise since
+I let firefox run for several seconds before closing it. That same duration
+explains the large command times in the elapsed times report.
+
+Of more interest are the exclusive function elapsed times, where
+moz_pis_startstop_scripts() was the slowest at 230 ms. Other areas of the
+report are also useful to sanity check your software - should it be calling
+these things? Especially if there are any commands called that can be
+builtins instead.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt
new file mode 100644
index 000000000000..272e9093d55f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt
@@ -0,0 +1,92 @@
+The following are examples of sh_cpudist.d.
+
+This script traces the on-CPU time of Bourne shell functions and
+prints a report containing distribution plots per function. Here it
+traces the example program, Code/Shell/func_slow.sh.
+
+ # sh_cpudist.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ On-CPU times (us),
+
+ func_slow.sh, builtin, echo
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@ 1
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+
+ func_slow.sh, builtin, [
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 | 1
+ 2 | 1
+ 4 |@ 22
+ 8 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 575
+ 16 | 2
+ 32 | 0
+ 64 | 2
+ 128 | 0
+
+ Exclusive function on-CPU times (us),
+
+ func_slow.sh, func, func_a
+ value ------------- Distribution ------------- count
+ 65536 | 0
+ 131072 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 262144 | 0
+
+ func_slow.sh, func, func_b
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ func_slow.sh, func, func_c
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ Inclusive function on-CPU times (us),
+
+ func_slow.sh, func, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_slow.sh, func, func_c
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ func_slow.sh, func, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+The on-CPU times should that the "[" builtin (test) usually took between
+8 and 15 microseconds to execute, and was called over 500 times.
+
+The exclusive function on-CPU times show that func_a() spent between
+131 ms and 262 ms on-CPU.
+
+The inclusive function on-CPU times show that both func_b() and func_c()
+spent between 1.0 and 2.1 seconds on-CPU, and func_a() spent between 2.1
+and 4.2 seconds on-CPU. This inclusive time includes the time spent in other
+functions called, and since func_a() called func_b() which called func_c(),
+these times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_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.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt
new file mode 100644
index 000000000000..d3ae5bc50b11
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt
@@ -0,0 +1,131 @@
+The following are examples of sh_cputime.d.
+
+This script traces the on-CPU time of Bourne shell functions and
+prints a report. Here it traces the example program, Code/Shell/func_slow.sh.
+
+ # sh_cputime.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ Counts,
+ FILE TYPE NAME COUNT
+ func_slow.sh func func_a 1
+ func_slow.sh func func_b 1
+ func_slow.sh func func_c 1
+ func_slow.sh builtin echo 3
+ func_slow.sh builtin [ 603
+ - total - 609
+
+ On-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.sh builtin echo 162
+ func_slow.sh builtin [ 6279
+ - total - 6441
+
+ Exclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.sh func func_a 269465
+ func_slow.sh func func_b 670372
+ func_slow.sh func func_c 1259073
+ - total - 2198911
+
+ Inclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ func_slow.sh func func_c 1262209
+ func_slow.sh func func_b 1934839
+ func_slow.sh func func_a 2205352
+
+In total, three functions were called, one builtin and one command.
+
+The exclusive function on-CPU times show that func_a() spent around 268.4 ms
+on-CPU, func_b() spent 670.3 ms, and func_c() spent 1259 ms. This exclusive
+times excludes time spent in other functions.
+
+The inclusive function on-CPU times show that func_c() spent around 1.3
+seconds on-CPU, func_b() spent around 1.9 seconds, and func_a() spent around
+2.2 seconds. This inclusive time includes the time spent in other functions
+called, and since func_a() called func_b() which called func_c(), these
+times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_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.
+
+If you study the func_slow.sh program alongside the above output, the numbers
+should make sense.
+
+
+
+The following traced the firefox start script.
+
+# sh_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Counts,
+ FILE TYPE NAME COUNT
+ firefox builtin break 1
+ firefox builtin pwd 1
+ firefox builtin test 1
+ firefox cmd run-mozilla.sh 1
+ run-mozilla.sh builtin break 1
+ run-mozilla.sh builtin return 1
+ run-mozilla.sh builtin shift 1
+ run-mozilla.sh builtin type 1
+ run-mozilla.sh cmd firefox-bin 1
+ run-mozilla.sh func moz_run_program 1
+ run-mozilla.sh func moz_test_binary 1
+ firefox builtin echo 2
+ firefox func moz_pis_startstop_scripts 2
+ firefox builtin cd 3
+ firefox builtin export 3
+ run-mozilla.sh builtin export 3
+ firefox builtin : 6
+ firefox func moz_spc_verbose_echo 6
+ firefox builtin [ 18
+ run-mozilla.sh builtin [ 20
+ - total - 103
+
+On-CPU times (us),
+ FILE TYPE NAME TOTAL
+ run-mozilla.sh builtin return 0
+ run-mozilla.sh builtin shift 0
+ run-mozilla.sh builtin break 1
+ firefox builtin break 2
+ run-mozilla.sh builtin export 4
+ firefox builtin export 7
+ firefox builtin : 9
+ firefox builtin test 35
+ firefox builtin pwd 49
+ firefox builtin cd 64
+ run-mozilla.sh builtin [ 176
+ firefox builtin echo 309
+ firefox builtin [ 357
+ run-mozilla.sh builtin type 475
+ firefox cmd run-mozilla.sh 17090
+ run-mozilla.sh cmd firefox-bin 1932333
+ - total - 1950979
+
+Exclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ run-mozilla.sh func moz_test_binary 21
+ firefox func moz_spc_verbose_echo 22
+ run-mozilla.sh func moz_run_program 9098
+ firefox func moz_pis_startstop_scripts 12960
+ - total - 22103
+
+Inclusive function on-CPU times (us),
+ FILE TYPE NAME TOTAL
+ firefox func moz_spc_verbose_echo 31
+ run-mozilla.sh func moz_test_binary 56
+ run-mozilla.sh func moz_run_program 9243
+ firefox func moz_pis_startstop_scripts 13133
+
+The output showed that the most CPU time was spent in the firefox-bin command,
+taking 1.9 seconds of on-CPU time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt
new file mode 100644
index 000000000000..de7f22b88196
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt
@@ -0,0 +1,129 @@
+The following are examples of sh_flow.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+ # sh_flow.d
+ C TIME(us) FILE -- NAME
+ 0 3060274370505 func_abc.sh -> func_a
+ 0 3060274370529 func_abc.sh > echo
+ 0 3060274372742 func_abc.sh | sleep
+ 0 3060275381634 func_abc.sh -> func_b
+ 0 3060275381660 func_abc.sh > echo
+ 0 3060275383852 func_abc.sh | sleep
+ 0 3060276391653 func_abc.sh -> func_c
+ 0 3060276391679 func_abc.sh > echo
+ 0 3060276393671 func_abc.sh | sleep
+ 0 3060277401753 func_abc.sh <- func_c
+ 0 3060277401767 func_abc.sh <- func_b
+ 0 3060277401775 func_abc.sh <- func_a
+ ^C
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces the firefox startup script.
+
+# sh_flow.d
+ C TIME(us) FILE -- NAME
+ 0 3060321598138 firefox > test
+ 0 3060321603730 firefox > [
+ 0 3060321603796 firefox > cd
+ 0 3060321603878 firefox > [
+ 0 3060321603900 firefox > [
+ 0 3060321604099 firefox > [
+ 0 3060321609050 firefox > echo
+ 0 3060321620601 firefox > echo
+ 0 3060321626369 firefox > [
+ 0 3060321626432 firefox > export
+ 0 3060321626459 firefox -> moz_pis_startstop_scripts
+ 0 3060321626519 firefox > export
+ 0 3060321626966 firefox > [
+ 0 3060321627031 firefox > .
+ 0 3060321628446 firefox -> moz_spc_verbose_echo
+ 0 3060321628458 firefox > :
+ 0 3060321628467 firefox <- moz_spc_verbose_echo
+ 0 3060321636461 firefox > [
+ 0 3060321636738 firefox -> moz_spc_verbose_echo
+ 0 3060321636751 firefox > :
+ 0 3060321636760 firefox <- moz_spc_verbose_echo
+ 0 3060321636778 firefox > [
+ 0 3060321636793 firefox > [
+ 0 3060321636817 firefox > [
+ 0 3060321637126 firefox -> moz_spc_verbose_echo
+ 0 3060321637136 firefox > :
+ 0 3060321637143 firefox <- moz_spc_verbose_echo
+ 0 3060321666922 firefox -> moz_spc_verbose_echo
+ 0 3060321666952 firefox > :
+ 0 3060321666964 firefox <- moz_spc_verbose_echo
+ 0 3060321674929 firefox > [
+ 0 3060321680246 firefox > [
+ 0 3060321680312 firefox -> moz_spc_verbose_echo
+ 0 3060321680323 firefox > :
+ 0 3060321680331 firefox <- moz_spc_verbose_echo
+ 0 3060321680356 firefox -> moz_spc_verbose_echo
+ 0 3060321680363 firefox > :
+ 0 3060321680370 firefox <- moz_spc_verbose_echo
+ 0 3060321680396 firefox > [
+ 0 3060321680428 firefox <- moz_pis_startstop_scripts
+ 0 3060321680525 firefox > [
+ 0 3060321680580 firefox > [
+ 0 3060321685358 firefox | /usr/lib/firefox/run-mozilla.sh
+ 0 3060321700731 run-mozilla.sh > [
+ 0 3060321700950 run-mozilla.sh > break
+ 0 3060321703259 run-mozilla.sh > [
+ 0 3060321703292 run-mozilla.sh > shift
+ 0 3060321703382 run-mozilla.sh > [
+ 0 3060321703421 run-mozilla.sh > [
+ 0 3060321703493 run-mozilla.sh > [
+ 0 3060321703642 run-mozilla.sh > [
+ 0 3060321703669 run-mozilla.sh > export
+ 0 3060321703706 run-mozilla.sh > [
+ 0 3060321703725 run-mozilla.sh > [
+ 0 3060321703857 run-mozilla.sh > [
+ 0 3060321703880 run-mozilla.sh > export
+ 0 3060321703925 run-mozilla.sh > export
+ 0 3060321703954 run-mozilla.sh > [
+ 0 3060321703982 run-mozilla.sh -> moz_run_program
+ 0 3060321704013 run-mozilla.sh > [
+ 0 3060321704049 run-mozilla.sh -> moz_test_binary
+ 0 3060321704065 run-mozilla.sh > [
+ 0 3060321704097 run-mozilla.sh > [
+ 0 3060321704127 run-mozilla.sh > return
+ 0 3060321704137 run-mozilla.sh <- moz_test_binary
+ 0 3060321704151 run-mozilla.sh > [
+ 0 3060321709953 run-mozilla.sh > type
+ 0 3060321724260 run-mozilla.sh > [
+ 0 3060321724559 run-mozilla.sh > [
+ 0 3060321724574 run-mozilla.sh > [
+ 0 3060321727396 run-mozilla.sh | /usr/lib/firefox/firefox-bin
+ 0 3060325513871 run-mozilla.sh > [
+ 0 3060325513898 run-mozilla.sh > [
+ 0 3060325513929 run-mozilla.sh > [
+ 0 3060325513940 run-mozilla.sh <- moz_run_program
+ 0 3060325513967 run-mozilla.sh > exit
+ 0 3060325515113 firefox -> moz_pis_startstop_scripts
+ 0 3060325515189 firefox > export
+ 0 3060325515431 firefox > [
+ 0 3060325515466 firefox > [
+ 0 3060325515487 firefox <- moz_pis_startstop_scripts
+ 0 3060325515503 firefox > exit
+
+This shows the flow, incluing the handover between the "firefox" script
+and the "run-mozilla.sh" script.
+
+There is a point in the output where flow appears to reverse (at time
+3060321709953, with the entry "> type"). This is due to another instance
+of the run-mozilla.sh script running, which is indistinguishable from
+the other lines in the output. To confirm this for yourself, add a PID
+column to the flow script (or use sh_flowinfo.d).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt
new file mode 100644
index 000000000000..1fb27cf4ea2d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt
@@ -0,0 +1,242 @@
+The following are examples of sh_flowinfo.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+ # sh_flowinfo.d
+ C PID DELTA(us) FILE:LINE TYPE -- NAME
+ 0 19634 2 func_abc.sh:23 func -> func_a
+ 0 19634 24 func_abc.sh:18 builtin -> echo
+ 0 19634 41 func_abc.sh:- builtin <- echo
+ 0 19634 5873 func_abc.sh:19 cmd -> sleep
+ 0 19634 999373 func_abc.sh:- cmd <- sleep
+ 0 19634 39 func_abc.sh:20 func -> func_b
+ 0 19634 22 func_abc.sh:11 builtin -> echo
+ 0 19634 40 func_abc.sh:- builtin <- echo
+ 0 19634 4661 func_abc.sh:12 cmd -> sleep
+ 0 19634 1005349 func_abc.sh:- cmd <- sleep
+ 0 19634 49 func_abc.sh:13 func -> func_c
+ 0 19634 22 func_abc.sh:5 builtin -> echo
+ 0 19634 38 func_abc.sh:- builtin <- echo
+ 0 19634 4949 func_abc.sh:6 cmd -> sleep
+ 0 19634 1004817 func_abc.sh:- cmd <- sleep
+ 0 19634 36 func_abc.sh:- func <- func_c
+ 0 19634 14 func_abc.sh:- func <- func_b
+ 0 19634 8 func_abc.sh:- func <- func_a
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output abovebegins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column shows time from that line to the previous line, and
+so can be a bit tricky to read. For example, the fifth line of data output
+(skipping the header) reads as "the time from the command sleep beginning
+to ending was 999373 us, or 1.0 seconds".
+
+The LINE column shows the line in the file what was being executed. Refer
+to the source program to see what this line refers to.
+
+If the output looks shuffled, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+The following traces the firefox startup script.
+
+# sh_flowinfo.d
+ C PID DELTA(us) FILE:LINE TYPE -- NAME
+ 0 156789 1 firefox:- subsh -> pid 156790
+ 0 156789 20 firefox:- subsh <- = 0
+ 0 156789 31651 firefox:- subsh -> pid 156791
+ 0 156789 20 firefox:- subsh <- = 0
+ 0 156789 10502 firefox:109 builtin -> test
+ 0 156789 59 firefox:- builtin <- test
+ 0 156789 3804 firefox:- subsh -> pid 156792
+ 0 156789 21 firefox:- subsh <- = 0
+ 0 156789 22029 firefox:114 builtin -> [
+ 0 156789 57 firefox:- builtin <- [
+ 0 156789 90910 firefox:- subsh -> pid 156793
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156789 159492 firefox:- subsh -> pid 156794
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156789 127 firefox:116 builtin -> cd
+ 0 156789 54 firefox:- builtin <- cd
+ 0 156789 209757 firefox:- subsh -> pid 156795
+ 0 156789 23 firefox:- subsh <- = 0
+ 0 156795 206160 firefox:- subsh -> pid 156796
+ 0 156795 9 firefox:- subsh <- = 0
+ 0 156789 12115 firefox:118 builtin -> [
+ 0 156789 61 firefox:- builtin <- [
+ 0 156789 200529 firefox:- subsh -> pid 156797
+ 0 156789 24 firefox:- subsh <- = 0
+ 0 156789 136 firefox:123 builtin -> [
+ 0 156789 58 firefox:- builtin <- [
+ 0 156789 21 firefox:124 builtin -> cd
+ 0 156789 19 firefox:- builtin <- cd
+ 0 156798 175 firefox:1 builtin -> pwd
+ 0 156798 65 firefox:- builtin <- pwd
+ 0 156789 108835 firefox:- subsh -> pid 156798
+ 0 156789 18 firefox:- subsh <- = 0
+ 0 156789 119 firefox:128 builtin -> break
+ 0 156789 15 firefox:- builtin <- break
+ 0 156789 21 firefox:131 builtin -> cd
+ 0 156789 26 firefox:- builtin <- cd
+ 0 156789 61 firefox:133 builtin -> [
+ 0 156789 9 firefox:- builtin <- [
+ 0 156789 73508 firefox:147 builtin -> [
+ 0 156789 25 firefox:- builtin <- [
+ 0 156800 184 firefox:1 builtin -> echo
+ 0 156800 175 firefox:- builtin <- echo
+ 0 156789 15966 firefox:- subsh -> pid 156799
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156799 12091 firefox:- subsh -> pid 156800
+ 0 156799 10 firefox:- subsh <- = 0
+ 0 156802 178 firefox:1 builtin -> echo
+ 0 156802 167 firefox:- builtin <- echo
+ 0 156789 13822 firefox:- subsh -> pid 156801
+ 0 156789 18 firefox:- subsh <- = 0
+ 0 156801 81683 firefox:- subsh -> pid 156802
+ 0 156801 21 firefox:- subsh <- = 0
+ 0 156789 78324 firefox:158 builtin -> [
+ 0 156789 37 firefox:- builtin <- [
+ 0 156789 54 firefox:194 builtin -> export
+ 0 156789 9 firefox:- builtin <- export
+ 0 156789 26 firefox:197 func -> moz_pis_startstop_scripts
+ 0 156789 61 firefox:62 builtin -> export
+ 0 156789 9 firefox:- builtin <- export
+ 0 156789 413 firefox:67 builtin -> [
+ 0 156789 34 firefox:- builtin <- [
+ 0 156789 40 firefox:69 builtin -> .
+ 0 156789 20833 firefox:18 func -> moz_spc_verbose_echo
+ 0 156789 26 firefox:15 builtin -> :
+ 0 156789 16 firefox:- builtin <- :
+ 0 156789 15 firefox:- func <- moz_spc_verbose_echo
+ 0 156789 105106 firefox:- subsh -> pid 156803
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156789 129 firefox:19 builtin -> [
+ 0 156789 17 firefox:- builtin <- [
+ 0 156789 33 firefox:20 func -> moz_spc_verbose_echo
+ 0 156789 14 firefox:15 builtin -> :
+ 0 156789 7 firefox:- builtin <- :
+ 0 156789 9 firefox:- func <- moz_spc_verbose_echo
+ 0 156789 21 firefox:23 builtin -> [
+ 0 156789 8 firefox:- builtin <- [
+ 0 156789 16 firefox:26 builtin -> [
+ 0 156789 8 firefox:- builtin <- [
+ 0 156789 24 firefox:29 builtin -> [
+ 0 156789 43 firefox:- builtin <- [
+ 0 156789 77 firefox:36 func -> moz_spc_verbose_echo
+ 0 156789 9 firefox:15 builtin -> :
+ 0 156789 8 firefox:- builtin <- :
+ 0 156789 8 firefox:- func <- moz_spc_verbose_echo
+ 0 156789 158947 firefox:- subsh -> pid 156804
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156789 210112 firefox:- subsh -> pid 156805
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156805 205500 firefox:- subsh -> pid 156806
+ 0 156805 10 firefox:- subsh <- = 0
+ 0 156805 200987 firefox:- subsh -> pid 156807
+ 0 156805 20 firefox:- subsh <- = 0
+ 0 156789 363564 firefox:40 func -> moz_spc_verbose_echo
+ 0 156789 26 firefox:15 builtin -> :
+ 0 156789 17 firefox:- builtin <- :
+ 0 156789 15 firefox:- func <- moz_spc_verbose_echo
+ 0 156809 234 firefox:1 builtin -> [
+ 0 156809 70 firefox:- builtin <- [
+ 0 156789 46950 firefox:- subsh -> pid 156808
+ 0 156789 22 firefox:- subsh <- = 0
+ 0 156808 42371 firefox:- subsh -> pid 156809
+ 0 156808 10 firefox:- subsh <- = 0
+ 0 156789 27278 firefox:43 builtin -> [
+ 0 156789 26 firefox:- builtin <- [
+ 0 156789 62 firefox:44 func -> moz_spc_verbose_echo
+ 0 156789 15 firefox:15 builtin -> :
+ 0 156789 8 firefox:- builtin <- :
+ 0 156789 10 firefox:- func <- moz_spc_verbose_echo
+ 0 156789 30 firefox:67 func -> moz_spc_verbose_echo
+ 0 156789 9 firefox:15 builtin -> :
+ 0 156789 8 firefox:- builtin <- :
+ 0 156789 7 firefox:- func <- moz_spc_verbose_echo
+ 0 156789 8 firefox:- builtin <- .
+ 0 156789 28 firefox:67 builtin -> [
+ 0 156789 31 firefox:- builtin <- [
+ 0 156789 8 firefox:- func <- moz_pis_startstop_scripts
+ 0 156789 97 firefox:199 builtin -> [
+ 0 156789 35 firefox:- builtin <- [
+ 0 156789 29 firefox:205 builtin -> [
+ 0 156789 9 firefox:- builtin <- [
+ 0 156789 72519 firefox:209 cmd -> /usr/lib/firefox/run-mozilla.sh
+ 0 156810 1 run-mozilla.sh:- subsh -> pid 156811
+ 0 156810 15 run-mozilla.sh:- subsh <- = 0
+ 0 156810 129474 run-mozilla.sh:- subsh -> pid 156812
+ 0 156810 24 run-mozilla.sh:- subsh <- = 0
+ 0 156810 743 run-mozilla.sh:258 builtin -> [
+ 0 156810 28 run-mozilla.sh:- builtin <- [
+ 0 156810 212 run-mozilla.sh:275 builtin -> break
+ 0 156810 10 run-mozilla.sh:- builtin <- break
+ 0 156810 31 run-mozilla.sh:283 builtin -> [
+ 0 156810 10 run-mozilla.sh:- builtin <- [
+ 0 156810 16 run-mozilla.sh:286 builtin -> shift
+ 0 156810 9 run-mozilla.sh:- builtin <- shift
+ 0 156810 55 run-mozilla.sh:291 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156810 36 run-mozilla.sh:317 builtin -> [
+ 0 156810 34 run-mozilla.sh:- builtin <- [
+ 0 156810 37 run-mozilla.sh:327 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156810 142 run-mozilla.sh:362 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156810 26 run-mozilla.sh:366 builtin -> export
+ 0 156810 9 run-mozilla.sh:- builtin <- export
+ 0 156810 37 run-mozilla.sh:369 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156810 18 run-mozilla.sh:371 builtin -> [
+ 0 156810 19 run-mozilla.sh:- builtin <- [
+ 0 156810 112 run-mozilla.sh:379 builtin -> [
+ 0 156810 10 run-mozilla.sh:- builtin <- [
+ 0 156810 23 run-mozilla.sh:418 builtin -> export
+ 0 156810 9 run-mozilla.sh:- builtin <- export
+ 0 156810 45 run-mozilla.sh:419 builtin -> export
+ 0 156810 10 run-mozilla.sh:- builtin <- export
+ 0 156810 27 run-mozilla.sh:421 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156810 29 run-mozilla.sh:425 func -> moz_run_program
+ 0 156810 32 run-mozilla.sh:137 builtin -> [
+ 0 156810 25 run-mozilla.sh:- builtin <- [
+ 0 156810 20 run-mozilla.sh:145 func -> moz_test_binary
+ 0 156810 17 run-mozilla.sh:97 builtin -> [
+ 0 156810 23 run-mozilla.sh:- builtin <- [
+ 0 156810 15 run-mozilla.sh:99 builtin -> [
+ 0 156810 26 run-mozilla.sh:- builtin <- [
+ 0 156810 13 run-mozilla.sh:101 builtin -> return
+ 0 156810 9 run-mozilla.sh:- builtin <- return
+ 0 156810 11 run-mozilla.sh:- func <- moz_test_binary
+ 0 156810 18 run-mozilla.sh:146 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156814 185 run-mozilla.sh:1 builtin -> type
+ 0 156814 118188 run-mozilla.sh:- builtin <- type
+ 0 156810 167284 run-mozilla.sh:- subsh -> pid 156813
+ 0 156810 23 run-mozilla.sh:- subsh <- = 0
+ 0 156813 162135 run-mozilla.sh:- subsh -> pid 156814
+ 0 156813 12 run-mozilla.sh:- subsh <- = 0
+ 0 156813 200125 run-mozilla.sh:- subsh -> pid 156815
+ 0 156813 22 run-mozilla.sh:- subsh <- = 0
+ 0 156810 203465 run-mozilla.sh:152 builtin -> [
+ 0 156810 51 run-mozilla.sh:- builtin <- [
+ 0 156810 21 run-mozilla.sh:156 builtin -> [
+ 0 156810 9 run-mozilla.sh:- builtin <- [
+ 0 156810 15 run-mozilla.sh:159 builtin -> [
+ 0 156810 14 run-mozilla.sh:- builtin <- [
+ 0 156810 65752 run-mozilla.sh:- subsh -> pid 156816
+ 0 156810 24 run-mozilla.sh:- subsh <- = 0
+ 0 156816 251788 run-mozilla.sh:- subsh -> pid 156817
+ 0 156816 22 run-mozilla.sh:- subsh <- = 0
+ 0 156810 299677 run-mozilla.sh:167 cmd -> /usr/lib/firefox/firefox-bin
+ 0 156810 5124906 run-mozilla.sh:- cmd <- /usr/lib/firefox/firefox-bin
+ 0 156789 5993798 firefox:- cmd <- /usr/lib/firefox/run-mozilla.sh
+
+Now latencies can investigated by line number.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt
new file mode 100644
index 000000000000..03848de62d8e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt
@@ -0,0 +1,131 @@
+The following are examples of sh_flowtime.d.
+
+This is a simple script to trace the flow of Bourne shell functions,
+builtins and external commands. Here it traces the example program,
+Code/Shell/func_abc.sh.
+
+ # sh_flowtime.d
+ C TIME(us) FILE DELTA(us) -- NAME
+ 0 3060817866026 func_abc.sh 2 -> func_a
+ 0 3060817866086 func_abc.sh 60 > echo
+ 0 3060818871601 func_abc.sh 1005514 | sleep
+ 0 3060818871639 func_abc.sh 38 -> func_b
+ 0 3060818871684 func_abc.sh 44 > echo
+ 0 3060819881597 func_abc.sh 1009912 | sleep
+ 0 3060819881657 func_abc.sh 60 -> func_c
+ 0 3060819881717 func_abc.sh 60 > echo
+ 0 3060820891613 func_abc.sh 1009896 | sleep
+ 0 3060820891661 func_abc.sh 47 <- func_c
+ 0 3060820891675 func_abc.sh 14 <- func_b
+ 0 3060820891683 func_abc.sh 7 <- func_a
+ ^C
+
+As each function is entered, the third column is indented by 2 spaces. This
+shows which function is calling who - the output above begins by showing that
+func_a() began, and then called func_b().
+
+The DELTA(us) column is interpreted as follows,
+
+ -> previous line to the start of this function
+ <- previous line to the end of this function
+ > previous line to the end of this builtin
+ | previous line to the end of this command
+
+And so the above output shows that each sleep command is taking around 1.0
+seconds to execute.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
+
+
+The following traces the firefox start script.
+
+# sh_flowtime.d
+ C TIME(us) FILE DELTA(us) -- NAME
+ 0 3060994282580 firefox 2 > test
+ 0 3060994286921 firefox 4341 > [
+ 0 3060994286955 firefox 34 > cd
+ 0 3060994287014 firefox 58 > [
+ 0 3060994287059 firefox 45 > [
+ 0 3060994287227 firefox 167 > [
+ 0 3060994293793 firefox 2 > echo
+ 0 3060994305759 firefox 2 > echo
+ 0 3060994309613 firefox 22385 > [
+ 0 3060994309665 firefox 52 > export
+ 0 3060994309691 firefox 25 -> moz_pis_startstop_scripts
+ 0 3060994309752 firefox 61 > export
+ 0 3060994310199 firefox 447 > [
+ 0 3060994314462 firefox 4262 -> moz_spc_verbose_echo
+ 0 3060994314484 firefox 22 > :
+ 0 3060994314497 firefox 12 <- moz_spc_verbose_echo
+ 0 3060994322101 firefox 7604 > [
+ 0 3060994322134 firefox 33 -> moz_spc_verbose_echo
+ 0 3060994322147 firefox 12 > :
+ 0 3060994322155 firefox 7 <- moz_spc_verbose_echo
+ 0 3060994322501 firefox 345 > [
+ 0 3060994322518 firefox 17 > [
+ 0 3060994322578 firefox 59 > [
+ 0 3060994322641 firefox 62 -> moz_spc_verbose_echo
+ 0 3060994322650 firefox 9 > :
+ 0 3060994322656 firefox 6 <- moz_spc_verbose_echo
+ 0 3060994653794 firefox 331137 -> moz_spc_verbose_echo
+ 0 3060994653826 firefox 32 > :
+ 0 3060994653839 firefox 12 <- moz_spc_verbose_echo
+ 0 3060994659534 firefox 2 > [
+ 0 3060994667539 firefox 13699 > [
+ 0 3060994667604 firefox 65 -> moz_spc_verbose_echo
+ 0 3060994667617 firefox 13 > :
+ 0 3060994667625 firefox 8 <- moz_spc_verbose_echo
+ 0 3060994667653 firefox 27 -> moz_spc_verbose_echo
+ 0 3060994667661 firefox 7 > :
+ 0 3060994667668 firefox 6 <- moz_spc_verbose_echo
+ 0 3060994667675 firefox 7 > .
+ 0 3060994667725 firefox 49 > [
+ 0 3060994667732 firefox 6 <- moz_pis_startstop_scripts
+ 0 3060994667853 firefox 121 > [
+ 0 3060994667881 firefox 27 > [
+ 0 3060994804329 run-mozilla.sh 2 > [
+ 0 3060994804524 run-mozilla.sh 194 > break
+ 0 3060994804560 run-mozilla.sh 36 > [
+ 0 3060994804580 run-mozilla.sh 20 > shift
+ 0 3060994804649 run-mozilla.sh 68 > [
+ 0 3060994804710 run-mozilla.sh 61 > [
+ 0 3060994804747 run-mozilla.sh 36 > [
+ 0 3060994804889 run-mozilla.sh 142 > [
+ 0 3060994804915 run-mozilla.sh 26 > export
+ 0 3060994804952 run-mozilla.sh 36 > [
+ 0 3060994804981 run-mozilla.sh 28 > [
+ 0 3060994805093 run-mozilla.sh 112 > [
+ 0 3060994805116 run-mozilla.sh 22 > export
+ 0 3060994805160 run-mozilla.sh 44 > export
+ 0 3060994805187 run-mozilla.sh 27 > [
+ 0 3060994805215 run-mozilla.sh 27 -> moz_run_program
+ 0 3060994805263 run-mozilla.sh 48 > [
+ 0 3060994805283 run-mozilla.sh 19 -> moz_test_binary
+ 0 3060994805314 run-mozilla.sh 31 > [
+ 0 3060994805346 run-mozilla.sh 31 > [
+ 0 3060994805358 run-mozilla.sh 12 > return
+ 0 3060994805367 run-mozilla.sh 9 <- moz_test_binary
+ 0 3060994805385 run-mozilla.sh 17 > [
+ 0 3060994964498 run-mozilla.sh 2 > type
+ 0 3060995520942 run-mozilla.sh 715556 > [
+ 0 3060995520967 run-mozilla.sh 24 > [
+ 0 3060995520987 run-mozilla.sh 20 > [
+ 0 3061000622172 run-mozilla.sh 5101184 | /usr/lib/firefox/firefox-bin
+ 0 3061000622221 run-mozilla.sh 49 > [
+ 0 3061000622252 run-mozilla.sh 30 > [
+ 0 3061000622266 run-mozilla.sh 14 > [
+ 0 3061000622275 run-mozilla.sh 9 <- moz_run_program
+ 0 3061000623686 firefox 5955805 | /usr/lib/firefox/run-mozilla.sh
+ 0 3061000623793 firefox 106 -> moz_pis_startstop_scripts
+ 0 3061000623864 firefox 71 > export
+ 0 3061000624108 firefox 244 > [
+ 0 3061000624138 firefox 30 > [
+ 0 3061000624147 firefox 8 <- moz_pis_startstop_scripts
+
+Points of latency during startup are visible in the output. For more details,
+see Examples/sh_flowinfo_example.txt.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt
new file mode 100644
index 000000000000..f19487cc624b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt
@@ -0,0 +1,32 @@
+The following are examples of sh_lines.d.
+
+This is a simple script to count Bourne shell line execution. Here it traces an
+example program, Code/Shell/func_slow.sh.
+
+ # sh_lines.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+
+ FILE:LINE COUNT
+ func_slow.sh:5 1
+ func_slow.sh:6 1
+ func_slow.sh:15 1
+ func_slow.sh:16 1
+ func_slow.sh:21 1
+ func_slow.sh:26 1
+ func_slow.sh:27 1
+ func_slow.sh:32 1
+ func_slow.sh:35 1
+ func_slow.sh:30 100
+ func_slow.sh:28 101
+ func_slow.sh:19 200
+ func_slow.sh:17 201
+ func_slow.sh:9 300
+ func_slow.sh:7 301
+ func_slow.sh:1 600
+
+The most frequently executed line was line 1 of func_slow.sh - which is actually
+line 1 of func_slow.sh subshells (command substitution, ` `). Apart from
+this slight confusion, the rest of the output should make sense (and most
+scripts only call one line in command substitution anyway).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt
new file mode 100644
index 000000000000..a6025e49078f
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt
@@ -0,0 +1,574 @@
+The following are examples of sh_pidcolors.d.
+
+This is the same script as in sh_syscolors.d, except with additional tracing.
+As well as the functions, lines and system calls traced in sh_syscolors.d,
+this also adds some "pid" provider tracing as a starting point for deeper
+analysis. In this case it adds the probes:
+
+ pid$target:a.out:e*:entry,
+ pid$target:a.out:e*:return
+
+which means, all functions from the /usr/bin/sh binary that begin with
+the letter "e". This adds about 34 probes, but you can customize it to be as
+inclusive as you like. It renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Shell/func_abc.sh.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# sh_pidcolors.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+C PID DELTA(us) FILE:LINE TYPE -- NAME
+0 12312 2 func_abc.sh:- syscall -> munmap
+0 12312 34 func_abc.sh:- syscall <- munmap
+0 12312 53 func_abc.sh:- syscall -> mmap
+0 12312 19 func_abc.sh:- syscall <- mmap
+0 12312 43 func_abc.sh:- syscall -> setcontext
+0 12312 11 func_abc.sh:- syscall <- setcontext
+0 12312 11 func_abc.sh:- syscall -> getrlimit
+0 12312 11 func_abc.sh:- syscall <- getrlimit
+0 12312 10 func_abc.sh:- syscall -> getpid
+0 12312 9 func_abc.sh:- syscall <- getpid
+0 12312 63 func_abc.sh:- syscall -> setcontext
+0 12312 9 func_abc.sh:- syscall <- setcontext
+0 12312 813 func_abc.sh:- syscall -> sysi86
+0 12312 13 func_abc.sh:- syscall <- sysi86
+0 12312 85 func_abc.sh:- syscall -> open64
+0 12312 88 func_abc.sh:- syscall <- open64
+0 12312 13 func_abc.sh:- syscall -> ioctl
+0 12312 35 func_abc.sh:- syscall <- ioctl
+0 12312 15 func_abc.sh:- syscall -> close
+0 12312 17 func_abc.sh:- syscall <- close
+0 12312 123 func_abc.sh:- syscall -> getpid
+0 12312 9 func_abc.sh:- syscall <- getpid
+0 12312 17 func_abc.sh:- syscall -> setpgrp
+0 12312 9 func_abc.sh:- syscall <- setpgrp
+0 12312 11 func_abc.sh:- syscall -> setpgrp
+0 12312 8 func_abc.sh:- syscall <- setpgrp
+0 12312 11 func_abc.sh:- syscall -> access
+0 12312 19 func_abc.sh:- syscall <- access
+0 12312 14 func_abc.sh:- syscall -> brk
+0 12312 11 func_abc.sh:- syscall <- brk
+0 12312 15 func_abc.sh:- syscall -> sysconfig
+0 12312 9 func_abc.sh:- syscall <- sysconfig
+0 12312 10 func_abc.sh:- syscall -> sysconfig
+0 12312 8 func_abc.sh:- syscall <- sysconfig
+0 12312 11 func_abc.sh:- syscall -> sigaltstack
+0 12312 9 func_abc.sh:- syscall <- sigaltstack
+0 12312 16 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 12 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 9 func_abc.sh:- syscall -> sigaction
+0 12312 9 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 10 func_abc.sh:- syscall -> sigaction
+0 12312 8 func_abc.sh:- syscall <- sigaction
+0 12312 18 func_abc.sh:- sh -> endstak
+0 12312 18 func_abc.sh:- sh <- endstak
+0 12312 60 func_abc.sh:- syscall -> brk
+0 12312 9 func_abc.sh:- syscall <- brk
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 13 func_abc.sh:- syscall -> getuid
+0 12312 9 func_abc.sh:- syscall <- getuid
+0 12312 10 func_abc.sh:- syscall -> getuid
+0 12312 9 func_abc.sh:- syscall <- getuid
+0 12312 11 func_abc.sh:- syscall -> getgid
+0 12312 9 func_abc.sh:- syscall <- getgid
+0 12312 11 func_abc.sh:- syscall -> getgid
+0 12312 8 func_abc.sh:- syscall <- getgid
+0 12312 16 func_abc.sh:- syscall -> open64
+0 12312 20 func_abc.sh:- syscall <- open64
+0 12312 11 func_abc.sh:- sh -> exfile
+0 12312 10 func_abc.sh:- syscall -> close
+0 12312 8 func_abc.sh:- syscall <- close
+0 12312 24 func_abc.sh:- syscall -> fcntl
+0 12312 23 func_abc.sh:- syscall <- fcntl
+0 12312 10 func_abc.sh:- syscall -> close
+0 12312 10 func_abc.sh:- syscall <- close
+0 12312 9 func_abc.sh:- syscall -> fcntl
+0 12312 8 func_abc.sh:- syscall <- fcntl
+0 12312 28 func_abc.sh:- syscall -> ioctl
+0 12312 42 func_abc.sh:- syscall <- ioctl
+0 12312 10 func_abc.sh:- syscall -> ioctl
+0 12312 9 func_abc.sh:- syscall <- ioctl
+0 12312 14 func_abc.sh:- syscall -> read
+0 12312 33 func_abc.sh:- syscall <- read
+0 12312 11 func_abc.sh:- syscall -> brk
+0 12312 20 func_abc.sh:- syscall <- brk
+0 12312 13 func_abc.sh:- sh -> execute
+0 12312 11 func_abc.sh:- sh <- execute
+0 12312 10 func_abc.sh:- syscall -> brk
+0 12312 9 func_abc.sh:- syscall <- brk
+0 12312 10 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 29 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> execute
+0 12312 10 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- syscall -> brk
+0 12312 9 func_abc.sh:- syscall <- brk
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 10 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- syscall -> brk
+0 12312 9 func_abc.sh:- syscall <- brk
+0 12312 10 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- syscall -> read
+0 12312 16 func_abc.sh:- syscall <- read
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 25 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> execute
+0 12312 10 func_abc.sh:- sh <- execute
+0 12312 10 func_abc.sh:- syscall -> brk
+0 12312 9 func_abc.sh:- syscall <- brk
+0 12312 10 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- syscall -> brk
+0 12312 9 func_abc.sh:- syscall <- brk
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:23 line -- 
+0 12312 14 func_abc.sh:- sh -> estabf
+0 12312 10 func_abc.sh:- sh <- estabf
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 18 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 12 func_abc.sh:- sh -> expand
+0 12312 10 func_abc.sh:- sh <- expand
+0 12312 14 func_abc.sh:23 func -> func_a
+0 12312 14 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 8 func_abc.sh:18 line -- 
+0 12312 8 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 8 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 9 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 8 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 13 func_abc.sh:18 builtin -> echo
+0 12312 15 func_abc.sh:- sh -> echo
+0 12312 14 func_abc.sh:- syscall -> write
+0 12312 35 func_abc.sh:- syscall <- write
+0 12312 321 func_abc.sh:- sh <- echo
+0 12312 13 func_abc.sh:0 builtin <- echo
+0 12312 17 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 8 func_abc.sh:19 line -- 
+0 12312 8 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 9 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 11 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- syscall -> getuid
+0 12312 9 func_abc.sh:- syscall <- getuid
+0 12312 15 func_abc.sh:- syscall -> stat64
+0 12312 27 func_abc.sh:- syscall <- stat64
+0 12312 11 func_abc.sh:- syscall -> access
+0 12312 15 func_abc.sh:- syscall <- access
+0 12312 18 func_abc.sh:- syscall -> schedctl
+0 12312 47 func_abc.sh:- syscall <- schedctl
+0 12312 219 func_abc.sh:- syscall -> fork1
+0 12312 234375 func_abc.sh:- syscall <- fork1
+0 12312 277 func_abc.sh:- syscall -> lwp_sigmask
+0 12312 13 func_abc.sh:- syscall <- lwp_sigmask
+0 12312 33 func_abc.sh:19 cmd -> sleep
+0 12312 59 func_abc.sh:- syscall -> waitsys
+0 12312 870257 func_abc.sh:- syscall <- waitsys
+0 12312 36 func_abc.sh:- syscall -> ioctl
+0 12312 16 func_abc.sh:- syscall <- ioctl
+0 12312 13 func_abc.sh:- syscall -> setpgrp
+0 12312 9 func_abc.sh:- syscall <- setpgrp
+0 12312 9 func_abc.sh:- syscall -> ioctl
+0 12312 9 func_abc.sh:- syscall <- ioctl
+0 12312 11 func_abc.sh:- syscall -> ioctl
+0 12312 33 func_abc.sh:- syscall <- ioctl
+0 12312 12 func_abc.sh:- syscall -> waitsys
+0 12312 25 func_abc.sh:- syscall <- waitsys
+0 12312 15 func_abc.sh:0 cmd <- sleep
+0 12312 20 func_abc.sh:- sh <- execute
+0 12312 15 func_abc.sh:- sh -> execute
+0 12312 14 func_abc.sh:20 line -- 
+0 12312 13 func_abc.sh:- sh -> estabf
+0 12312 10 func_abc.sh:- sh <- estabf
+0 12312 11 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 12 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 11 func_abc.sh:- sh -> expand
+0 12312 10 func_abc.sh:- sh <- expand
+0 12312 17 func_abc.sh:20 func -> func_b
+0 12312 14 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 8 func_abc.sh:11 line -- 
+0 12312 8 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 9 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 13 func_abc.sh:11 builtin -> echo
+0 12312 15 func_abc.sh:- sh -> echo
+0 12312 12 func_abc.sh:- syscall -> write
+0 12312 32 func_abc.sh:- syscall <- write
+0 12312 320 func_abc.sh:- sh <- echo
+0 12312 12 func_abc.sh:0 builtin <- echo
+0 12312 16 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 8 func_abc.sh:12 line -- 
+0 12312 8 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 9 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 225 func_abc.sh:- syscall -> fork1
+0 12312 60940 func_abc.sh:- syscall <- fork1
+0 12312 243 func_abc.sh:- syscall -> lwp_sigmask
+0 12312 15 func_abc.sh:- syscall <- lwp_sigmask
+0 12312 31 func_abc.sh:12 cmd -> sleep
+0 12312 31 func_abc.sh:- syscall -> waitsys
+0 12312 1007422 func_abc.sh:- syscall <- waitsys
+0 12312 28 func_abc.sh:- syscall -> ioctl
+0 12312 17 func_abc.sh:- syscall <- ioctl
+0 12312 11 func_abc.sh:- syscall -> setpgrp
+0 12312 9 func_abc.sh:- syscall <- setpgrp
+0 12312 9 func_abc.sh:- syscall -> ioctl
+0 12312 9 func_abc.sh:- syscall <- ioctl
+0 12312 9 func_abc.sh:- syscall -> ioctl
+0 12312 38 func_abc.sh:- syscall <- ioctl
+0 12312 12 func_abc.sh:- syscall -> waitsys
+0 12312 26 func_abc.sh:- syscall <- waitsys
+0 12312 15 func_abc.sh:0 cmd <- sleep
+0 12312 32 func_abc.sh:- sh <- execute
+0 12312 15 func_abc.sh:- sh -> execute
+0 12312 14 func_abc.sh:13 line -- 
+0 12312 13 func_abc.sh:- sh -> estabf
+0 12312 10 func_abc.sh:- sh <- estabf
+0 12312 12 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 12 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> expand
+0 12312 10 func_abc.sh:- sh <- expand
+0 12312 17 func_abc.sh:13 func -> func_c
+0 12312 13 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 8 func_abc.sh:5 line -- 
+0 12312 8 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 9 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 10 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 13 func_abc.sh:5 builtin -> echo
+0 12312 15 func_abc.sh:- sh -> echo
+0 12312 12 func_abc.sh:- syscall -> write
+0 12312 32 func_abc.sh:- syscall <- write
+0 12312 309 func_abc.sh:- sh <- echo
+0 12312 12 func_abc.sh:0 builtin <- echo
+0 12312 16 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:6 line -- 
+0 12312 8 func_abc.sh:- sh -> estabf
+0 12312 22 func_abc.sh:- sh <- estabf
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 11 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 9 func_abc.sh:- sh -> estabf
+0 12312 9 func_abc.sh:- sh <- estabf
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 9 func_abc.sh:- sh -> expand
+0 12312 9 func_abc.sh:- sh <- expand
+0 12312 220 func_abc.sh:- syscall -> fork1
+0 12312 60982 func_abc.sh:- syscall <- fork1
+0 12312 239 func_abc.sh:- syscall -> lwp_sigmask
+0 12312 15 func_abc.sh:- syscall <- lwp_sigmask
+0 12312 30 func_abc.sh:6 cmd -> sleep
+0 12312 30 func_abc.sh:- syscall -> waitsys
+0 12312 1007259 func_abc.sh:- syscall <- waitsys
+0 12312 29 func_abc.sh:- syscall -> ioctl
+0 12312 17 func_abc.sh:- syscall <- ioctl
+0 12312 11 func_abc.sh:- syscall -> setpgrp
+0 12312 9 func_abc.sh:- syscall <- setpgrp
+0 12312 9 func_abc.sh:- syscall -> ioctl
+0 12312 9 func_abc.sh:- syscall <- ioctl
+0 12312 9 func_abc.sh:- syscall -> ioctl
+0 12312 35 func_abc.sh:- syscall <- ioctl
+0 12312 12 func_abc.sh:- syscall -> waitsys
+0 12312 25 func_abc.sh:- syscall <- waitsys
+0 12312 15 func_abc.sh:0 cmd <- sleep
+0 12312 31 func_abc.sh:- sh <- execute
+0 12312 13 func_abc.sh:- sh <- execute
+0 12312 11 func_abc.sh:- func <- func_c
+0 12312 14 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- func <- func_b
+0 12312 10 func_abc.sh:- sh <- execute
+0 12312 18 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 9 func_abc.sh:- func <- func_a
+0 12312 9 func_abc.sh:- sh <- execute
+0 12312 12 func_abc.sh:- syscall -> brk
+0 12312 11 func_abc.sh:- syscall <- brk
+0 12312 12 func_abc.sh:- syscall -> read
+0 12312 16 func_abc.sh:- syscall <- read
+0 12312 10 func_abc.sh:- syscall -> ioctl
+0 12312 9 func_abc.sh:- syscall <- ioctl
+0 12312 10 func_abc.sh:- syscall -> ioctl
+0 12312 8 func_abc.sh:- syscall <- ioctl
+0 12312 11 func_abc.sh:- syscall -> close
+0 12312 13 func_abc.sh:- syscall <- close
+0 12312 12 func_abc.sh:- sh -> endjobs
+0 12312 14 func_abc.sh:- sh <- endjobs
+0 12312 10 func_abc.sh:- sh <- exfile
+0 12312 11 func_abc.sh:- sh -> endjobs
+0 12312 9 func_abc.sh:- sh <- endjobs
+0 12312 37 func_abc.sh:- syscall -> open64
+0 12312 103 func_abc.sh:- syscall <- open64
+0 12312 11 func_abc.sh:- syscall -> ioctl
+0 12312 11 func_abc.sh:- syscall <- ioctl
+0 12312 11 func_abc.sh:- syscall -> close
+0 12312 15 func_abc.sh:- syscall <- close
+0 12312 32 func_abc.sh:- syscall -> rexit
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+At the end of the sh_syscolor_example.txt file, you can see the steps that the
+script goes through when it runs func_a. The output contains the two
+consecutive lines:
+
+0 12979 14 func_abc.sh:23 line -- 
+0 12979 32 func_abc.sh:23 func -> func_a
+
+Here we trace many more events that happen in between these two lines, as seen
+below:
+
+0 12312 9 func_abc.sh:23 line -- 
+0 12312 14 func_abc.sh:- sh -> estabf
+0 12312 10 func_abc.sh:- sh <- estabf
+0 12312 10 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 18 func_abc.sh:- sh -> endstak
+0 12312 9 func_abc.sh:- sh <- endstak
+0 12312 12 func_abc.sh:- sh -> expand
+0 12312 10 func_abc.sh:- sh <- expand
+0 12312 14 func_abc.sh:23 func -> func_a
+0 12312 14 func_abc.sh:- sh -> execute
+0 12312 9 func_abc.sh:- sh -> execute
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt
new file mode 100644
index 000000000000..a44a5638f66a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt
@@ -0,0 +1,44 @@
+Following are examples of running sh_stat.d on Shell scripts.
+
+sh_stat.d shows you the number of events per second that have happened since
+the last line output. The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the sh_stat.d script reflecting the Code/Shell/func_slow.sh script.
+
+ # sh_stat.d
+ TIME EXEC/s FUNCS/s BLTINS/s SUB-SH/s CMD/s
+ 2007 Sep 17 03:29:02 1 1 50 96 0
+ 2007 Sep 17 03:29:03 0 1 151 300 0
+ 2007 Sep 17 03:29:04 0 1 142 280 0
+ 2007 Sep 17 03:29:05 0 0 132 262 0
+ 2007 Sep 17 03:29:06 0 0 122 245 0
+ 2007 Sep 17 03:29:07 0 0 9 17 0
+ 2007 Sep 17 03:29:08 0 0 0 0 0
+ 2007 Sep 17 03:29:09 0 0 0 0 0
+ ^C
+
+We can see that at 2007 Sep 17 03:29:04 there were 0 Bourne shells executed,
+one function called, 142 built-in commands called, 280 sub-shells created and
+0 external commands called.
+
+
+Here the script runs when Mozilla Firefox is started.
+
+ # sh_stat.d
+ TIME EXEC/s FUNCS/s BLTINS/s SUB-SH/s CMD/s
+ 2007 Sep 17 03:29:52 1 9 52 38 2
+ 2007 Sep 17 03:29:53 0 0 0 0 0
+ 2007 Sep 17 03:29:54 0 0 0 0 0
+ 2007 Sep 17 03:29:55 0 0 0 0 0
+ 2007 Sep 17 03:29:56 0 0 0 0 0
+ 2007 Sep 17 03:29:57 0 0 0 0 0
+ 2007 Sep 17 03:29:58 0 0 0 0 0
+ 2007 Sep 17 03:29:59 0 0 0 0 0
+ 2007 Sep 17 03:30:00 0 0 0 0 0
+ 2007 Sep 17 03:30:01 1 1 8 0 0
+ 2007 Sep 17 03:30:02 0 0 0 0 0
+ 2007 Sep 17 03:30:03 0 0 0 0 0
+ 2007 Sep 17 03:30:04 0 0 0 0 0
+ ^C
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt
new file mode 100644
index 000000000000..fbda09525d30
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt
@@ -0,0 +1,59 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Shell functions, built-ins, external command
+executions and system calls. Here we trace an example program -
+Code/Shell/func_abc.sh.
+
+# sh_syscalls.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+Tracing... Hit Ctrl-C to end.
+
+Calls for PID 12966,
+
+ FILE TYPE NAME COUNT
+ func_abc.sh func func_a 1
+ func_abc.sh func func_b 1
+ func_abc.sh func func_c 1
+ func_abc.sh syscall getrlimit 1
+ func_abc.sh syscall mmap 1
+ func_abc.sh syscall munmap 1
+ func_abc.sh syscall rexit 1
+ func_abc.sh syscall schedctl 1
+ func_abc.sh syscall sigaltstack 1
+ func_abc.sh syscall stat64 1
+ func_abc.sh syscall sysi86 1
+ func_abc.sh syscall access 2
+ func_abc.sh syscall fcntl 2
+ func_abc.sh syscall getgid 2
+ func_abc.sh syscall getpid 2
+ func_abc.sh syscall setcontext 2
+ func_abc.sh syscall sysconfig 2
+ func_abc.sh builtin echo 3
+ func_abc.sh cmd sleep 3
+ func_abc.sh syscall fork1 3
+ func_abc.sh syscall getuid 3
+ func_abc.sh syscall lwp_sigmask 3
+ func_abc.sh syscall open64 3
+ func_abc.sh syscall read 3
+ func_abc.sh syscall write 3
+ func_abc.sh syscall close 5
+ func_abc.sh syscall setpgrp 5
+ func_abc.sh syscall waitsys 6
+ func_abc.sh syscall brk 9
+ func_abc.sh syscall ioctl 15
+ func_abc.sh syscall sigaction 53
+
+While tracing, three functions were called - func_a(), func_b() and
+func_c(). There were 3 instances of the shell built-in 'echo' being called,
+and 3 executions of the sleep command (which is probably /usr/bin/sleep - use
+the syscall provider to confirm). There were numerous system calls made,
+including 9 brk()'s, 15 ioctl()'s and 53 sigaction()'s.
+
+This script can provide an insight to how a script is interacting
+with the system, by providing function calls, commands, built-ins and system
+calls in the same output.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt
new file mode 100644
index 000000000000..ccc722a825ba
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt
@@ -0,0 +1,328 @@
+The following are examples of sh_syscolors.d.
+
+This is a simple script to trace the flow of Shell functions, lines, and
+system calls made. It renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Shell/func_abc.sh.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# sh_syscolors.d -c ./func_abc.sh -o /tmp/out
+Function A
+Function B
+Function C
+
+# cat /tmp/out
+C PID DELTA(us) FILE:LINE TYPE -- NAME
+0 12979 2 func_abc.sh:- syscall -> munmap
+0 12979 35 func_abc.sh:- syscall <- munmap
+0 12979 56 func_abc.sh:- syscall -> mmap
+0 12979 18 func_abc.sh:- syscall <- mmap
+0 12979 40 func_abc.sh:- syscall -> setcontext
+0 12979 11 func_abc.sh:- syscall <- setcontext
+0 12979 11 func_abc.sh:- syscall -> getrlimit
+0 12979 11 func_abc.sh:- syscall <- getrlimit
+0 12979 10 func_abc.sh:- syscall -> getpid
+0 12979 9 func_abc.sh:- syscall <- getpid
+0 12979 61 func_abc.sh:- syscall -> setcontext
+0 12979 9 func_abc.sh:- syscall <- setcontext
+0 12979 865 func_abc.sh:- syscall -> sysi86
+0 12979 14 func_abc.sh:- syscall <- sysi86
+0 12979 84 func_abc.sh:- syscall -> open64
+0 12979 89 func_abc.sh:- syscall <- open64
+0 12979 14 func_abc.sh:- syscall -> ioctl
+0 12979 35 func_abc.sh:- syscall <- ioctl
+0 12979 15 func_abc.sh:- syscall -> close
+0 12979 16 func_abc.sh:- syscall <- close
+0 12979 119 func_abc.sh:- syscall -> getpid
+0 12979 10 func_abc.sh:- syscall <- getpid
+0 12979 17 func_abc.sh:- syscall -> setpgrp
+0 12979 10 func_abc.sh:- syscall <- setpgrp
+0 12979 11 func_abc.sh:- syscall -> setpgrp
+0 12979 8 func_abc.sh:- syscall <- setpgrp
+0 12979 12 func_abc.sh:- syscall -> access
+0 12979 20 func_abc.sh:- syscall <- access
+0 12979 15 func_abc.sh:- syscall -> brk
+0 12979 11 func_abc.sh:- syscall <- brk
+0 12979 15 func_abc.sh:- syscall -> sysconfig
+0 12979 9 func_abc.sh:- syscall <- sysconfig
+0 12979 9 func_abc.sh:- syscall -> sysconfig
+0 12979 9 func_abc.sh:- syscall <- sysconfig
+0 12979 11 func_abc.sh:- syscall -> sigaltstack
+0 12979 9 func_abc.sh:- syscall <- sigaltstack
+0 12979 16 func_abc.sh:- syscall -> sigaction
+0 12979 10 func_abc.sh:- syscall <- sigaction
+0 12979 12 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 10 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 10 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 10 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 9 func_abc.sh:- syscall -> sigaction
+0 12979 8 func_abc.sh:- syscall <- sigaction
+0 12979 10 func_abc.sh:- syscall -> sigaction
+0 12979 9 func_abc.sh:- syscall <- sigaction
+0 12979 61 func_abc.sh:- syscall -> brk
+0 12979 9 func_abc.sh:- syscall <- brk
+0 12979 13 func_abc.sh:- syscall -> getuid
+0 12979 9 func_abc.sh:- syscall <- getuid
+0 12979 10 func_abc.sh:- syscall -> getuid
+0 12979 8 func_abc.sh:- syscall <- getuid
+0 12979 11 func_abc.sh:- syscall -> getgid
+0 12979 9 func_abc.sh:- syscall <- getgid
+0 12979 10 func_abc.sh:- syscall -> getgid
+0 12979 9 func_abc.sh:- syscall <- getgid
+0 12979 15 func_abc.sh:- syscall -> open64
+0 12979 19 func_abc.sh:- syscall <- open64
+0 12979 11 func_abc.sh:- syscall -> close
+0 12979 9 func_abc.sh:- syscall <- close
+0 12979 24 func_abc.sh:- syscall -> fcntl
+0 12979 23 func_abc.sh:- syscall <- fcntl
+0 12979 10 func_abc.sh:- syscall -> close
+0 12979 10 func_abc.sh:- syscall <- close
+0 12979 9 func_abc.sh:- syscall -> fcntl
+0 12979 9 func_abc.sh:- syscall <- fcntl
+0 12979 28 func_abc.sh:- syscall -> ioctl
+0 12979 42 func_abc.sh:- syscall <- ioctl
+0 12979 10 func_abc.sh:- syscall -> ioctl
+0 12979 9 func_abc.sh:- syscall <- ioctl
+0 12979 14 func_abc.sh:- syscall -> read
+0 12979 33 func_abc.sh:- syscall <- read
+0 12979 11 func_abc.sh:- syscall -> brk
+0 12979 21 func_abc.sh:- syscall <- brk
+0 12979 12 func_abc.sh:- syscall -> brk
+0 12979 9 func_abc.sh:- syscall <- brk
+0 12979 19 func_abc.sh:- syscall -> brk
+0 12979 9 func_abc.sh:- syscall <- brk
+0 12979 11 func_abc.sh:- syscall -> brk
+0 12979 9 func_abc.sh:- syscall <- brk
+0 12979 11 func_abc.sh:- syscall -> read
+0 12979 15 func_abc.sh:- syscall <- read
+0 12979 28 func_abc.sh:- syscall -> brk
+0 12979 9 func_abc.sh:- syscall <- brk
+0 12979 10 func_abc.sh:- syscall -> brk
+0 12979 8 func_abc.sh:- syscall <- brk
+0 12979 14 func_abc.sh:23 line -- 
+0 12979 32 func_abc.sh:23 func -> func_a
+0 12979 16 func_abc.sh:18 line -- 
+0 12979 18 func_abc.sh:18 builtin -> echo
+0 12979 21 func_abc.sh:- syscall -> write
+0 12979 33 func_abc.sh:- syscall <- write
+0 12979 311 func_abc.sh:0 builtin <- echo
+0 12979 65 func_abc.sh:19 line -- 
+0 12979 17 func_abc.sh:- syscall -> getuid
+0 12979 10 func_abc.sh:- syscall <- getuid
+0 12979 15 func_abc.sh:- syscall -> stat64
+0 12979 25 func_abc.sh:- syscall <- stat64
+0 12979 11 func_abc.sh:- syscall -> access
+0 12979 15 func_abc.sh:- syscall <- access
+0 12979 18 func_abc.sh:- syscall -> schedctl
+0 12979 46 func_abc.sh:- syscall <- schedctl
+0 12979 220 func_abc.sh:- syscall -> fork1
+0 12979 258957 func_abc.sh:- syscall <- fork1
+0 12979 244 func_abc.sh:- syscall -> lwp_sigmask
+0 12979 16 func_abc.sh:- syscall <- lwp_sigmask
+0 12979 31 func_abc.sh:19 cmd -> sleep
+0 12979 53 func_abc.sh:- syscall -> waitsys
+0 12979 1008036 func_abc.sh:- syscall <- waitsys
+0 12979 38 func_abc.sh:- syscall -> ioctl
+0 12979 18 func_abc.sh:- syscall <- ioctl
+0 12979 12 func_abc.sh:- syscall -> setpgrp
+0 12979 10 func_abc.sh:- syscall <- setpgrp
+0 12979 9 func_abc.sh:- syscall -> ioctl
+0 12979 9 func_abc.sh:- syscall <- ioctl
+0 12979 11 func_abc.sh:- syscall -> ioctl
+0 12979 37 func_abc.sh:- syscall <- ioctl
+0 12979 12 func_abc.sh:- syscall -> waitsys
+0 12979 26 func_abc.sh:- syscall <- waitsys
+0 12979 14 func_abc.sh:0 cmd <- sleep
+0 12979 21 func_abc.sh:20 line -- 
+0 12979 28 func_abc.sh:20 func -> func_b
+0 12979 15 func_abc.sh:11 line -- 
+0 12979 17 func_abc.sh:11 builtin -> echo
+0 12979 19 func_abc.sh:- syscall -> write
+0 12979 33 func_abc.sh:- syscall <- write
+0 12979 310 func_abc.sh:0 builtin <- echo
+0 12979 16 func_abc.sh:12 line -- 
+0 12979 226 func_abc.sh:- syscall -> fork1
+0 12979 64931 func_abc.sh:- syscall <- fork1
+0 12979 262 func_abc.sh:- syscall -> lwp_sigmask
+0 12979 16 func_abc.sh:- syscall <- lwp_sigmask
+0 12979 31 func_abc.sh:12 cmd -> sleep
+0 12979 31 func_abc.sh:- syscall -> waitsys
+0 12979 1003941 func_abc.sh:- syscall <- waitsys
+0 12979 30 func_abc.sh:- syscall -> ioctl
+0 12979 19 func_abc.sh:- syscall <- ioctl
+0 12979 11 func_abc.sh:- syscall -> setpgrp
+0 12979 9 func_abc.sh:- syscall <- setpgrp
+0 12979 9 func_abc.sh:- syscall -> ioctl
+0 12979 9 func_abc.sh:- syscall <- ioctl
+0 12979 9 func_abc.sh:- syscall -> ioctl
+0 12979 38 func_abc.sh:- syscall <- ioctl
+0 12979 11 func_abc.sh:- syscall -> waitsys
+0 12979 26 func_abc.sh:- syscall <- waitsys
+0 12979 14 func_abc.sh:0 cmd <- sleep
+0 12979 33 func_abc.sh:13 line -- 
+0 12979 27 func_abc.sh:13 func -> func_c
+0 12979 15 func_abc.sh:5 line -- 
+0 12979 17 func_abc.sh:5 builtin -> echo
+0 12979 20 func_abc.sh:- syscall -> write
+0 12979 33 func_abc.sh:- syscall <- write
+0 12979 309 func_abc.sh:0 builtin <- echo
+0 12979 17 func_abc.sh:6 line -- 
+0 12979 267 func_abc.sh:- syscall -> fork1
+0 12979 64649 func_abc.sh:- syscall <- fork1
+0 12979 257 func_abc.sh:- syscall -> lwp_sigmask
+0 12979 16 func_abc.sh:- syscall <- lwp_sigmask
+0 12979 31 func_abc.sh:6 cmd -> sleep
+0 12979 31 func_abc.sh:- syscall -> waitsys
+0 12979 1004183 func_abc.sh:- syscall <- waitsys
+0 12979 31 func_abc.sh:- syscall -> ioctl
+0 12979 18 func_abc.sh:- syscall <- ioctl
+0 12979 11 func_abc.sh:- syscall -> setpgrp
+0 12979 9 func_abc.sh:- syscall <- setpgrp
+0 12979 9 func_abc.sh:- syscall -> ioctl
+0 12979 9 func_abc.sh:- syscall <- ioctl
+0 12979 9 func_abc.sh:- syscall -> ioctl
+0 12979 38 func_abc.sh:- syscall <- ioctl
+0 12979 12 func_abc.sh:- syscall -> waitsys
+0 12979 27 func_abc.sh:- syscall <- waitsys
+0 12979 14 func_abc.sh:0 cmd <- sleep
+0 12979 32 func_abc.sh:- func <- func_c
+0 12979 16 func_abc.sh:- func <- func_b
+0 12979 10 func_abc.sh:- func <- func_a
+0 12979 13 func_abc.sh:- syscall -> brk
+0 12979 12 func_abc.sh:- syscall <- brk
+0 12979 12 func_abc.sh:- syscall -> read
+0 12979 16 func_abc.sh:- syscall <- read
+0 12979 10 func_abc.sh:- syscall -> ioctl
+0 12979 9 func_abc.sh:- syscall <- ioctl
+0 12979 10 func_abc.sh:- syscall -> ioctl
+0 12979 9 func_abc.sh:- syscall <- ioctl
+0 12979 11 func_abc.sh:- syscall -> close
+0 12979 13 func_abc.sh:- syscall <- close
+0 12979 37 func_abc.sh:- syscall -> open64
+0 12979 105 func_abc.sh:- syscall <- open64
+0 12979 11 func_abc.sh:- syscall -> ioctl
+0 12979 11 func_abc.sh:- syscall <- ioctl
+0 12979 11 func_abc.sh:- syscall -> close
+0 12979 15 func_abc.sh:- syscall <- close
+0 12979 31 func_abc.sh:- syscall -> rexit
+
+Here you can see the output showing the path the script follows as it is
+executed.
+
+ie:
+0 12979 14 func_abc.sh:23 line -- 
+0 12979 32 func_abc.sh:23 func -> func_a
+0 12979 16 func_abc.sh:18 line -- 
+0 12979 18 func_abc.sh:18 builtin -> echo
+0 12979 21 func_abc.sh:- syscall -> write
+0 12979 33 func_abc.sh:- syscall <- write
+0 12979 311 func_abc.sh:0 builtin <- echo
+0 12979 65 func_abc.sh:19 line -- 
+
+shows that on CPU 0 we run func_a (which is line 23 of the example script),
+where it uses the shell built-in echo command (on line 18 of the example
+script) to write a line of text to the screen. You can see in column 3 (the
+delta time) it takes 311 microseconds from when the write syscall finishes to
+when the echo built-in completes its clean-up and finishes.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt
new file mode 100644
index 000000000000..b11f9523db39
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt
@@ -0,0 +1,45 @@
+Many shell programmers are in the habit of using calls to external commands
+instead of using shell built-in commands (an example of this is a call to
+usr/bin/echo instead of using the echo command built into the shell.
+
+This script shows sh_wasted.d tracing a shell script that calls /usr/bin/echo
+instead of using the built-in.
+
+# sh_wasted.d -c ./func_waste.sh
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+Script duration: 3101631 us
+
+External command elapsed times,
+ FILE NAME TIME(us)
+ func_waste.sh sleep 3019573
+
+Wasted command elapsed times,
+ FILE NAME TIME(us)
+ func_waste.sh /usr/bin/echo 26510
+
+You can see that the calls to /usr/bin/echo took around 26 thousand
+microseconds; time wasted by the shell having to access an external command.
+
+
+Here we trace the same script, except it uses the shell built-in echo command.
+
+# sh_wasted.d -c ./func_abc.sh
+Function A
+Tracing... Hit Ctrl-C to end.
+Function B
+Function C
+Script duration: 3032616 us
+
+External command elapsed times,
+ FILE NAME TIME(us)
+ func_abc.sh sleep 3012920
+
+Wasted command elapsed times,
+ FILE NAME TIME(us)
+
+The total time here is less and there are no 'wasted' calls to external
+commands.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt
new file mode 100644
index 000000000000..b35e8e4531d9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt
@@ -0,0 +1,45 @@
+These are examples of the results after running the sh_who.d script.
+
+This script shows which UIDs and PIDs are running shell scripts, and how
+active they are. It measures the number of lines executed according to
+the line probe - which is a useful, but rough measure of shell activity.
+
+Here it runs as a script executes three times.
+
+# sh_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID LINES FILE
+ 13663 0 9 ./func_abc.sh
+ 13667 0 9 ./func_abc.sh
+ 13671 0 9 ./func_abc.sh
+
+We see func_abc.sh ran three seperate times, each with nine lines of shell
+activity.
+
+
+Here we trace an instance of starting Mozilla Firefox.
+
+# sh_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID LINES FILE
+ 13678 100 1 firefox
+ 13679 100 1 firefox
+ 13680 100 1 firefox
+ 13681 100 1 firefox
+ 13683 100 1 firefox
+ 13685 100 1 firefox
+ 13686 100 1 firefox
+ 13687 100 1 firefox
+ 13690 100 1 firefox
+ 13693 100 1 /usr/lib/firefox/run-mozilla.sh
+ 13694 100 1 /usr/lib/firefox/run-mozilla.sh
+ 13695 100 1 /usr/lib/firefox/run-mozilla.sh
+ 13692 100 55 /usr/lib/firefox/run-mozilla.sh
+ 13677 100 75 firefox
+
+Firefox itself (PID 13677) ran 75 lines of code. There are also instances of
+firefox running a single line of code with a different PID each time. These
+are probably calls to subshells. Use the sh provider to confirm.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt
new file mode 100644
index 000000000000..be307f80f63e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt
@@ -0,0 +1,112 @@
+shellsnoop captures the text input and output from shells running on the
+system. In the following example shellsnoop was run in one window, while
+in another several commands were run: date, cal, uname -a, uptime and find.
+shellsnoop has successfully captured the text that was displayed on the
+other window.
+
+
+# shellsnoop
+ PID PPID CMD DIR TEXT
+ 4724 3762 ksh R
+ 4724 3762 ksh W date
+
+ 4741 4724 date W Sun Mar 28 23:10:06 EST 2004
+ 4724 3762 ksh R
+ 4724 3762 ksh W jupiter:/etc/init.d>
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh W cal
+
+ 4742 4724 cal W March 2004
+ 4742 4724 cal W S M Tu W Th F S
+ 4742 4724 cal W 1 2 3 4 5 6
+ 4742 4724 cal W 7 8 9 10 11 12 13
+ 4742 4724 cal W 14 15 16 17 18 19 20
+ 4742 4724 cal W 21 22 23 24 25 26 27
+ 4742 4724 cal W 28 29 30 31
+ 4742 4724 cal W
+ 4724 3762 ksh R
+ 4724 3762 ksh W jupiter:/etc/init.d>
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh W uname -a
+
+ 4743 4724 uname W SunOS jupiter 5.10 s10_51 i86pc i386 i86pc
+ 4724 3762 ksh R
+ 4724 3762 ksh W jupiter:/etc/init.d>
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh W uptime
+
+ 4744 4724 uptime W 11:10pm up 4 day(s), 11:15, 4 users, load average: 0.05, 0.02, 0.02
+ 4724 3762 ksh R
+ 4724 3762 ksh W jupiter:/etc/init.d>
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh W jupiter:/etc/init.d>
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh W ls -l d*
+
+ 4745 4724 ls W -rwxr--r-- 3 root sys 1292 Jan 14 16:24 devfsadm
+ 4745 4724 ls W -rwxr--r-- 1 root sys 904 Jan 14 16:24 devlinks
+ 4745 4724 ls W -rwxr--r-- 6 root sys 621 Jan 14 16:17 dhcp
+ 4745 4724 ls W -rwxr--r-- 2 root sys 494 Jan 14 16:17 dhcpagent
+ 4745 4724 ls W -rwxr--r-- 5 root sys 1050 Jan 16 2002 directory
+ 4745 4724 ls W -rwxr--r-- 2 root sys 779 Jan 14 16:17 domainname
+ 4745 4724 ls W -rwxr--r-- 1 root sys 469 Jan 14 16:24 drvconfig
+ 4745 4724 ls W -r-xr-xr-x 4 root other 2804 Mar 27 13:37 dtlogin
+ 4724 3762 ksh R
+ 4724 3762 ksh W jupiter:/etc/init.d>
+ 4724 3762 ksh R
+ 4724 3762 ksh R
+ 4724 3762 ksh W find /etc/default
+
+ 4746 4724 find W /etc/default
+ 4746 4724 find W /etc/default/cron
+ 4746 4724 find W /etc/default/devfsadm
+ 4746 4724 find W /etc/default/dhcpagent
+ 4746 4724 find W /etc/default/fs
+ 4746 4724 find W /etc/default/inetd
+ 4746 4724 find W /etc/default/inetinit
+ 4746 4724 find W /etc/default/kbd
+ 4746 4724 find W /etc/default/keyserv
+ 4746 4724 find W /etc/default/ipsec
+ 4746 4724 find W /etc/default/nss
+ 4746 4724 find W /etc/default/passwd
+ 4746 4724 find W /etc/default/syslogd
+ 4746 4724 find W /etc/default/tar
+ 4746 4724 find W /etc/default/utmpd
+ 4746 4724 find W /etc/default/init
+ 4746 4724 find W /etc/default/login
+ 4746 4724 find W /etc/default/su
+ 4746 4724 find W /etc/default/power
+ 4746 4724 find W /etc/default/sys-suspend
+ 4746 4724 find W /etc/default/rpc.nisd
+ 4746 4724 find W /etc/default/nfs
+[...]
+
+
+
+shellsnoop has a "-q" option for running in "quiet" mode - the previous
+columns are not printed, so only shell output is seen,
+
+ # shellsnoop -q
+ # date
+ Wed Nov 30 16:19:48 EST 2005
+ #
+ # cal
+ November 2005
+ S M Tu W Th F S
+ 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
+
+ #
+
+The output appears somewhat boring, this is something you need to see
+in realtime.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt b/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt
new file mode 100644
index 000000000000..ebe46925095a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt
@@ -0,0 +1,57 @@
+The following is an example of the shortlived.d program.
+It can measure time spent processing short lived processes,
+that may be responsible for heavy load on the system but
+are usually difficult to see with sampling tools like prstat.
+
+
+
+Here we run in for a few seconds on a server,
+
+ # shortlived.d
+ Tracing... Hit Ctrl-C to stop.
+ ^C
+ short lived processes: 0.456 secs
+ total sample duration: 9.352 secs
+
+ Total time by process name,
+ date 12 ms
+ df 20 ms
+ ls 40 ms
+ perl 380 ms
+
+ Total time by PPID,
+ 3279 452 ms
+
+In the above output, around 5% of the CPU was lost to short
+lived processes - mostly perl. This may be many perl processes,
+here we are aggregating on the process name not the instance.
+
+
+
+Now shortlived.d is run on a server with a performance problem,
+
+ # uptime
+ 10:58pm up 5 day(s), 1:28, 1 user, load average: 2.20, 1.81, 1.04
+ #
+ # shortlived.d
+ Tracing... Hit Ctrl-C to stop.
+ ^C
+ short lived processes: 4.546 secs
+ total sample duration: 9.858 secs
+
+ Total time by process name,
+ expr 4122 ms
+
+ Total time by PPID,
+ 3279 4122 ms
+ #
+ # ps -p 3279
+ PID TTY TIME CMD
+ 3279 pts/10 0:45 report.sh
+
+shortlived.d showed that 50% of the CPU was consumed by short lived
+processes, all of them the "expr" command, and all having the
+parent proccess-ID 3279. We finished by checking PID 3279 to find
+it is a Bourne shell script called "report.sh".
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt b/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt
new file mode 100644
index 000000000000..88b9df461f32
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt
@@ -0,0 +1,18 @@
+The following is a demonstration of the sigdist.d script.
+
+
+Here we run sigdist.d, and in another window we kill -9 a sleep process,
+
+ # ./sigdist.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ SENDER RECIPIENT SIG COUNT
+ sched dtrace 2 1
+ sched bash 18 1
+ bash sleep 9 1
+ sched Xorg 14 55
+
+We can see the signal sent from bash to sleep. We can also see that Xorg
+has recieved 55 signal 14s. a "man -s3head signal" may help explain what
+signal 14 is (alarm clock).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt b/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt
new file mode 100644
index 000000000000..156f351d8684
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt
@@ -0,0 +1,87 @@
+The following is a domonstration of the stacksize.d script.
+
+
+Here it is run for a few seconds then Ctrl-C is hit. The output prints
+distrubition plots of the size of the user stack as the value, and the
+number of times sampled at that size as the count.
+
+ # ./stacksize.d
+ Sampling... Hit Ctrl-C to end
+
+
+ automountd
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ nscd
+ value ------------- Distribution ------------- count
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 256 | 0
+
+ svc.startd
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 512 | 0
+
+ sshd
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 4096 | 0
+
+ dtrace
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5
+ 2048 | 0
+
+ nautilus
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4096 | 0
+
+ Xvnc
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 4096 | 0
+
+ gnome-vfs-daemon
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 8192 | 0
+
+ Xorg
+ value ------------- Distribution ------------- count
+ 2048 | 0
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6
+ 8192 | 0
+
+ gnome-terminal
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@ 7
+ 4096 |@@@@@@@@@@@@@@@@@@@@@@@@ 11
+ 8192 | 0
+
+ acroread
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 92
+ 4096 | 0
+
+ perl
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1945
+ 2048 | 0
+
+
+ Errors:
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt
new file mode 100644
index 000000000000..842017ea4331
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt
@@ -0,0 +1,94 @@
+The following is an example of the statsnoop tool.
+
+
+statsnoop is a companion to opensnoop, which traces a variety of stat()
+calls rather than open() calls.
+
+Here I run statsnoop on my idle laptop for about 3 seconds,
+
+ # statsnoop
+ UID PID COMM FD PATH
+ 0 1485 dtrace 0 /devices/pseudo/pts@0:6
+ 100 791 dtwm -1 /usr/mail/brendan
+ 100 791 dtwm -1 /usr/mail/brendan
+ 100 791 dtwm -1 /usr/mail/brendan
+ 100 791 dtwm -1 /usr/mail/brendan
+ 100 795 sdtperfmeter 0 /devices/pseudo/mm@0:null
+ 0 803 rpc.rstatd 0 /devices/pseudo/udp@0:udp
+ 0 803 rpc.rstatd 0 /devices/pseudo/udp@0:udp
+ 100 795 sdtperfmeter 0 /devices/pseudo/mm@0:null
+ 100 791 dtwm 0 /export/home/brendan/.dt/Trash/.trashinfo
+ 100 791 dtwm 0 /export/home/brendan/.dt/Trash/.trashinfo
+ 100 791 dtwm 0 /devices/pseudo/mm@0:null
+ 100 783 ttsession 0 /devices/pseudo/pts@0:3
+ 100 783 ttsession 0 /devices/pseudo/pts@0:3
+ 100 783 ttsession 0 /devices/pseudo/pts@0:3
+ 100 791 dtwm 0 /devices/pseudo/mm@0:null
+ 100 783 ttsession 0 /devices/pseudo/pts@0:3
+ 100 783 ttsession 0 /devices/pseudo/pts@0:3
+ 100 791 dtwm 0 /devices/pseudo/mm@0:null
+ 100 791 dtwm 0 /devices/pseudo/mm@0:null
+ 100 792 dtfile 0 /devices/pseudo/mm@0:null
+ 100 783 ttsession 0 /devices/pseudo/pts@0:3
+ ^C
+
+It is interesting what turns up. In the above output, a "dtwm" process
+with process ID 791 called stat on /usr/mail/brendan and received -1 as
+a return value - as this file does not exist. (when were mailboxes ever
+stored in /usr/mail??).
+
+
+statsnoop has a variety of options, as opensnoop does. Here I trace stat()s
+from processes called "bash", while a new bash shell is executed,
+
+ # statsnoop -n bash
+ UID PID COMM FD PATH
+ 100 1493 bash 0 /usr/bin/bash
+ 100 1493 bash 0 /devices/pseudo/pts@0:8
+ 100 1493 bash 0 /lib/libcurses.so.1
+ 100 1493 bash 0 /lib/libsocket.so.1
+ 100 1493 bash 0 /lib/libnsl.so.1
+ 100 1493 bash 0 /lib/libdl.so.1
+ 100 1493 bash 0 /lib/libc.so.1
+ 100 1493 bash 0 /devices/pseudo/pts@0:8
+ 100 1493 bash 0 /devices/pseudo/pts@0:8
+ 100 1493 bash 0 /export/home/brendan
+ 100 1493 bash 0 .
+ 100 1493 bash 0 /export/home/brendan/.bashrc
+ 100 1493 bash -1 /usr/mail/brendan
+ 100 1493 bash 0 /export/home/brendan/.bash_history
+ 100 1493 bash 0 /export/home/brendan/.bash_history
+ 100 1493 bash 0 /export/home/brendan/.bash_history
+ 100 1493 bash -1 /export/home/brendan/.inputrc
+ 100 1493 bash 0 .
+ ^C
+
+bash also checked /usr/mail/brendan? hmm...
+
+ $ echo $MAIL
+ /usr/mail/brendan
+
+hmmmmm...
+
+ $ cat .profile
+ # This is the default standard profile provided to a user.
+ # They are expected to edit it to meet their own needs.
+
+ MAIL=/usr/mail/${LOGNAME:?}
+
+huh?
+
+ $ cat /etc/skel/.profile
+ # This is the default standard profile provided to a user.
+ # They are expected to edit it to meet their own needs.
+
+ MAIL=/usr/mail/${LOGNAME:?}
+
+ $ cat /var/sadm/pkg/SUNWcsr/save/pspool/SUNWcsr/reloc/etc/skel/.profile
+ # This is the default standard profile provided to a user.
+ # They are expected to edit it to meet their own needs.
+
+ MAIL=/usr/mail/${LOGNAME:?}
+
+oh.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt b/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt
new file mode 100644
index 000000000000..e8697660f9c7
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the swapinfo.d script,
+
+ # ./swapinfo.d
+ RAM _______Total 511 MB
+ RAM Unusable 8 MB
+ RAM Kernel 128 MB
+ RAM Locked 0 MB
+ RAM Used 256 MB
+ RAM Free 118 MB
+
+ Disk _______Total 1023 MB
+ Disk Resv 626 MB
+ Disk Avail 397 MB
+
+ Swap _______Total 1335 MB
+ Swap Resv 626 MB
+ Swap Avail 709 MB
+ Swap (Minfree) 62 MB
+
+The output above gives a summary of the state of virtual memory (swap)
+on the system.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt
new file mode 100644
index 000000000000..2858c5147c66
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt
@@ -0,0 +1,45 @@
+The following is a demonstration of the sysbypid.d command,
+
+ # sysbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ EXEC PID SYS VALUE
+ xterm 24030 rawch 1
+ sched 0 rcvint 1
+ fsflush 3 pswitch 1
+ dtrace 19235 inv_swtch 1
+ xterm 24030 syswrite 2
+ Xorg 3597 syswrite 2
+ xterm 24030 inv_swtch 2
+ dtrace 19235 pswitch 2
+ dtrace 19235 syswrite 2
+ soffice.bin 4019 pswitch 3
+ xterm 24030 pswitch 3
+ mozilla-bin 3730 inv_swtch 4
+ xterm 24030 sysread 4
+ mozilla-bin 3730 readch 9
+ mozilla-bin 3730 sysread 9
+ Xorg 3597 pswitch 10
+ Xorg 3597 sysread 11
+ mozilla-bin 3730 syswrite 13
+ java_vm 28209 pswitch 13
+ sched 0 pswitch 15
+ mozilla-bin 3730 pswitch 25
+ setiathome 3929 trap 26
+ setiathome 3929 pswitch 26
+ setiathome 3929 inv_swtch 26
+ dtrace 19235 writech 32
+ dtrace 19235 outch 34
+ dtrace 19235 trap 53
+ Xorg 3597 writech 64
+ xterm 24030 readch 96
+ xterm 24030 writech 133
+ mozilla-bin 3730 writech 905
+ Xorg 3597 readch 1044
+
+In the above output, the Xorg command with PID 3597 read 1044 bytes, as
+indicated by readch.
+
+mozilla-bin with PID 3730 wrote 905 bytes, as indicated by the writech.
+
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt
new file mode 100644
index 000000000000..e51bb14cf0fa
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt
@@ -0,0 +1,50 @@
+The following is a demonstration of the syscallbypid.d script,
+
+
+Here we run syscallbypid.d for a few seconds then hit Ctrl-C,
+
+ # syscallbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD SYSCALL COUNT
+ 11039 dtrace setcontext 1
+ 11039 dtrace lwp_sigmask 1
+ 7 svc.startd portfs 1
+ 357 poold lwp_cond_wait 1
+ 27328 java_vm lwp_cond_wait 1
+ 1532 Xorg writev 1
+ 11039 dtrace lwp_park 1
+ 11039 dtrace schedctl 1
+ 11039 dtrace mmap 1
+ 361 sendmail pollsys 1
+ 11039 dtrace fstat64 1
+ 11039 dtrace sigaction 2
+ 11039 dtrace write 2
+ 361 sendmail lwp_sigmask 2
+ 1659 mozilla-bin yield 2
+ 11039 dtrace sysconfig 3
+ 361 sendmail pset 3
+ 20317 sshd read 4
+ 361 sendmail gtime 4
+ 20317 sshd write 4
+ 27328 java_vm ioctl 6
+ 11039 dtrace brk 8
+ 1532 Xorg setcontext 8
+ 1532 Xorg lwp_sigmask 8
+ 20317 sshd pollsys 8
+ 357 poold pollsys 13
+ 1659 mozilla-bin read 16
+ 20317 sshd lwp_sigmask 16
+ 1532 Xorg setitimer 17
+ 27328 java_vm pollsys 18
+ 1532 Xorg pollsys 19
+ 11039 dtrace p_online 21
+ 1532 Xorg read 22
+ 1659 mozilla-bin write 25
+ 1659 mozilla-bin lwp_park 26
+ 11039 dtrace ioctl 36
+ 1659 mozilla-bin pollsys 155
+ 1659 mozilla-bin ioctl 306
+
+In the above output, we can see that "mozilla-bin" with PID 1659 made the
+most system calls - 306 ioctl()s.
diff --git a/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt
new file mode 100644
index 000000000000..7469b79cc88b
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt
@@ -0,0 +1,17 @@
+The following is an example of the syscallbyproc.d script,
+
+ # syscallbyproc.d
+ dtrace: description 'syscall:::entry ' matched 228 probes
+ ^C
+ snmpd 1
+ utmpd 2
+ inetd 2
+ nscd 7
+ svc.startd 11
+ sendmail 31
+ poold 133
+ dtrace 1720
+
+The above output shows that dtrace made the most system calls in this sample,
+1720 syscalls.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt b/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt
new file mode 100644
index 000000000000..d131a176c10a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt
@@ -0,0 +1,24 @@
+The following is a demonstration of the syscallbysysc.d script,
+
+ # syscallbysysc.d
+ dtrace: description 'syscall:::entry ' matched 228 probes
+ ^C
+ fstat 1
+ setcontext 1
+ lwp_park 1
+ schedctl 1
+ mmap 1
+ sigaction 2
+ pset 2
+ lwp_sigmask 2
+ gtime 3
+ sysconfig 3
+ write 4
+ brk 6
+ pollsys 7
+ p_online 558
+ ioctl 579
+
+In the above output, the ioctl system call was the most common, occuring
+579 times.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt
new file mode 100644
index 000000000000..3388963411e5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt
@@ -0,0 +1,166 @@
+The following are examples of tcl_calldist.d.
+
+This script traces the elapsed time of Tcl procedures and commands and
+prints a report containing distribution plots per function. Here it traces the
+example program, Code/Tcl/func_abc.tcl
+
+# tcl_calldist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 exclusive elapsed times (us),
+ PID=16033, cmd, namespace
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@ 1
+ 4 |@@@@@@@@@@@@@ 1
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 |@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ PID=16033, cmd, puts
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+ 128 |@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ PID=16033, cmd, tclInit
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ PID=16033, proc, func_a
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ PID=16033, proc, func_b
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ PID=16033, proc, func_c
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ PID=16033, cmd, file
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@ 2
+ 16 |@@@@@@@ 2
+ 32 |@@@ 1
+ 64 |@@@@@@@@@@ 3
+ 128 | 0
+
+ PID=16033, cmd, source
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ PID=16033, cmd, if
+ value ------------- Distribution ------------- count
+ 8 | 0
+ 16 |@@@@@@@@@@@@@@@@@@@@ 4
+ 32 |@@@@@@@@@@@@@@@ 3
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 |@@@@@ 1
+ 1024 | 0
+
+ PID=16033, cmd, after
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+
+Top 10 inclusive elapsed times (us),
+ PID=16033, cmd, uplevel
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=16033, cmd, tclInit
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ PID=16033, proc, tclInit
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ PID=16033, cmd, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ PID=16033, proc, func_c
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ PID=16033, cmd, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ PID=16033, proc, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ PID=16033, cmd, after
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 3
+ 1048576 | 0
+
+ PID=16033, cmd, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ PID=16033, proc, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+The exclusive function elapsed times show that each func_a took between 256
+and 511 microseconds. This time excludes the time spent in any other functions.
+
+The inclusive elapsed times section shows that each func_a spent
+took between 2.1 and 4.2 seconds. This time also includes the time spent in
+any other commands or procedures called by func_a.
+
+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.
+
+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.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt
new file mode 100644
index 000000000000..5ffada4957a0
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt
@@ -0,0 +1,41 @@
+The following are examples of the results of running the tcl_calls.d script.
+
+In this example we see it running while the Code/Tcl/func_abc.tcl script is run.
+
+# tcl_calls.d Tracing... Hit Ctrl-C to end.
+^C
+ PID TYPE NAME COUNT
+ 16021 cmd concat 1
+ 16021 cmd exit 1
+ 16021 cmd func_a 1
+ 16021 cmd func_b 1
+ 16021 cmd func_c 1
+ 16021 cmd list 1
+ 16021 cmd rename 1
+ 16021 cmd source 1
+ 16021 cmd tclInit 1
+ 16021 cmd unset 1
+ 16021 cmd uplevel 1
+ 16021 cmd variable 1
+ 16021 proc func_a 1
+ 16021 proc func_b 1
+ 16021 proc func_c 1
+ 16021 proc tclInit 1
+ 16021 cmd foreach 2
+ 16021 cmd global 2
+ 16021 cmd interp 2
+ 16021 cmd package 2
+ 16021 cmd set 2
+ 16021 cmd after 3
+ 16021 cmd namespace 3
+ 16021 cmd puts 3
+ 16021 cmd lappend 4
+ 16021 cmd lsearch 4
+ 16021 cmd if 8
+ 16021 cmd info 11
+ 16021 cmd file 12
+ 16021 cmd proc 12
+
+You can see that PID 16021 made quite a few different types of command and
+procedure calls during its execution.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt
new file mode 100644
index 000000000000..56d100af93ef
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt
@@ -0,0 +1,61 @@
+The following are examples of tcl_calltime.d.
+
+This script traces the total elapsed time of different Tcl commands and
+procedures and prints a report. Here it traces the example program,
+Code/Tcl/func_abc.tcl
+
+# tcl_calltime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+ PID TYPE NAME COUNT
+ 16028 cmd after 3
+ 16028 cmd namespace 3
+ 16028 cmd puts 3
+ 16028 cmd lappend 4
+ 16028 cmd lsearch 4
+ 16028 cmd if 8
+ 16028 cmd info 11
+ 16028 cmd file 12
+ 16028 cmd proc 12
+ 0 total - 85
+
+Top 10 exclusive elapsed times (us),
+ PID TYPE NAME TOTAL
+ 16028 cmd tclInit 253
+ 16028 cmd namespace 272
+ 16028 proc func_c 330
+ 16028 proc func_b 357
+ 16028 proc func_a 363
+ 16028 cmd file 416
+ 16028 cmd if 852
+ 16028 cmd source 929
+ 16028 cmd after 3025152
+ 0 total - 3030001
+
+Top 10 inclusive elapsed times (us),
+ PID TYPE NAME TOTAL
+ 16028 cmd uplevel 1849
+ 16028 proc tclInit 2519
+ 16028 cmd tclInit 2772
+ 16028 proc func_c 1010031
+ 16028 cmd func_c 1010088
+ 16028 proc func_b 2020059
+ 16028 cmd func_b 2020106
+ 16028 cmd after 3025152
+ 16028 proc func_a 3026545
+ 16028 cmd func_a 3026572
+
+The output is in three sections. The first shows the top ten most executed
+commands while the script is tracing.
+
+The second (Top 10 exclusive elapsed times) shows us the top ten slowest
+commands or procedures, this number excludes any subroutines called during
+command execution.
+
+The third (Top 10 inclusive elapsed times) shows us the top ten slowest
+commands or procedures including any time spent in subroutines. You can see
+that func_a took the most amount of time all up. This makes sense if you
+compare the code at Code/Tcl/func_abc.tcl with the results.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt
new file mode 100644
index 000000000000..09126f603abc
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt
@@ -0,0 +1,164 @@
+The following are examples of tcl_cpudist.d.
+
+This script traces the on-CPU time of Tcl commands and procedures and
+prints a report containing distribution plots per subroutine. Here it
+traces the example program, Code/Tcl/func_slow.tcl.
+
+# tcl_cpudist.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 exclusive on-CPU times (us),
+ PID=16043, cmd, info
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@ 1
+ 2 |@@@@@@@@@@@@@@@ 4
+ 4 |@@@@ 1
+ 8 |@@@@ 1
+ 16 |@@@@@@@@@@@ 3
+ 32 |@@@@ 1
+ 64 | 0
+
+ PID=16043, cmd, namespace
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@@@@@@@@@@@ 1
+ 2 |@@@@@@@@@@@@@ 1
+ 4 | 0
+ 8 | 0
+ 16 | 0
+ 32 | 0
+ 64 | 0
+ 128 |@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ PID=16043, cmd, puts
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@ 2
+ 64 | 0
+ 128 |@@@@@@@@@@@@@ 1
+ 256 | 0
+
+ PID=16043, cmd, if
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 |@@@@@@@@@@ 2
+ 16 |@@@@@@@@@@@@@@@@@@@@ 4
+ 32 |@@@@@ 1
+ 64 | 0
+ 128 |@@@@@ 1
+ 256 | 0
+
+ PID=16043, cmd, tclInit
+ value ------------- Distribution ------------- count
+ 128 | 0
+ 256 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 512 | 0
+
+ PID=16043, cmd, file
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 4 |@@@@@@@@@@@@@ 4
+ 8 |@@@@@@@@@@@@@ 4
+ 16 | 0
+ 32 |@@@ 1
+ 64 |@@@@@@@@@@ 3
+ 128 | 0
+
+ PID=16043, cmd, source
+ value ------------- Distribution ------------- count
+ 256 | 0
+ 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1024 | 0
+
+ PID=16043, proc, func_a
+ value ------------- Distribution ------------- count
+ 262144 | 0
+ 524288 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 1048576 | 0
+
+ PID=16043, proc, func_b
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ PID=16043, proc, func_c
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+
+Top 10 inclusive on-CPU times (us),
+ PID=16043, cmd, source
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=16043, cmd, uplevel
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=16043, proc, tclInit
+ value ------------- Distribution ------------- count
+ 512 | 0
+ 1024 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2048 | 0
+
+ PID=16043, cmd, tclInit
+ value ------------- Distribution ------------- count
+ 1024 | 0
+ 2048 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4096 | 0
+
+ PID=16043, cmd, func_c
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ PID=16043, proc, func_c
+ value ------------- Distribution ------------- count
+ 524288 | 0
+ 1048576 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 2097152 | 0
+
+ PID=16043, cmd, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ PID=16043, cmd, func_b
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ PID=16043, proc, func_a
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+ PID=16043, proc, func_b
+ value ------------- Distribution ------------- count
+ 1048576 | 0
+ 2097152 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 1
+ 4194304 | 0
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the subroutine began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_notes.txt for more details. Also see
+Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
+detailed explanation of exclusive vs inclusive subroutine time.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt
new file mode 100644
index 000000000000..c736201e262d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt
@@ -0,0 +1,67 @@
+Following are examples of running tcl_cputime.d.
+
+Here it runs while we execute Code/Tcl/func_slow.tcl
+
+# tcl_cputime.d
+Tracing... Hit Ctrl-C to end.
+^C
+
+Top 10 counts,
+ PID TYPE NAME COUNT
+ 16038 cmd set 2
+ 16038 cmd namespace 3
+ 16038 cmd puts 3
+ 16038 cmd lappend 4
+ 16038 cmd lsearch 4
+ 16038 cmd if 8
+ 16038 cmd info 11
+ 16038 cmd file 12
+ 16038 cmd proc 12
+ 0 total - 82
+
+Top 10 exclusive on-CPU times (us),
+ PID TYPE NAME TOTAL
+ 16038 cmd namespace 130
+ 16038 cmd puts 232
+ 16038 cmd if 310
+ 16038 cmd tclInit 315
+ 16038 cmd file 411
+ 16038 cmd source 760
+ 16038 proc func_a 535521
+ 16038 proc func_b 1071082
+ 16038 proc func_c 1619323
+ 0 total - 3228670
+
+Top 10 inclusive on-CPU times (us),
+ PID TYPE NAME TOTAL
+ 16038 cmd source 1359
+ 16038 cmd uplevel 1367
+ 16038 proc tclInit 1865
+ 16038 cmd tclInit 2180
+ 16038 proc func_c 1619360
+ 16038 cmd func_c 1619404
+ 16038 proc func_b 2690525
+ 16038 cmd func_b 2690568
+ 16038 proc func_a 3226247
+ 16038 cmd func_a 3226275
+
+We can see that the output is in three sections. The first section represents
+the ten most commonly executed commands while the script is tracing.
+
+The exclusive function on-CPU times show that func_a spent around 0.5 seconds
+on-CPU, func_b spent about 1.0 seconds, and func_c, 1.6 seconds. This excludes
+time spent in other procedures or commands.
+
+The inclusive function on-CPU times show the time spent by these procedures in
+total, including the time spent in other functions called, and since func_a
+called func_b which called func_c, these times make sense.
+
+These on-CPU times are the time the thread spent running on a CPU, from when
+the function began to when it completed. This does not include time
+spent off-CPU time such as sleeping for I/O or waiting for scheduling.
+
+On-CPU times are useful for showing who is causing the CPUs to be busy.
+See Notes/ALLoncpu_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.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt
new file mode 100644
index 000000000000..dd2dcd60c772
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt
@@ -0,0 +1,195 @@
+The following are examples of running tcl_flow.d.
+
+Here the script is tracing the execution of Code/Tcl/func_abc.tcl
+
+# tcl_flow.d
+ C PID TIME(us) -- CALL
+ 0 16068 3904942506169 > if
+ 0 16068 3904942506261 > info
+ 0 16068 3904942506286 < info
+ 0 16068 3904942506350 > proc
+ 0 16068 3904942506363 < proc
+ 0 16068 3904942506369 < if
+ 0 16068 3904942506383 > tclInit
+ 0 16068 3904942506605 -> tclInit
+ 0 16068 3904942506614 > global
+ 0 16068 3904942506626 < global
+ 0 16068 3904942506632 > global
+ 0 16068 3904942506638 < global
+ 0 16068 3904942506643 > rename
+ 0 16068 3904942506666 < rename
+ 0 16068 3904942506675 > info
+ 0 16068 3904942506685 < info
+ 0 16068 3904942506694 > info
+ 0 16068 3904942506721 < info
+ 0 16068 3904942506728 > unset
+ 0 16068 3904942506741 < unset
+ 0 16068 3904942506746 > concat
+ 0 16068 3904942506760 < concat
+ 0 16068 3904942506774 > file
+ 0 16068 3904942506792 < file
+ 0 16068 3904942506797 > file
+ 0 16068 3904942506880 < file
+ 0 16068 3904942506885 > file
+ 0 16068 3904942506895 < file
+ 0 16068 3904942506901 > file
+ 0 16068 3904942507009 < file
+ 0 16068 3904942507015 > file
+ 0 16068 3904942507025 < file
+ 0 16068 3904942507031 > file
+ 0 16068 3904942507118 < file
+ 0 16068 3904942507124 > file
+ 0 16068 3904942507133 < file
+ 0 16068 3904942507139 > file
+ 0 16068 3904942507193 < file
+ 0 16068 3904942507200 > uplevel
+ 0 16068 3904942507209 > source
+ 0 16068 3904942507649 > if
+ 0 16068 3904942507664 > info
+ 0 16068 3904942507673 < info
+ 0 16068 3904942507681 < if
+ 0 16068 3904942507691 > package
+ 0 16068 3904942507700 < package
+ 0 16068 3904942507712 > if
+ 0 16068 3904942507722 > info
+ 0 16068 3904942507728 < info
+ 0 16068 3904942507749 > info
+ 0 16068 3904942507773 < info
+ 0 16068 3904942507780 < if
+ 0 16068 3904942507797 > namespace
+ 0 16068 3904942507898 > variable
+ 0 16068 3904942507905 < variable
+ 0 16068 3904942507911 > info
+ 0 16068 3904942507923 < info
+ 0 16068 3904942507928 > info
+ 0 16068 3904942507934 < info
+ 0 16068 3904942507939 > info
+ 0 16068 3904942507947 < info
+ 0 16068 3904942507952 > file
+ 0 16068 3904942507971 < file
+ 0 16068 3904942507977 > list
+ 0 16068 3904942507991 < list
+ 0 16068 3904942507996 > foreach
+ 0 16068 3904942508020 > lsearch
+ 0 16068 3904942508028 < lsearch
+ 0 16068 3904942508034 > lappend
+ 0 16068 3904942508041 < lappend
+ 0 16068 3904942508051 > lsearch
+ 0 16068 3904942508056 < lsearch
+ 0 16068 3904942508061 > lappend
+ 0 16068 3904942508068 < lappend
+ 0 16068 3904942508073 < foreach
+ 0 16068 3904942508078 > info
+ 0 16068 3904942508086 < info
+ 0 16068 3904942508090 > file
+ 0 16068 3904942508108 < file
+ 0 16068 3904942508113 > file
+ 0 16068 3904942508129 < file
+ 0 16068 3904942508134 > file
+ 0 16068 3904942508142 < file
+ 0 16068 3904942508148 > lsearch
+ 0 16068 3904942508153 < lsearch
+ 0 16068 3904942508158 > lappend
+ 0 16068 3904942508166 < lappend
+ 0 16068 3904942508170 > info
+ 0 16068 3904942508176 < info
+ 0 16068 3904942508181 > foreach
+ 0 16068 3904942508190 > lsearch
+ 0 16068 3904942508195 < lsearch
+ 0 16068 3904942508200 > lappend
+ 0 16068 3904942508206 < lappend
+ 0 16068 3904942508211 < foreach
+ 0 16068 3904942508217 < namespace
+ 0 16068 3904942508243 > if
+ 0 16068 3904942508261 > interp
+ 0 16068 3904942508276 < interp
+ 0 16068 3904942508283 < if
+ 0 16068 3904942508296 > package
+ 0 16068 3904942508302 < package
+ 0 16068 3904942508312 > if
+ 0 16068 3904942508322 > interp
+ 0 16068 3904942508328 < interp
+ 0 16068 3904942508369 < if
+ 0 16068 3904942508387 > if
+ 0 16068 3904942508398 > namespace
+ 0 16068 3904942508406 < namespace
+ 0 16068 3904942508412 < if
+ 0 16068 3904942508424 > set
+ 0 16068 3904942508430 < set
+ 0 16068 3904942508437 > set
+ 0 16068 3904942508443 < set
+ 0 16068 3904942508451 > if
+ 0 16068 3904942508463 > namespace
+ 0 16068 3904942508469 < namespace
+ 0 16068 3904942508479 > proc
+ 0 16068 3904942508488 < proc
+ 0 16068 3904942508493 < if
+ 0 16068 3904942508573 > proc
+ 0 16068 3904942508582 < proc
+ 0 16068 3904942508599 > proc
+ 0 16068 3904942508609 < proc
+ 0 16068 3904942508638 > proc
+ 0 16068 3904942508645 < proc
+ 0 16068 3904942508664 > proc
+ 0 16068 3904942508673 < proc
+ 0 16068 3904942508686 > proc
+ 0 16068 3904942508693 < proc
+ 0 16068 3904942508737 > if
+ 0 16068 3904942508760 > proc
+ 0 16068 3904942508782 < proc
+ 0 16068 3904942508788 < if
+ 0 16068 3904942508826 > proc
+ 0 16068 3904942508837 < proc
+ 0 16068 3904942508843 < source
+ 0 16068 3904942508848 < uplevel
+ 0 16068 3904942508857 <- tclInit
+ 0 16068 3904942508871 < tclInit
+ 0 16068 3904942509050 > proc
+ 0 16068 3904942509059 < proc
+ 0 16068 3904942509067 > proc
+ 0 16068 3904942509074 < proc
+ 0 16068 3904942509081 > proc
+ 0 16068 3904942509088 < proc
+ 0 16068 3904942509094 > func_a
+ 0 16068 3904942509110 -> func_a
+ 0 16068 3904942509116 > puts
+ 0 16068 3904942509256 < puts
+ 0 16068 3904942509262 > after
+ 0 16068 3904943510998 < after
+ 0 16068 3904943511016 > func_b
+ 0 16068 3904943511050 -> func_b
+ 0 16068 3904943511058 > puts
+ 0 16068 3904943511090 < puts
+ 0 16068 3904943511094 > after
+ 0 16068 3904944520994 < after
+ 0 16068 3904944521013 > func_c
+ 0 16068 3904944521043 -> func_c
+ 0 16068 3904944521051 > puts
+ 0 16068 3904944521092 < puts
+ 0 16068 3904944521097 > after
+ 0 16068 3904945530993 < after
+ 0 16068 3904945531012 <- func_c
+ 0 16068 3904945531020 < func_c
+ 0 16068 3904945531025 <- func_b
+ 0 16068 3904945531029 < func_b
+ 0 16068 3904945531034 <- func_a
+ 0 16068 3904945531039 < func_a
+ 0 16068 3904945531064 > exit
+^C
+
+You can see the output is in five columns.
+
+The first column is CPU-id, the second is PID, third is the time since boot in
+microseconds since the previous action. The fourth and fifth columns
+represent the action happening. The Tcl command or procedure name is prefixed
+by an indicator reprenting what is happening. These may be -> (procedure
+entry), <- (procedure return), > (command entry), or < (command return).
+
+As each action is taken, the fourth and fifth columns are indented by 2 spaces.
+This shows which procedure or command is calling which.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt
new file mode 100644
index 000000000000..8e07238e1303
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt
@@ -0,0 +1,197 @@
+Following are examples of running tcl_flowtime.d.
+
+Here the tcl_flowtime.d script is running on the program
+Code/Tcl/func_abc.tcl.
+
+
+# tcl_flowtime.d
+ C PID TIME(us) DELTA(us) -- CALL
+ 0 17901 4436098007906 2 > if
+ 0 17901 4436098007976 70 > info
+ 0 17901 4436098007998 21 < info
+ 0 17901 4436098008050 52 > proc
+ 0 17901 4436098008063 12 < proc
+ 0 17901 4436098008069 6 < if
+ 0 17901 4436098008085 15 > tclInit
+ 0 17901 4436098008286 201 -> tclInit
+ 0 17901 4436098008295 8 > global
+ 0 17901 4436098008305 10 < global
+ 0 17901 4436098008311 6 > global
+ 0 17901 4436098008318 6 < global
+ 0 17901 4436098008323 5 > rename
+ 0 17901 4436098008342 18 < rename
+ 0 17901 4436098008353 10 > info
+ 0 17901 4436098008362 9 < info
+ 0 17901 4436098008369 6 > info
+ 0 17901 4436098008395 25 < info
+ 0 17901 4436098008403 8 > unset
+ 0 17901 4436098008410 6 < unset
+ 0 17901 4436098008416 5 > concat
+ 0 17901 4436098008425 8 < concat
+ 0 17901 4436098008440 15 > file
+ 0 17901 4436098008459 18 < file
+ 0 17901 4436098008465 6 > file
+ 0 17901 4436098008543 78 < file
+ 0 17901 4436098008550 7 > file
+ 0 17901 4436098008560 9 < file
+ 0 17901 4436098008567 7 > file
+ 0 17901 4436098008671 104 < file
+ 0 17901 4436098008678 7 > file
+ 0 17901 4436098008688 9 < file
+ 0 17901 4436098008695 6 > file
+ 0 17901 4436098008780 84 < file
+ 0 17901 4436098008787 6 > file
+ 0 17901 4436098008796 9 < file
+ 0 17901 4436098008803 6 > file
+ 0 17901 4436098008854 51 < file
+ 0 17901 4436098008862 7 > uplevel
+ 0 17901 4436098008872 10 > source
+ 0 17901 4436098009290 417 > if
+ 0 17901 4436098009304 14 > info
+ 0 17901 4436098009311 7 < info
+ 0 17901 4436098009319 7 < if
+ 0 17901 4436098009331 11 > package
+ 0 17901 4436098009340 9 < package
+ 0 17901 4436098009353 12 > if
+ 0 17901 4436098009363 10 > info
+ 0 17901 4436098009369 6 < info
+ 0 17901 4436098009390 20 > info
+ 0 17901 4436098009413 22 < info
+ 0 17901 4436098009421 7 < if
+ 0 17901 4436098009439 18 > namespace
+ 0 17901 4436098009530 90 > variable
+ 0 17901 4436098009537 7 < variable
+ 0 17901 4436098009544 6 > info
+ 0 17901 4436098009554 10 < info
+ 0 17901 4436098009561 6 > info
+ 0 17901 4436098009567 6 < info
+ 0 17901 4436098009573 5 > info
+ 0 17901 4436098009579 6 < info
+ 0 17901 4436098009586 6 > file
+ 0 17901 4436098009605 19 < file
+ 0 17901 4436098009611 6 > list
+ 0 17901 4436098009627 15 < list
+ 0 17901 4436098009633 6 > foreach
+ 0 17901 4436098009658 24 > lsearch
+ 0 17901 4436098009665 7 < lsearch
+ 0 17901 4436098009673 7 > lappend
+ 0 17901 4436098009680 7 < lappend
+ 0 17901 4436098009689 9 > lsearch
+ 0 17901 4436098009694 5 < lsearch
+ 0 17901 4436098009700 6 > lappend
+ 0 17901 4436098009707 6 < lappend
+ 0 17901 4436098009712 5 < foreach
+ 0 17901 4436098009719 6 > info
+ 0 17901 4436098009726 7 < info
+ 0 17901 4436098009732 5 > file
+ 0 17901 4436098009749 17 < file
+ 0 17901 4436098009756 6 > file
+ 0 17901 4436098009772 16 < file
+ 0 17901 4436098009778 6 > file
+ 0 17901 4436098009787 9 < file
+ 0 17901 4436098009795 7 > lsearch
+ 0 17901 4436098009800 5 < lsearch
+ 0 17901 4436098009806 6 > lappend
+ 0 17901 4436098009812 5 < lappend
+ 0 17901 4436098009818 5 > info
+ 0 17901 4436098009823 5 < info
+ 0 17901 4436098009830 6 > foreach
+ 0 17901 4436098009840 9 > lsearch
+ 0 17901 4436098009845 5 < lsearch
+ 0 17901 4436098009851 6 > lappend
+ 0 17901 4436098009857 5 < lappend
+ 0 17901 4436098009862 5 < foreach
+ 0 17901 4436098009868 5 < namespace
+ 0 17901 4436098009896 27 > if
+ 0 17901 4436098009915 18 > interp
+ 0 17901 4436098009922 7 < interp
+ 0 17901 4436098009930 8 < if
+ 0 17901 4436098009943 12 > package
+ 0 17901 4436098009949 5 < package
+ 0 17901 4436098009960 10 > if
+ 0 17901 4436098009970 10 > interp
+ 0 17901 4436098009976 5 < interp
+ 0 17901 4436098010018 41 < if
+ 0 17901 4436098010036 18 > if
+ 0 17901 4436098010049 12 > namespace
+ 0 17901 4436098010057 7 < namespace
+ 0 17901 4436098010063 6 < if
+ 0 17901 4436098010074 11 > set
+ 0 17901 4436098010081 6 < set
+ 0 17901 4436098010089 8 > set
+ 0 17901 4436098010095 5 < set
+ 0 17901 4436098010104 9 > if
+ 0 17901 4436098010116 12 > namespace
+ 0 17901 4436098010122 6 < namespace
+ 0 17901 4436098010133 10 > proc
+ 0 17901 4436098010142 8 < proc
+ 0 17901 4436098010148 5 < if
+ 0 17901 4436098010228 79 > proc
+ 0 17901 4436098010237 8 < proc
+ 0 17901 4436098010255 18 > proc
+ 0 17901 4436098010264 9 < proc
+ 0 17901 4436098010293 29 > proc
+ 0 17901 4436098010301 7 < proc
+ 0 17901 4436098010320 18 > proc
+ 0 17901 4436098010329 9 < proc
+ 0 17901 4436098010342 13 > proc
+ 0 17901 4436098010350 7 < proc
+ 0 17901 4436098010394 44 > if
+ 0 17901 4436098010418 23 > proc
+ 0 17901 4436098010437 18 < proc
+ 0 17901 4436098010443 6 < if
+ 0 17901 4436098010563 120 > proc
+ 0 17901 4436098010575 12 < proc
+ 0 17901 4436098010582 7 < source
+ 0 17901 4436098010588 5 < uplevel
+ 0 17901 4436098010596 8 <- tclInit
+ 0 17901 4436098010610 13 < tclInit
+ 0 17901 4436098010800 190 > proc
+ 0 17901 4436098010809 8 < proc
+ 0 17901 4436098010818 9 > proc
+ 0 17901 4436098010825 6 < proc
+ 0 17901 4436098010833 8 > proc
+ 0 17901 4436098010840 6 < proc
+ 0 17901 4436098010847 7 > func_a
+ 0 17901 4436098010863 15 -> func_a
+ 0 17901 4436098010870 6 > puts
+ 0 17901 4436098011006 136 < puts
+ 0 17901 4436098011014 7 > after
+ 0 17901 4436099020588 1009573 < after
+ 0 17901 4436099020611 23 > func_b
+ 0 17901 4436099020646 34 -> func_b
+ 0 17901 4436099020655 8 > puts
+ 0 17901 4436099020697 41 < puts
+ 0 17901 4436099020703 6 > after
+ 0 17901 4436100030614 1009910 < after
+ 0 17901 4436100030638 24 > func_c
+ 0 17901 4436100030671 32 -> func_c
+ 0 17901 4436100030680 9 > puts
+ 0 17901 4436100030723 42 < puts
+ 0 17901 4436100030729 6 > after
+ 0 17901 4436101040600 1009870 < after
+ 0 17901 4436101040623 22 <- func_c
+ 0 17901 4436101040633 10 < func_c
+ 0 17901 4436101040639 6 <- func_b
+ 0 17901 4436101040645 5 < func_b
+ 0 17901 4436101040651 5 <- func_a
+ 0 17901 4436101040656 5 < func_a
+ 0 17901 4436101040682 25 > exit
+
+You can see the output is in six columns.
+
+The first column is CPU-id, the second is PID, third is the time since boot in
+microseconds, fourth is the elapsed time since the previous action. The fifth
+and sixth columns represent the action. The Tcl command or procedure name is
+prefixed by an indicator reprenting what is happening. These may be ->
+(procedure entry), <- (procedure return), > (command entry), or < (command
+return).
+
+As each action is taken, the fifth and sixth columns are indented by 2 spaces.
+This shows which procedure or command is calling which.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt
new file mode 100644
index 000000000000..6f1ba9a3d137
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt
@@ -0,0 +1,46 @@
+The following are examples of running the script tcl_ins.d
+
+Here it traces as Code/Tcl/func_slow.tcl executes.
+
+# tcl_ins.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID TYPE NAME COUNT
+ 16005 inst foreach_start4 1
+ 16005 inst jumpTrue1 1
+ 16005 inst lappendScalar1 1
+ 16005 inst list 1
+ 16005 inst strneq 1
+ 16005 inst beginCatch4 2
+ 16005 inst dup 2
+ 16005 inst endCatch 2
+ 16005 inst eq 2
+ 16005 inst land 2
+ 16005 inst storeScalarStk 2
+ 16005 inst foreach_step4 4
+ 16005 inst not 4
+ 16005 inst loadArrayStk 5
+ 16005 inst streq 7
+ 16005 inst tryCvtToNumeric 8
+ 16005 inst jumpFalse1 12
+ 16005 inst loadScalarStk 13
+ 16005 inst jump1 14
+ 16005 inst pop 18
+ 16005 inst invokeStk1 53
+ 16005 inst add 600000
+ 16005 inst concat1 600000
+ 16005 inst exprStk 600000
+ 16005 inst lt 600007
+ 16005 inst storeScalar1 600016
+ 16005 inst done 600021
+ 16005 inst loadScalar1 1200020
+ 16005 inst push1 4200193
+
+It is showing the instructions called by Tcl as the program executes. The
+larger counts toward the bottom of the display are from the looping construct
+used in Code/Tcl/func_slow.tcl.
+
+Tracing the instructions is quite low-level and slow the target application
+considerably and would probably be used only as a last resort if you have no
+other indication of why CPUs are busy.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt
new file mode 100644
index 000000000000..2919f8eb72fd
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt
@@ -0,0 +1,997 @@
+The following are examples of running tcl_insflow.d
+
+Here you can see the script running while tracing Code/Tcl/func_abc.tcl
+
+# tcl_insflow.d
+ C PID TIME(us) DELTA(us) TYPE -- CALL
+ 0 174829 4436207514685 3 cmd -> if
+ 0 174829 4436207514793 107 inst -> push1
+ 0 174829 4436207514805 11 inst <- push1
+ 0 174829 4436207514814 8 inst -> push1
+ 0 174829 4436207514820 5 inst <- push1
+ 0 174829 4436207514826 5 inst -> push1
+ 0 174829 4436207514832 5 inst <- push1
+ 0 174829 4436207514838 5 inst -> invokeStk1
+ 0 174829 4436207514845 6 cmd -> info
+ 0 174829 4436207514883 38 cmd <- info
+ 0 174829 4436207514895 11 inst <- invokeStk1
+ 0 174829 4436207514901 6 inst -> push1
+ 0 174829 4436207514907 5 inst <- push1
+ 0 174829 4436207514913 5 inst -> eq
+ 0 174829 4436207514927 14 inst <- eq
+ 0 174829 4436207514933 6 inst -> done
+ 0 174829 4436207514940 6 inst <- done
+ 0 174829 4436207514978 38 inst -> push1
+ 0 174829 4436207514985 6 inst <- push1
+ 0 174829 4436207514991 5 inst -> push1
+ 0 174829 4436207514996 5 inst <- push1
+ 0 174829 4436207515002 5 inst -> push1
+ 0 174829 4436207515007 5 inst <- push1
+ 0 174829 4436207515013 5 inst -> push1
+ 0 174829 4436207515019 5 inst <- push1
+ 0 174829 4436207515024 5 inst -> invokeStk1
+ 0 174829 4436207515031 6 cmd -> proc
+ 0 174829 4436207515045 13 cmd <- proc
+ 0 174829 4436207515051 6 inst <- invokeStk1
+ 0 174829 4436207515057 6 inst -> done
+ 0 174829 4436207515063 5 inst <- done
+ 0 174829 4436207515069 6 cmd <- if
+ 0 174829 4436207515086 16 cmd -> tclInit
+ 0 174829 4436207515295 208 proc -> tclInit
+ 0 174829 4436207515305 10 inst -> push1
+ 0 174829 4436207515311 5 inst <- push1
+ 0 174829 4436207515317 6 inst -> push1
+ 0 174829 4436207515323 5 inst <- push1
+ 0 174829 4436207515328 5 inst -> push1
+ 0 174829 4436207515334 5 inst <- push1
+ 0 174829 4436207515340 5 inst -> push1
+ 0 174829 4436207515345 5 inst <- push1
+ 0 174829 4436207515351 5 inst -> invokeStk1
+ 0 174829 4436207515357 6 cmd -> global
+ 0 174829 4436207515369 11 cmd <- global
+ 0 174829 4436207515375 6 inst <- invokeStk1
+ 0 174829 4436207515381 5 inst -> pop
+ 0 174829 4436207515387 5 inst <- pop
+ 0 174829 4436207515393 5 inst -> push1
+ 0 174829 4436207515398 5 inst <- push1
+ 0 174829 4436207515404 5 inst -> push1
+ 0 174829 4436207515410 5 inst <- push1
+ 0 174829 4436207515415 5 inst -> push1
+ 0 174829 4436207515421 5 inst <- push1
+ 0 174829 4436207515427 5 inst -> invokeStk1
+ 0 174829 4436207515433 6 cmd -> global
+ 0 174829 4436207515440 7 cmd <- global
+ 0 174829 4436207515446 6 inst <- invokeStk1
+ 0 174829 4436207515452 5 inst -> pop
+ 0 174829 4436207515458 5 inst <- pop
+ 0 174829 4436207515463 5 inst -> push1
+ 0 174829 4436207515469 5 inst <- push1
+ 0 174829 4436207515475 5 inst -> push1
+ 0 174829 4436207515480 5 inst <- push1
+ 0 174829 4436207515486 5 inst -> push1
+ 0 174829 4436207515492 5 inst <- push1
+ 0 174829 4436207515497 5 inst -> invokeStk1
+ 0 174829 4436207515504 6 cmd -> rename
+ 0 174829 4436207515553 49 cmd <- rename
+ 0 174829 4436207515560 6 inst <- invokeStk1
+ 0 174829 4436207515566 6 inst -> pop
+ 0 174829 4436207515571 5 inst <- pop
+ 0 174829 4436207515577 5 inst -> push1
+ 0 174829 4436207515583 5 inst <- push1
+ 0 174829 4436207515589 5 inst -> storeScalar1
+ 0 174829 4436207515598 9 inst <- storeScalar1
+ 0 174829 4436207515605 6 inst -> push1
+ 0 174829 4436207515610 5 inst <- push1
+ 0 174829 4436207515616 5 inst -> storeScalar1
+ 0 174829 4436207515622 5 inst <- storeScalar1
+ 0 174829 4436207515628 5 inst -> push1
+ 0 174829 4436207515633 5 inst <- push1
+ 0 174829 4436207515639 5 inst -> push1
+ 0 174829 4436207515645 5 inst <- push1
+ 0 174829 4436207515650 5 inst -> push1
+ 0 174829 4436207515656 5 inst <- push1
+ 0 174829 4436207515662 5 inst -> invokeStk1
+ 0 174829 4436207515668 6 cmd -> info
+ 0 174829 4436207515679 10 cmd <- info
+ 0 174829 4436207515685 6 inst <- invokeStk1
+ 0 174829 4436207515691 5 inst -> tryCvtToNumeric
+ 0 174829 4436207515701 10 inst <- tryCvtToNumeric
+ 0 174829 4436207515708 6 inst -> jumpFalse1
+ 0 174829 4436207515714 5 inst <- jumpFalse1
+ 0 174829 4436207515719 5 inst -> push1
+ 0 174829 4436207515725 5 inst <- push1
+ 0 174829 4436207515731 5 inst -> push1
+ 0 174829 4436207515736 5 inst <- push1
+ 0 174829 4436207515742 5 inst -> push1
+ 0 174829 4436207515747 5 inst <- push1
+ 0 174829 4436207515753 5 inst -> invokeStk1
+ 0 174829 4436207515760 6 cmd -> info
+ 0 174829 4436207515787 27 cmd <- info
+ 0 174829 4436207515793 6 inst <- invokeStk1
+ 0 174829 4436207515799 5 inst -> tryCvtToNumeric
+ 0 174829 4436207515805 5 inst <- tryCvtToNumeric
+ 0 174829 4436207515811 5 inst -> jumpFalse1
+ 0 174829 4436207515817 5 inst <- jumpFalse1
+ 0 174829 4436207515823 5 inst -> push1
+ 0 174829 4436207515828 5 inst <- push1
+ 0 174829 4436207515834 5 inst -> pop
+ 0 174829 4436207515839 5 inst <- pop
+ 0 174829 4436207515845 5 inst -> beginCatch4
+ 0 174829 4436207515851 5 inst <- beginCatch4
+ 0 174829 4436207515857 5 inst -> loadScalar1
+ 0 174829 4436207515863 5 inst <- loadScalar1
+ 0 174829 4436207515868 5 inst -> lappendScalar1
+ 0 174829 4436207515877 8 inst <- lappendScalar1
+ 0 174829 4436207515883 6 inst -> push1
+ 0 174829 4436207515889 5 inst <- push1
+ 0 174829 4436207515895 5 inst -> push1
+ 0 174829 4436207515900 5 inst <- push1
+ 0 174829 4436207515906 5 inst -> invokeStk1
+ 0 174829 4436207515912 6 cmd -> unset
+ 0 174829 4436207515920 7 cmd <- unset
+ 0 174829 4436207515926 6 inst <- invokeStk1
+ 0 174829 4436207515932 5 inst -> pop
+ 0 174829 4436207515938 5 inst <- pop
+ 0 174829 4436207515943 5 inst -> push1
+ 0 174829 4436207515949 5 inst <- push1
+ 0 174829 4436207515955 5 inst -> jump1
+ 0 174829 4436207515960 5 inst <- jump1
+ 0 174829 4436207515966 5 inst -> endCatch
+ 0 174829 4436207515972 5 inst <- endCatch
+ 0 174829 4436207515977 5 inst -> pop
+ 0 174829 4436207515983 5 inst <- pop
+ 0 174829 4436207515989 5 inst -> push1
+ 0 174829 4436207515994 5 inst <- push1
+ 0 174829 4436207516000 5 inst -> loadScalar1
+ 0 174829 4436207516006 5 inst <- loadScalar1
+ 0 174829 4436207516012 5 inst -> loadScalar1
+ 0 174829 4436207516017 5 inst <- loadScalar1
+ 0 174829 4436207516023 5 inst -> invokeStk1
+ 0 174829 4436207516029 6 cmd -> concat
+ 0 174829 4436207516049 19 cmd <- concat
+ 0 174829 4436207516055 6 inst <- invokeStk1
+ 0 174829 4436207516061 5 inst -> storeScalar1
+ 0 174829 4436207516068 6 inst <- storeScalar1
+ 0 174829 4436207516074 6 inst -> loadScalar1
+ 0 174829 4436207516080 5 inst <- loadScalar1
+ 0 174829 4436207516085 5 inst -> storeScalar1
+ 0 174829 4436207516091 5 inst <- storeScalar1
+ 0 174829 4436207516097 5 inst -> foreach_start4
+ 0 174829 4436207516104 6 inst <- foreach_start4
+ 0 174829 4436207516110 6 inst -> foreach_step4
+ 0 174829 4436207516125 14 inst <- foreach_step4
+ 0 174829 4436207516131 5 inst -> loadScalar1
+ 0 174829 4436207516137 5 inst <- loadScalar1
+ 0 174829 4436207516143 5 inst -> storeScalar1
+ 0 174829 4436207516148 5 inst <- storeScalar1
+ 0 174829 4436207516154 5 inst -> push1
+ 0 174829 4436207516160 5 inst <- push1
+ 0 174829 4436207516165 5 inst -> push1
+ 0 174829 4436207516171 5 inst <- push1
+ 0 174829 4436207516177 5 inst -> loadScalar1
+ 0 174829 4436207516182 5 inst <- loadScalar1
+ 0 174829 4436207516188 5 inst -> push1
+ 0 174829 4436207516194 5 inst <- push1
+ 0 174829 4436207516200 5 inst -> invokeStk1
+ 0 174829 4436207516206 6 cmd -> file
+ 0 174829 4436207516218 12 cmd <- file
+ 0 174829 4436207516224 6 inst <- invokeStk1
+ 0 174829 4436207516230 5 inst -> storeScalar1
+ 0 174829 4436207516236 5 inst <- storeScalar1
+ 0 174829 4436207516242 5 inst -> push1
+ 0 174829 4436207516247 5 inst <- push1
+ 0 174829 4436207516253 5 inst -> push1
+ 0 174829 4436207516258 5 inst <- push1
+ 0 174829 4436207516264 5 inst -> loadScalar1
+ 0 174829 4436207516270 5 inst <- loadScalar1
+ 0 174829 4436207516276 5 inst -> invokeStk1
+ 0 174829 4436207516282 6 cmd -> file
+ 0 174829 4436207516368 86 cmd <- file
+ 0 174829 4436207516375 6 inst <- invokeStk1
+ 0 174829 4436207516381 6 inst -> tryCvtToNumeric
+ 0 174829 4436207516387 5 inst <- tryCvtToNumeric
+ 0 174829 4436207516393 5 inst -> jumpFalse1
+ 0 174829 4436207516398 5 inst <- jumpFalse1
+ 0 174829 4436207516404 5 inst -> push1
+ 0 174829 4436207516410 5 inst <- push1
+ 0 174829 4436207516416 5 inst -> pop
+ 0 174829 4436207516421 5 inst <- pop
+ 0 174829 4436207516427 5 inst -> jump1
+ 0 174829 4436207516432 5 inst <- jump1
+ 0 174829 4436207516438 5 inst -> foreach_step4
+ 0 174829 4436207516444 5 inst <- foreach_step4
+ 0 174829 4436207516450 5 inst -> loadScalar1
+ 0 174829 4436207516456 5 inst <- loadScalar1
+ 0 174829 4436207516462 6 inst -> storeScalar1
+ 0 174829 4436207516468 5 inst <- storeScalar1
+ 0 174829 4436207516473 5 inst -> push1
+ 0 174829 4436207516479 5 inst <- push1
+ 0 174829 4436207516485 5 inst -> push1
+ 0 174829 4436207516490 5 inst <- push1
+ 0 174829 4436207516496 5 inst -> loadScalar1
+ 0 174829 4436207516502 5 inst <- loadScalar1
+ 0 174829 4436207516508 5 inst -> push1
+ 0 174829 4436207516513 5 inst <- push1
+ 0 174829 4436207516519 5 inst -> invokeStk1
+ 0 174829 4436207516525 6 cmd -> file
+ 0 174829 4436207516536 10 cmd <- file
+ 0 174829 4436207516542 6 inst <- invokeStk1
+ 0 174829 4436207516548 5 inst -> storeScalar1
+ 0 174829 4436207516555 6 inst <- storeScalar1
+ 0 174829 4436207516561 6 inst -> push1
+ 0 174829 4436207516566 5 inst <- push1
+ 0 174829 4436207516572 5 inst -> push1
+ 0 174829 4436207516578 5 inst <- push1
+ 0 174829 4436207516583 5 inst -> loadScalar1
+ 0 174829 4436207516589 5 inst <- loadScalar1
+ 0 174829 4436207516595 5 inst -> invokeStk1
+ 0 174829 4436207516601 6 cmd -> file
+ 0 174829 4436207516709 107 cmd <- file
+ 0 174829 4436207516716 6 inst <- invokeStk1
+ 0 174829 4436207516722 6 inst -> tryCvtToNumeric
+ 0 174829 4436207516728 5 inst <- tryCvtToNumeric
+ 0 174829 4436207516733 5 inst -> jumpFalse1
+ 0 174829 4436207516739 5 inst <- jumpFalse1
+ 0 174829 4436207516745 5 inst -> push1
+ 0 174829 4436207516751 5 inst <- push1
+ 0 174829 4436207516756 5 inst -> pop
+ 0 174829 4436207516762 5 inst <- pop
+ 0 174829 4436207516768 5 inst -> jump1
+ 0 174829 4436207516773 5 inst <- jump1
+ 0 174829 4436207516779 5 inst -> foreach_step4
+ 0 174829 4436207516785 5 inst <- foreach_step4
+ 0 174829 4436207516791 5 inst -> loadScalar1
+ 0 174829 4436207516796 5 inst <- loadScalar1
+ 0 174829 4436207516802 5 inst -> storeScalar1
+ 0 174829 4436207516808 5 inst <- storeScalar1
+ 0 174829 4436207516814 5 inst -> push1
+ 0 174829 4436207516820 5 inst <- push1
+ 0 174829 4436207516825 5 inst -> push1
+ 0 174829 4436207516831 5 inst <- push1
+ 0 174829 4436207516837 5 inst -> loadScalar1
+ 0 174829 4436207516842 5 inst <- loadScalar1
+ 0 174829 4436207516848 5 inst -> push1
+ 0 174829 4436207516854 5 inst <- push1
+ 0 174829 4436207516859 5 inst -> invokeStk1
+ 0 174829 4436207516866 6 cmd -> file
+ 0 174829 4436207516876 10 cmd <- file
+ 0 174829 4436207516882 6 inst <- invokeStk1
+ 0 174829 4436207516888 5 inst -> storeScalar1
+ 0 174829 4436207516895 6 inst <- storeScalar1
+ 0 174829 4436207516901 6 inst -> push1
+ 0 174829 4436207516906 5 inst <- push1
+ 0 174829 4436207516912 5 inst -> push1
+ 0 174829 4436207516918 5 inst <- push1
+ 0 174829 4436207516923 5 inst -> loadScalar1
+ 0 174829 4436207516929 5 inst <- loadScalar1
+ 0 174829 4436207516935 5 inst -> invokeStk1
+ 0 174829 4436207516941 6 cmd -> file
+ 0 174829 4436207517027 86 cmd <- file
+ 0 174829 4436207517034 6 inst <- invokeStk1
+ 0 174829 4436207517040 6 inst -> tryCvtToNumeric
+ 0 174829 4436207517046 5 inst <- tryCvtToNumeric
+ 0 174829 4436207517052 5 inst -> jumpFalse1
+ 0 174829 4436207517057 5 inst <- jumpFalse1
+ 0 174829 4436207517063 5 inst -> push1
+ 0 174829 4436207517069 5 inst <- push1
+ 0 174829 4436207517075 5 inst -> pop
+ 0 174829 4436207517080 5 inst <- pop
+ 0 174829 4436207517086 5 inst -> jump1
+ 0 174829 4436207517091 5 inst <- jump1
+ 0 174829 4436207517097 5 inst -> foreach_step4
+ 0 174829 4436207517103 5 inst <- foreach_step4
+ 0 174829 4436207517109 5 inst -> loadScalar1
+ 0 174829 4436207517115 5 inst <- loadScalar1
+ 0 174829 4436207517121 5 inst -> storeScalar1
+ 0 174829 4436207517127 5 inst <- storeScalar1
+ 0 174829 4436207517132 5 inst -> push1
+ 0 174829 4436207517138 5 inst <- push1
+ 0 174829 4436207517144 5 inst -> push1
+ 0 174829 4436207517149 5 inst <- push1
+ 0 174829 4436207517155 5 inst -> loadScalar1
+ 0 174829 4436207517161 5 inst <- loadScalar1
+ 0 174829 4436207517167 5 inst -> push1
+ 0 174829 4436207517172 5 inst <- push1
+ 0 174829 4436207517178 5 inst -> invokeStk1
+ 0 174829 4436207517184 6 cmd -> file
+ 0 174829 4436207517194 10 cmd <- file
+ 0 174829 4436207517201 6 inst <- invokeStk1
+ 0 174829 4436207517206 5 inst -> storeScalar1
+ 0 174829 4436207517213 6 inst <- storeScalar1
+ 0 174829 4436207517219 5 inst -> push1
+ 0 174829 4436207517225 5 inst <- push1
+ 0 174829 4436207517231 5 inst -> push1
+ 0 174829 4436207517236 5 inst <- push1
+ 0 174829 4436207517242 5 inst -> loadScalar1
+ 0 174829 4436207517247 5 inst <- loadScalar1
+ 0 174829 4436207517253 5 inst -> invokeStk1
+ 0 174829 4436207517260 6 cmd -> file
+ 0 174829 4436207517313 53 cmd <- file
+ 0 174829 4436207517319 6 inst <- invokeStk1
+ 0 174829 4436207517325 5 inst -> tryCvtToNumeric
+ 0 174829 4436207517331 6 inst <- tryCvtToNumeric
+ 0 174829 4436207517337 5 inst -> jumpFalse1
+ 0 174829 4436207517343 5 inst <- jumpFalse1
+ 0 174829 4436207517348 5 inst -> beginCatch4
+ 0 174829 4436207517354 5 inst <- beginCatch4
+ 0 174829 4436207517360 6 inst -> push1
+ 0 174829 4436207517366 5 inst <- push1
+ 0 174829 4436207517371 5 inst -> push1
+ 0 174829 4436207517377 5 inst <- push1
+ 0 174829 4436207517383 5 inst -> push1
+ 0 174829 4436207517388 5 inst <- push1
+ 0 174829 4436207517394 5 inst -> loadScalar1
+ 0 174829 4436207517400 5 inst <- loadScalar1
+ 0 174829 4436207517405 5 inst -> list
+ 0 174829 4436207517412 6 inst <- list
+ 0 174829 4436207517418 5 inst -> invokeStk1
+ 0 174829 4436207517424 6 cmd -> uplevel
+ 0 174829 4436207517436 11 cmd -> source
+ 0 174829 4436207517878 441 cmd -> if
+ 0 174829 4436207517897 18 inst -> push1
+ 0 174829 4436207517903 6 inst <- push1
+ 0 174829 4436207517910 6 inst -> push1
+ 0 174829 4436207517915 5 inst <- push1
+ 0 174829 4436207517921 5 inst -> push1
+ 0 174829 4436207517927 5 inst <- push1
+ 0 174829 4436207517932 5 inst -> invokeStk1
+ 0 174829 4436207517939 6 cmd -> info
+ 0 174829 4436207517947 8 cmd <- info
+ 0 174829 4436207517954 6 inst <- invokeStk1
+ 0 174829 4436207517960 5 inst -> push1
+ 0 174829 4436207517965 5 inst <- push1
+ 0 174829 4436207517971 5 inst -> eq
+ 0 174829 4436207517979 7 inst <- eq
+ 0 174829 4436207517985 5 inst -> done
+ 0 174829 4436207517991 5 inst <- done
+ 0 174829 4436207517997 6 cmd <- if
+ 0 174829 4436207518010 12 cmd -> package
+ 0 174829 4436207518021 10 cmd <- package
+ 0 174829 4436207518034 13 cmd -> if
+ 0 174829 4436207518046 11 inst -> push1
+ 0 174829 4436207518051 5 inst <- push1
+ 0 174829 4436207518057 5 inst -> push1
+ 0 174829 4436207518063 5 inst <- push1
+ 0 174829 4436207518068 5 inst -> push1
+ 0 174829 4436207518074 5 inst <- push1
+ 0 174829 4436207518080 5 inst -> invokeStk1
+ 0 174829 4436207518086 6 cmd -> info
+ 0 174829 4436207518094 7 cmd <- info
+ 0 174829 4436207518099 5 inst <- invokeStk1
+ 0 174829 4436207518105 5 inst -> not
+ 0 174829 4436207518111 6 inst <- not
+ 0 174829 4436207518117 5 inst -> done
+ 0 174829 4436207518123 5 inst <- done
+ 0 174829 4436207518147 24 inst -> push1
+ 0 174829 4436207518153 5 inst <- push1
+ 0 174829 4436207518159 5 inst -> push1
+ 0 174829 4436207518164 5 inst <- push1
+ 0 174829 4436207518170 5 inst -> push1
+ 0 174829 4436207518175 5 inst <- push1
+ 0 174829 4436207518181 5 inst -> invokeStk1
+ 0 174829 4436207518187 6 cmd -> info
+ 0 174829 4436207518212 25 cmd <- info
+ 0 174829 4436207518218 6 inst <- invokeStk1
+ 0 174829 4436207518224 5 inst -> tryCvtToNumeric
+ 0 174829 4436207518230 5 inst <- tryCvtToNumeric
+ 0 174829 4436207518236 5 inst -> jumpFalse1
+ 0 174829 4436207518242 5 inst <- jumpFalse1
+ 0 174829 4436207518248 5 inst -> push1
+ 0 174829 4436207518253 5 inst <- push1
+ 0 174829 4436207518259 5 inst -> push1
+ 0 174829 4436207518264 5 inst <- push1
+ 0 174829 4436207518270 5 inst -> storeScalarStk
+ 0 174829 4436207518278 7 inst <- storeScalarStk
+ 0 174829 4436207518284 5 inst -> done
+ 0 174829 4436207518289 5 inst <- done
+ 0 174829 4436207518295 6 cmd <- if
+ 0 174829 4436207518315 19 cmd -> namespace
+ 0 174829 4436207518421 106 inst -> push1
+ 0 174829 4436207518428 6 inst <- push1
+ 0 174829 4436207518434 5 inst -> push1
+ 0 174829 4436207518440 5 inst <- push1
+ 0 174829 4436207518445 5 inst -> invokeStk1
+ 0 174829 4436207518452 6 cmd -> variable
+ 0 174829 4436207518460 8 cmd <- variable
+ 0 174829 4436207518466 6 inst <- invokeStk1
+ 0 174829 4436207518472 5 inst -> pop
+ 0 174829 4436207518477 5 inst <- pop
+ 0 174829 4436207518483 5 inst -> push1
+ 0 174829 4436207518489 5 inst <- push1
+ 0 174829 4436207518494 5 inst -> push1
+ 0 174829 4436207518500 5 inst <- push1
+ 0 174829 4436207518506 5 inst -> invokeStk1
+ 0 174829 4436207518513 7 cmd -> info
+ 0 174829 4436207518526 13 cmd <- info
+ 0 174829 4436207518532 6 inst <- invokeStk1
+ 0 174829 4436207518538 5 inst -> push1
+ 0 174829 4436207518544 5 inst <- push1
+ 0 174829 4436207518549 5 inst -> strneq
+ 0 174829 4436207518555 6 inst <- strneq
+ 0 174829 4436207518561 5 inst -> push1
+ 0 174829 4436207518567 5 inst <- push1
+ 0 174829 4436207518573 5 inst -> push1
+ 0 174829 4436207518578 5 inst <- push1
+ 0 174829 4436207518584 5 inst -> push1
+ 0 174829 4436207518589 5 inst <- push1
+ 0 174829 4436207518595 5 inst -> push1
+ 0 174829 4436207518600 5 inst <- push1
+ 0 174829 4436207518606 5 inst -> push1
+ 0 174829 4436207518612 5 inst <- push1
+ 0 174829 4436207518617 5 inst -> invokeStk1
+ 0 174829 4436207518624 6 cmd -> info
+ 0 174829 4436207518631 7 cmd <- info
+ 0 174829 4436207518637 6 inst <- invokeStk1
+ 0 174829 4436207518643 5 inst -> push1
+ 0 174829 4436207518648 5 inst <- push1
+ 0 174829 4436207518654 5 inst -> push1
+ 0 174829 4436207518660 5 inst <- push1
+ 0 174829 4436207518665 5 inst -> push1
+ 0 174829 4436207518671 5 inst <- push1
+ 0 174829 4436207518677 5 inst -> push1
+ 0 174829 4436207518682 5 inst <- push1
+ 0 174829 4436207518688 5 inst -> invokeStk1
+ 0 174829 4436207518694 6 cmd -> info
+ 0 174829 4436207518701 7 cmd <- info
+ 0 174829 4436207518707 6 inst <- invokeStk1
+ 0 174829 4436207518713 5 inst -> invokeStk1
+ 0 174829 4436207518720 7 cmd -> file
+ 0 174829 4436207518741 20 cmd <- file
+ 0 174829 4436207518748 6 inst <- invokeStk1
+ 0 174829 4436207518753 5 inst -> invokeStk1
+ 0 174829 4436207518760 6 cmd -> list
+ 0 174829 4436207518768 8 cmd <- list
+ 0 174829 4436207518774 6 inst <- invokeStk1
+ 0 174829 4436207518780 5 inst -> push1
+ 0 174829 4436207518786 5 inst <- push1
+ 0 174829 4436207518791 5 inst -> invokeStk1
+ 0 174829 4436207518798 6 cmd -> foreach
+ 0 174829 4436207518821 23 inst -> push1
+ 0 174829 4436207518827 6 inst <- push1
+ 0 174829 4436207518833 5 inst -> push1
+ 0 174829 4436207518839 5 inst <- push1
+ 0 174829 4436207518844 5 inst -> push1
+ 0 174829 4436207518850 5 inst <- push1
+ 0 174829 4436207518856 5 inst -> loadScalarStk
+ 0 174829 4436207518862 6 inst <- loadScalarStk
+ 0 174829 4436207518868 5 inst -> push1
+ 0 174829 4436207518874 5 inst <- push1
+ 0 174829 4436207518879 5 inst -> loadScalarStk
+ 0 174829 4436207518886 6 inst <- loadScalarStk
+ 0 174829 4436207518892 5 inst -> invokeStk1
+ 0 174829 4436207518898 6 cmd -> lsearch
+ 0 174829 4436207518906 8 cmd <- lsearch
+ 0 174829 4436207518913 6 inst <- invokeStk1
+ 0 174829 4436207518918 5 inst -> push1
+ 0 174829 4436207518924 5 inst <- push1
+ 0 174829 4436207518930 5 inst -> lt
+ 0 174829 4436207518936 6 inst <- lt
+ 0 174829 4436207518942 5 inst -> push1
+ 0 174829 4436207518947 5 inst <- push1
+ 0 174829 4436207518953 5 inst -> push1
+ 0 174829 4436207518958 5 inst <- push1
+ 0 174829 4436207518964 5 inst -> push1
+ 0 174829 4436207518969 5 inst <- push1
+ 0 174829 4436207518975 5 inst -> loadScalarStk
+ 0 174829 4436207518981 6 inst <- loadScalarStk
+ 0 174829 4436207518987 5 inst -> invokeStk1
+ 0 174829 4436207518993 6 cmd -> lappend
+ 0 174829 4436207519002 8 cmd <- lappend
+ 0 174829 4436207519008 6 inst <- invokeStk1
+ 0 174829 4436207519013 5 inst -> jump1
+ 0 174829 4436207519019 5 inst <- jump1
+ 0 174829 4436207519025 5 inst -> done
+ 0 174829 4436207519030 5 inst <- done
+ 0 174829 4436207519038 8 inst -> push1
+ 0 174829 4436207519044 5 inst <- push1
+ 0 174829 4436207519050 5 inst -> push1
+ 0 174829 4436207519055 5 inst <- push1
+ 0 174829 4436207519061 5 inst -> push1
+ 0 174829 4436207519066 5 inst <- push1
+ 0 174829 4436207519072 5 inst -> loadScalarStk
+ 0 174829 4436207519078 5 inst <- loadScalarStk
+ 0 174829 4436207519084 5 inst -> push1
+ 0 174829 4436207519090 5 inst <- push1
+ 0 174829 4436207519095 5 inst -> loadScalarStk
+ 0 174829 4436207519102 6 inst <- loadScalarStk
+ 0 174829 4436207519108 5 inst -> invokeStk1
+ 0 174829 4436207519114 6 cmd -> lsearch
+ 0 174829 4436207519120 6 cmd <- lsearch
+ 0 174829 4436207519126 5 inst <- invokeStk1
+ 0 174829 4436207519132 5 inst -> push1
+ 0 174829 4436207519138 5 inst <- push1
+ 0 174829 4436207519143 5 inst -> lt
+ 0 174829 4436207519149 5 inst <- lt
+ 0 174829 4436207519155 5 inst -> push1
+ 0 174829 4436207519160 5 inst <- push1
+ 0 174829 4436207519166 5 inst -> push1
+ 0 174829 4436207519171 5 inst <- push1
+ 0 174829 4436207519177 5 inst -> push1
+ 0 174829 4436207519182 5 inst <- push1
+ 0 174829 4436207519188 5 inst -> loadScalarStk
+ 0 174829 4436207519194 5 inst <- loadScalarStk
+ 0 174829 4436207519200 5 inst -> invokeStk1
+ 0 174829 4436207519206 6 cmd -> lappend
+ 0 174829 4436207519213 7 cmd <- lappend
+ 0 174829 4436207519219 6 inst <- invokeStk1
+ 0 174829 4436207519225 5 inst -> jump1
+ 0 174829 4436207519231 5 inst <- jump1
+ 0 174829 4436207519236 5 inst -> done
+ 0 174829 4436207519242 5 inst <- done
+ 0 174829 4436207519248 6 cmd <- foreach
+ 0 174829 4436207519255 6 inst <- invokeStk1
+ 0 174829 4436207519260 5 inst -> jump1
+ 0 174829 4436207519266 5 inst <- jump1
+ 0 174829 4436207519272 5 inst -> pop
+ 0 174829 4436207519277 5 inst <- pop
+ 0 174829 4436207519283 5 inst -> push1
+ 0 174829 4436207519288 5 inst <- push1
+ 0 174829 4436207519294 5 inst -> push1
+ 0 174829 4436207519300 5 inst <- push1
+ 0 174829 4436207519305 5 inst -> push1
+ 0 174829 4436207519311 5 inst <- push1
+ 0 174829 4436207519316 5 inst -> push1
+ 0 174829 4436207519322 5 inst <- push1
+ 0 174829 4436207519328 5 inst -> push1
+ 0 174829 4436207519333 5 inst <- push1
+ 0 174829 4436207519339 5 inst -> push1
+ 0 174829 4436207519344 5 inst <- push1
+ 0 174829 4436207519350 5 inst -> push1
+ 0 174829 4436207519356 5 inst <- push1
+ 0 174829 4436207519362 5 inst -> push1
+ 0 174829 4436207519367 5 inst <- push1
+ 0 174829 4436207519373 5 inst -> push1
+ 0 174829 4436207519378 5 inst <- push1
+ 0 174829 4436207519384 5 inst -> invokeStk1
+ 0 174829 4436207519390 6 cmd -> info
+ 0 174829 4436207519399 8 cmd <- info
+ 0 174829 4436207519405 5 inst <- invokeStk1
+ 0 174829 4436207519411 5 inst -> invokeStk1
+ 0 174829 4436207519417 6 cmd -> file
+ 0 174829 4436207519435 18 cmd <- file
+ 0 174829 4436207519442 6 inst <- invokeStk1
+ 0 174829 4436207519448 5 inst -> invokeStk1
+ 0 174829 4436207519454 6 cmd -> file
+ 0 174829 4436207519471 17 cmd <- file
+ 0 174829 4436207519478 6 inst <- invokeStk1
+ 0 174829 4436207519484 5 inst -> push1
+ 0 174829 4436207519490 5 inst <- push1
+ 0 174829 4436207519495 5 inst -> invokeStk1
+ 0 174829 4436207519502 6 cmd -> file
+ 0 174829 4436207519512 9 cmd <- file
+ 0 174829 4436207519518 6 inst <- invokeStk1
+ 0 174829 4436207519524 5 inst -> storeScalarStk
+ 0 174829 4436207519530 6 inst <- storeScalarStk
+ 0 174829 4436207519536 6 inst -> push1
+ 0 174829 4436207519542 5 inst <- push1
+ 0 174829 4436207519547 5 inst -> push1
+ 0 174829 4436207519553 5 inst <- push1
+ 0 174829 4436207519559 5 inst -> push1
+ 0 174829 4436207519564 5 inst <- push1
+ 0 174829 4436207519570 5 inst -> loadScalarStk
+ 0 174829 4436207519576 6 inst <- loadScalarStk
+ 0 174829 4436207519582 5 inst -> push1
+ 0 174829 4436207519587 5 inst <- push1
+ 0 174829 4436207519593 5 inst -> loadScalarStk
+ 0 174829 4436207519599 5 inst <- loadScalarStk
+ 0 174829 4436207519605 5 inst -> invokeStk1
+ 0 174829 4436207519611 6 cmd -> lsearch
+ 0 174829 4436207519617 6 cmd <- lsearch
+ 0 174829 4436207519623 6 inst <- invokeStk1
+ 0 174829 4436207519629 5 inst -> push1
+ 0 174829 4436207519635 5 inst <- push1
+ 0 174829 4436207519640 5 inst -> lt
+ 0 174829 4436207519646 5 inst <- lt
+ 0 174829 4436207519652 5 inst -> push1
+ 0 174829 4436207519657 5 inst <- push1
+ 0 174829 4436207519663 5 inst -> push1
+ 0 174829 4436207519668 5 inst <- push1
+ 0 174829 4436207519674 5 inst -> push1
+ 0 174829 4436207519679 5 inst <- push1
+ 0 174829 4436207519685 5 inst -> loadScalarStk
+ 0 174829 4436207519691 5 inst <- loadScalarStk
+ 0 174829 4436207519697 5 inst -> invokeStk1
+ 0 174829 4436207519703 6 cmd -> lappend
+ 0 174829 4436207519710 6 cmd <- lappend
+ 0 174829 4436207519716 6 inst <- invokeStk1
+ 0 174829 4436207519722 5 inst -> jump1
+ 0 174829 4436207519727 5 inst <- jump1
+ 0 174829 4436207519733 5 inst -> pop
+ 0 174829 4436207519739 5 inst <- pop
+ 0 174829 4436207519744 5 inst -> push1
+ 0 174829 4436207519750 5 inst <- push1
+ 0 174829 4436207519756 5 inst -> push1
+ 0 174829 4436207519761 5 inst <- push1
+ 0 174829 4436207519767 5 inst -> push1
+ 0 174829 4436207519772 5 inst <- push1
+ 0 174829 4436207519778 5 inst -> invokeStk1
+ 0 174829 4436207519784 6 cmd -> info
+ 0 174829 4436207519791 6 cmd <- info
+ 0 174829 4436207519797 6 inst <- invokeStk1
+ 0 174829 4436207519803 5 inst -> tryCvtToNumeric
+ 0 174829 4436207519809 5 inst <- tryCvtToNumeric
+ 0 174829 4436207519815 5 inst -> jumpFalse1
+ 0 174829 4436207519820 5 inst <- jumpFalse1
+ 0 174829 4436207519826 5 inst -> push1
+ 0 174829 4436207519832 5 inst <- push1
+ 0 174829 4436207519837 5 inst -> push1
+ 0 174829 4436207519843 5 inst <- push1
+ 0 174829 4436207519849 5 inst -> push1
+ 0 174829 4436207519854 5 inst <- push1
+ 0 174829 4436207519860 5 inst -> loadScalarStk
+ 0 174829 4436207519866 6 inst <- loadScalarStk
+ 0 174829 4436207519872 5 inst -> push1
+ 0 174829 4436207519877 5 inst <- push1
+ 0 174829 4436207519883 5 inst -> invokeStk1
+ 0 174829 4436207519889 6 cmd -> foreach
+ 0 174829 4436207519899 9 inst -> push1
+ 0 174829 4436207519904 5 inst <- push1
+ 0 174829 4436207519910 5 inst -> push1
+ 0 174829 4436207519915 5 inst <- push1
+ 0 174829 4436207519921 5 inst -> push1
+ 0 174829 4436207519927 5 inst <- push1
+ 0 174829 4436207519932 5 inst -> loadScalarStk
+ 0 174829 4436207519938 6 inst <- loadScalarStk
+ 0 174829 4436207519944 5 inst -> push1
+ 0 174829 4436207519950 5 inst <- push1
+ 0 174829 4436207519955 5 inst -> loadScalarStk
+ 0 174829 4436207519962 6 inst <- loadScalarStk
+ 0 174829 4436207519968 5 inst -> invokeStk1
+ 0 174829 4436207519974 6 cmd -> lsearch
+ 0 174829 4436207519980 6 cmd <- lsearch
+ 0 174829 4436207519986 6 inst <- invokeStk1
+ 0 174829 4436207519992 5 inst -> push1
+ 0 174829 4436207519998 5 inst <- push1
+ 0 174829 4436207520003 5 inst -> lt
+ 0 174829 4436207520009 5 inst <- lt
+ 0 174829 4436207520015 5 inst -> push1
+ 0 174829 4436207520020 5 inst <- push1
+ 0 174829 4436207520026 5 inst -> push1
+ 0 174829 4436207520031 5 inst <- push1
+ 0 174829 4436207520037 5 inst -> push1
+ 0 174829 4436207520043 5 inst <- push1
+ 0 174829 4436207520048 5 inst -> loadScalarStk
+ 0 174829 4436207520054 5 inst <- loadScalarStk
+ 0 174829 4436207520060 5 inst -> invokeStk1
+ 0 174829 4436207520066 6 cmd -> lappend
+ 0 174829 4436207520073 6 cmd <- lappend
+ 0 174829 4436207520079 5 inst <- invokeStk1
+ 0 174829 4436207520085 5 inst -> jump1
+ 0 174829 4436207520090 5 inst <- jump1
+ 0 174829 4436207520096 5 inst -> done
+ 0 174829 4436207520102 5 inst <- done
+ 0 174829 4436207520108 6 cmd <- foreach
+ 0 174829 4436207520114 5 inst <- invokeStk1
+ 0 174829 4436207520119 5 inst -> jump1
+ 0 174829 4436207520125 5 inst <- jump1
+ 0 174829 4436207520131 5 inst -> done
+ 0 174829 4436207520136 5 inst <- done
+ 0 174829 4436207520143 6 cmd <- namespace
+ 0 174829 4436207520171 28 cmd -> if
+ 0 174829 4436207520192 20 inst -> push1
+ 0 174829 4436207520198 6 inst <- push1
+ 0 174829 4436207520203 5 inst -> push1
+ 0 174829 4436207520209 5 inst <- push1
+ 0 174829 4436207520215 5 inst -> invokeStk1
+ 0 174829 4436207520221 6 cmd -> interp
+ 0 174829 4436207520230 9 cmd <- interp
+ 0 174829 4436207520236 5 inst <- invokeStk1
+ 0 174829 4436207520242 5 inst -> not
+ 0 174829 4436207520247 5 inst <- not
+ 0 174829 4436207520253 5 inst -> jumpTrue1
+ 0 174829 4436207520259 5 inst <- jumpTrue1
+ 0 174829 4436207520265 5 inst -> push1
+ 0 174829 4436207520270 5 inst <- push1
+ 0 174829 4436207520276 5 inst -> dup
+ 0 174829 4436207520281 5 inst <- dup
+ 0 174829 4436207520287 5 inst -> jumpFalse1
+ 0 174829 4436207520293 5 inst <- jumpFalse1
+ 0 174829 4436207520298 5 inst -> push1
+ 0 174829 4436207520304 5 inst <- push1
+ 0 174829 4436207520310 5 inst -> push1
+ 0 174829 4436207520315 5 inst <- push1
+ 0 174829 4436207520321 5 inst -> loadArrayStk
+ 0 174829 4436207520328 6 inst <- loadArrayStk
+ 0 174829 4436207520334 5 inst -> push1
+ 0 174829 4436207520339 5 inst <- push1
+ 0 174829 4436207520345 5 inst -> streq
+ 0 174829 4436207520351 5 inst <- streq
+ 0 174829 4436207520357 5 inst -> land
+ 0 174829 4436207520363 6 inst <- land
+ 0 174829 4436207520368 5 inst -> done
+ 0 174829 4436207520374 5 inst <- done
+ 0 174829 4436207520381 6 cmd <- if
+ 0 174829 4436207520394 13 cmd -> package
+ 0 174829 4436207520401 6 cmd <- package
+ 0 174829 4436207520413 11 cmd -> if
+ 0 174829 4436207520424 11 inst -> push1
+ 0 174829 4436207520429 5 inst <- push1
+ 0 174829 4436207520435 5 inst -> push1
+ 0 174829 4436207520441 5 inst <- push1
+ 0 174829 4436207520446 5 inst -> invokeStk1
+ 0 174829 4436207520453 6 cmd -> interp
+ 0 174829 4436207520459 6 cmd <- interp
+ 0 174829 4436207520465 5 inst <- invokeStk1
+ 0 174829 4436207520471 5 inst -> not
+ 0 174829 4436207520476 5 inst <- not
+ 0 174829 4436207520482 5 inst -> done
+ 0 174829 4436207520488 5 inst <- done
+ 0 174829 4436207520527 39 inst -> push1
+ 0 174829 4436207520533 5 inst <- push1
+ 0 174829 4436207520539 5 inst -> push1
+ 0 174829 4436207520544 5 inst <- push1
+ 0 174829 4436207520550 5 inst -> loadArrayStk
+ 0 174829 4436207520557 6 inst <- loadArrayStk
+ 0 174829 4436207520563 5 inst -> push1
+ 0 174829 4436207520568 5 inst <- push1
+ 0 174829 4436207520574 5 inst -> streq
+ 0 174829 4436207520580 5 inst <- streq
+ 0 174829 4436207520586 5 inst -> push1
+ 0 174829 4436207520591 5 inst <- push1
+ 0 174829 4436207520597 5 inst -> dup
+ 0 174829 4436207520602 5 inst <- dup
+ 0 174829 4436207520608 5 inst -> jumpFalse1
+ 0 174829 4436207520614 5 inst <- jumpFalse1
+ 0 174829 4436207520619 5 inst -> push1
+ 0 174829 4436207520625 5 inst <- push1
+ 0 174829 4436207520631 5 inst -> push1
+ 0 174829 4436207520636 5 inst <- push1
+ 0 174829 4436207520642 5 inst -> loadArrayStk
+ 0 174829 4436207520648 6 inst <- loadArrayStk
+ 0 174829 4436207520654 5 inst -> push1
+ 0 174829 4436207520660 5 inst <- push1
+ 0 174829 4436207520665 5 inst -> streq
+ 0 174829 4436207520671 5 inst <- streq
+ 0 174829 4436207520677 5 inst -> land
+ 0 174829 4436207520682 5 inst <- land
+ 0 174829 4436207520688 5 inst -> jumpFalse1
+ 0 174829 4436207520694 5 inst <- jumpFalse1
+ 0 174829 4436207520700 5 inst -> push1
+ 0 174829 4436207520705 5 inst <- push1
+ 0 174829 4436207520711 5 inst -> pop
+ 0 174829 4436207520716 5 inst <- pop
+ 0 174829 4436207520722 5 inst -> push1
+ 0 174829 4436207520728 5 inst <- push1
+ 0 174829 4436207520733 5 inst -> push1
+ 0 174829 4436207520739 5 inst <- push1
+ 0 174829 4436207520744 5 inst -> loadArrayStk
+ 0 174829 4436207520751 6 inst <- loadArrayStk
+ 0 174829 4436207520757 5 inst -> push1
+ 0 174829 4436207520762 5 inst <- push1
+ 0 174829 4436207520768 5 inst -> streq
+ 0 174829 4436207520773 5 inst <- streq
+ 0 174829 4436207520779 5 inst -> push1
+ 0 174829 4436207520785 5 inst <- push1
+ 0 174829 4436207520791 5 inst -> done
+ 0 174829 4436207520796 5 inst <- done
+ 0 174829 4436207520802 6 cmd <- if
+ 0 174829 4436207520822 19 cmd -> if
+ 0 174829 4436207520835 13 inst -> push1
+ 0 174829 4436207520841 5 inst <- push1
+ 0 174829 4436207520847 5 inst -> push1
+ 0 174829 4436207520852 5 inst <- push1
+ 0 174829 4436207520858 5 inst -> push1
+ 0 174829 4436207520864 5 inst <- push1
+ 0 174829 4436207520869 5 inst -> push1
+ 0 174829 4436207520875 5 inst <- push1
+ 0 174829 4436207520881 5 inst -> invokeStk1
+ 0 174829 4436207520887 6 cmd -> namespace
+ 0 174829 4436207520896 8 cmd <- namespace
+ 0 174829 4436207520902 6 inst <- invokeStk1
+ 0 174829 4436207520908 5 inst -> push1
+ 0 174829 4436207520913 5 inst <- push1
+ 0 174829 4436207520919 5 inst -> streq
+ 0 174829 4436207520925 6 inst <- streq
+ 0 174829 4436207520931 5 inst -> done
+ 0 174829 4436207520936 5 inst <- done
+ 0 174829 4436207520942 6 cmd <- if
+ 0 174829 4436207521503 560 cmd -> set
+ 0 174829 4436207521515 11 cmd <- set
+ 0 174829 4436207521524 9 cmd -> set
+ 0 174829 4436207521531 6 cmd <- set
+ 0 174829 4436207521541 10 cmd -> if
+ 0 174829 4436207521559 17 inst -> push1
+ 0 174829 4436207521566 7 inst <- push1
+ 0 174829 4436207521573 6 inst -> push1
+ 0 174829 4436207521578 5 inst <- push1
+ 0 174829 4436207521584 5 inst -> push1
+ 0 174829 4436207521590 5 inst <- push1
+ 0 174829 4436207521596 5 inst -> push1
+ 0 174829 4436207521601 5 inst <- push1
+ 0 174829 4436207521607 5 inst -> invokeStk1
+ 0 174829 4436207521613 6 cmd -> namespace
+ 0 174829 4436207521621 7 cmd <- namespace
+ 0 174829 4436207521627 6 inst <- invokeStk1
+ 0 174829 4436207521633 5 inst -> push1
+ 0 174829 4436207521639 5 inst <- push1
+ 0 174829 4436207521644 5 inst -> streq
+ 0 174829 4436207521650 5 inst <- streq
+ 0 174829 4436207521656 5 inst -> done
+ 0 174829 4436207521662 5 inst <- done
+ 0 174829 4436207521674 11 inst -> push1
+ 0 174829 4436207521679 5 inst <- push1
+ 0 174829 4436207521685 5 inst -> push1
+ 0 174829 4436207521691 5 inst <- push1
+ 0 174829 4436207521697 5 inst -> push1
+ 0 174829 4436207521702 5 inst <- push1
+ 0 174829 4436207521708 5 inst -> push1
+ 0 174829 4436207521714 5 inst <- push1
+ 0 174829 4436207521720 5 inst -> invokeStk1
+ 0 174829 4436207521726 6 cmd -> proc
+ 0 174829 4436207521738 12 cmd <- proc
+ 0 174829 4436207521744 6 inst <- invokeStk1
+ 0 174829 4436207521750 5 inst -> done
+ 0 174829 4436207521756 5 inst <- done
+ 0 174829 4436207521762 6 cmd <- if
+ 0 174829 4436207521862 99 cmd -> proc
+ 0 174829 4436207521872 10 cmd <- proc
+ 0 174829 4436207521891 19 cmd -> proc
+ 0 174829 4436207521902 10 cmd <- proc
+ 0 174829 4436207521932 30 cmd -> proc
+ 0 174829 4436207521941 8 cmd <- proc
+ 0 174829 4436207521961 19 cmd -> proc
+ 0 174829 4436207521970 9 cmd <- proc
+ 0 174829 4436207521985 14 cmd -> proc
+ 0 174829 4436207521994 8 cmd <- proc
+ 0 174829 4436207522039 45 cmd -> if
+ 0 174829 4436207522053 14 inst -> push1
+ 0 174829 4436207522059 5 inst <- push1
+ 0 174829 4436207522065 6 inst -> push1
+ 0 174829 4436207522070 5 inst <- push1
+ 0 174829 4436207522076 5 inst -> loadArrayStk
+ 0 174829 4436207522083 7 inst <- loadArrayStk
+ 0 174829 4436207522089 5 inst -> push1
+ 0 174829 4436207522094 5 inst <- push1
+ 0 174829 4436207522100 5 inst -> streq
+ 0 174829 4436207522106 5 inst <- streq
+ 0 174829 4436207522112 5 inst -> done
+ 0 174829 4436207522117 5 inst <- done
+ 0 174829 4436207522134 16 inst -> push1
+ 0 174829 4436207522140 5 inst <- push1
+ 0 174829 4436207522146 5 inst -> push1
+ 0 174829 4436207522151 5 inst <- push1
+ 0 174829 4436207522157 5 inst -> push1
+ 0 174829 4436207522163 5 inst <- push1
+ 0 174829 4436207522168 5 inst -> push1
+ 0 174829 4436207522174 5 inst <- push1
+ 0 174829 4436207522180 5 inst -> invokeStk1
+ 0 174829 4436207522186 6 cmd -> proc
+ 0 174829 4436207522205 19 cmd <- proc
+ 0 174829 4436207522212 6 inst <- invokeStk1
+ 0 174829 4436207522218 5 inst -> done
+ 0 174829 4436207522223 5 inst <- done
+ 0 174829 4436207522230 6 cmd <- if
+ 0 174829 4436207522274 44 cmd -> proc
+ 0 174829 4436207522286 11 cmd <- proc
+ 0 174829 4436207522294 8 cmd <- source
+ 0 174829 4436207522301 6 cmd <- uplevel
+ 0 174829 4436207522307 6 inst <- invokeStk1
+ 0 174829 4436207522313 6 inst -> storeScalar1
+ 0 174829 4436207522319 5 inst <- storeScalar1
+ 0 174829 4436207522325 5 inst -> push1
+ 0 174829 4436207522331 5 inst <- push1
+ 0 174829 4436207522337 5 inst -> jump1
+ 0 174829 4436207522342 5 inst <- jump1
+ 0 174829 4436207522348 5 inst -> endCatch
+ 0 174829 4436207522354 5 inst <- endCatch
+ 0 174829 4436207522360 5 inst -> not
+ 0 174829 4436207522366 5 inst <- not
+ 0 174829 4436207522371 5 inst -> jumpFalse1
+ 0 174829 4436207522377 5 inst <- jumpFalse1
+ 0 174829 4436207522383 5 inst -> push1
+ 0 174829 4436207522389 5 inst <- push1
+ 0 174829 4436207522394 5 inst -> done
+ 0 174829 4436207522400 5 inst <- done
+ 0 174829 4436207522409 8 proc <- tclInit
+ 0 174829 4436207522426 17 cmd <- tclInit
+ 0 174829 4436207522671 245 cmd -> proc
+ 0 174829 4436207522681 9 cmd <- proc
+ 0 174829 4436207522691 9 cmd -> proc
+ 0 174829 4436207522698 7 cmd <- proc
+ 0 174829 4436207522708 9 cmd -> proc
+ 0 174829 4436207522715 7 cmd <- proc
+ 0 174829 4436207522723 8 cmd -> func_a
+ 0 174829 4436207522742 18 proc -> func_a
+ 0 174829 4436207522752 10 inst -> push1
+ 0 174829 4436207522757 5 inst <- push1
+ 0 174829 4436207522763 5 inst -> push1
+ 0 174829 4436207522769 5 inst <- push1
+ 0 174829 4436207522775 5 inst -> invokeStk1
+ 0 174829 4436207522781 6 cmd -> puts
+ 0 174829 4436207523212 430 cmd <- puts
+ 0 174829 4436207523266 54 inst <- invokeStk1
+ 0 174829 4436207523275 8 inst -> pop
+ 0 174829 4436207523281 6 inst <- pop
+ 0 174829 4436207523287 5 inst -> push1
+ 0 174829 4436207523292 5 inst <- push1
+ 0 174829 4436207523298 5 inst -> push1
+ 0 174829 4436207523304 5 inst <- push1
+ 0 174829 4436207523310 5 inst -> invokeStk1
+ 0 174829 4436207523318 7 cmd -> after
+ 0 174829 4436208530951 1007632 cmd <- after
+ 0 174829 4436208530972 21 inst <- invokeStk1
+ 0 174829 4436208530984 12 inst -> pop
+ 0 174829 4436208530993 9 inst <- pop
+ 0 174829 4436208530999 5 inst -> push1
+ 0 174829 4436208531005 5 inst <- push1
+ 0 174829 4436208531010 5 inst -> invokeStk1
+ 0 174829 4436208531021 10 cmd -> func_b
+ 0 174829 4436208531057 35 proc -> func_b
+ 0 174829 4436208531067 10 inst -> push1
+ 0 174829 4436208531073 5 inst <- push1
+ 0 174829 4436208531079 5 inst -> push1
+ 0 174829 4436208531084 5 inst <- push1
+ 0 174829 4436208531090 5 inst -> invokeStk1
+ 0 174829 4436208531096 6 cmd -> puts
+ 0 174829 4436208531137 40 cmd <- puts
+ 0 174829 4436208531144 6 inst <- invokeStk1
+ 0 174829 4436208531150 5 inst -> pop
+ 0 174829 4436208531155 5 inst <- pop
+ 0 174829 4436208531161 5 inst -> push1
+ 0 174829 4436208531166 5 inst <- push1
+ 0 174829 4436208531172 5 inst -> push1
+ 0 174829 4436208531178 5 inst <- push1
+ 0 174829 4436208531184 5 inst -> invokeStk1
+ 0 174829 4436208531190 6 cmd -> after
+ 0 174829 4436209540924 1009734 cmd <- after
+ 0 174829 4436209540946 21 inst <- invokeStk1
+ 0 174829 4436209540957 11 inst -> pop
+ 0 174829 4436209540967 9 inst <- pop
+ 0 174829 4436209540973 5 inst -> push1
+ 0 174829 4436209540978 5 inst <- push1
+ 0 174829 4436209540984 5 inst -> invokeStk1
+ 0 174829 4436209540995 10 cmd -> func_c
+ 0 174829 4436209541029 34 proc -> func_c
+ 0 174829 4436209541039 10 inst -> push1
+ 0 174829 4436209541045 5 inst <- push1
+ 0 174829 4436209541051 5 inst -> push1
+ 0 174829 4436209541056 5 inst <- push1
+ 0 174829 4436209541062 5 inst -> invokeStk1
+ 0 174829 4436209541068 6 cmd -> puts
+ 0 174829 4436209541111 42 cmd <- puts
+ 0 174829 4436209541118 7 inst <- invokeStk1
+ 0 174829 4436209541124 5 inst -> pop
+ 0 174829 4436209541129 5 inst <- pop
+ 0 174829 4436209541135 5 inst -> push1
+ 0 174829 4436209541141 5 inst <- push1
+ 0 174829 4436209541147 5 inst -> push1
+ 0 174829 4436209541153 5 inst <- push1
+ 0 174829 4436209541158 5 inst -> invokeStk1
+ 0 174829 4436209541165 6 cmd -> after
+ 0 174829 4436210550785 1009619 cmd <- after
+ 0 174829 4436210550807 22 inst <- invokeStk1
+ 0 174829 4436210550819 11 inst -> done
+ 0 174829 4436210550830 10 inst <- done
+ 0 174829 4436210550839 9 proc <- func_c
+ 0 174829 4436210550850 11 cmd <- func_c
+ 0 174829 4436210550856 6 inst <- invokeStk1
+ 0 174829 4436210550862 5 inst -> done
+ 0 174829 4436210550868 5 inst <- done
+ 0 174829 4436210550874 6 proc <- func_b
+ 0 174829 4436210550880 6 cmd <- func_b
+ 0 174829 4436210550887 6 inst <- invokeStk1
+ 0 174829 4436210550892 5 inst -> done
+ 0 174829 4436210550898 5 inst <- done
+ 0 174829 4436210550904 6 proc <- func_a
+ 0 174829 4436210550911 6 cmd <- func_a
+ 0 174829 4436210550938 27 cmd -> exit
+
+As you can see the output is quite long, and in seven columns. The first
+column is the CPU the action is on. The second is the PID. The third is the
+time since boot in microseconds.
+
+The fourth column is the number of microseconds that has elapsed between the
+previous line and the current one.
+
+The fifth column is the type of event that occurred (procedure, command or
+instruction).
+
+The sixth and seventh columns are indented by 2 spaces to show when a new
+event occurs. This shows us which command is calling which.
+
+If the output looks strange, check the CPU "C" column - if it changes,
+then the output is probably shuffled. See Notes/ALLsnoop_notes.txt for
+details and suggested workarounds.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt
new file mode 100644
index 000000000000..ed6820dddfb7
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt
@@ -0,0 +1,17 @@
+Following are examples of running tcl_proccalls.d.
+
+The output shows what happens when the code from Code/Tcl/func_abc.tcl is
+traced.
+
+# tcl_proccalls.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID COUNT PROCEDURE
+ 16078 1 func_a
+ 16078 1 func_b
+ 16078 1 func_c
+ 16078 1 tclInit
+
+This simple output shows that PID 16078 was responsible for four procedures
+beginning, one each of func_a, func_b, func_c, and tclInit.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt
new file mode 100644
index 000000000000..93b822ec3eb6
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt
@@ -0,0 +1,29 @@
+The following are examples of tcl_procflow.d.
+
+This is a simple script to trace the flow of Tcl procedures.
+
+Here it traces the example program, Code/Tcl/func_abc.tcl.
+
+# tcl_procflow.d
+ C PID TIME(us) -- PROCEDURE
+ 0 16073 3904971507502 -> tclInit
+ 0 16073 3904971509096 <- tclInit
+ 0 16073 3904971509305 -> func_a
+ 0 16073 3904972511039 -> func_b
+ 0 16073 3904973521023 -> func_c
+ 0 16073 3904974530998 <- func_c
+ 0 16073 3904974531008 <- func_b
+ 0 16073 3904974531014 <- func_a
+^C
+
+As each procedure starts, the third column is indented by 2 spaces. This
+shows which procedure is calling which - the output above begins with an init
+procedure and then shows that func_a began, and then called func_b.
+
+The columns are CPU, PID, Time since boot, indicator and procedure name.
+
+If the output looks shuffled, check the CPU "C" and "TIME" columns, and
+post sort based on TIME if necessary.
+
+See Notes/ALLflow_notes.txt for important notes about reading flow outputs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt
new file mode 100644
index 000000000000..178fef10b197
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt
@@ -0,0 +1,24 @@
+Following are examples of running tcl_stat.d on Tcl programs.
+
+tcl_stat.d shows you the number of events per second that have happened since
+the last line output. The default interval is 1 second, but you can specify
+other intervals as arguments to the script.
+
+This shows the sh_stat.d script reflecting the Code/Tcl/func_abc.tcl program.
+
+# tcl_stat.d
+TIME EXEC/s PROC/s CMD/s OBJNEW/s OBJFRE/s OP/s
+2007 Sep 26 23:34:36 0 0 0 0 0 0
+2007 Sep 26 23:34:37 1 2 75 911 805 377
+2007 Sep 26 23:34:38 0 1 3 4 2 10
+2007 Sep 26 23:34:39 0 1 3 3 2 10
+2007 Sep 26 23:34:40 0 0 1 7 8 3
+2007 Sep 26 23:34:41 0 0 0 0 0 0
+2007 Sep 26 23:34:42 0 0 0 0 0 0
+^C
+
+ At 2007 Sep 26 23:34:37 we can see that there was one Tcl program executed
+(this number may include those programs without Tcl provider support), two
+procedures called, 75 new commands created, 911 objects created, 805 objects
+freed, and 377 bytecode operations.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt
new file mode 100644
index 000000000000..5553b1c6a8c4
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt
@@ -0,0 +1,66 @@
+The following are examples of sh_syscalls.d.
+
+This is a simple script to count Tcl commands, procedures and system calls.
+
+Here we trace an example program - Code/Tcl/func_abc.tcl.
+
+# tcl_syscalls.d -c './tclsh func_abc.tcl '
+Tracing... Hit Ctrl-C to end.
+Function A
+Function B
+Function C
+ PID TYPE NAME COUNT
+ 16580 cmd concat 1
+ 16580 cmd exit 1
+ 16580 cmd func_a 1
+ 16580 cmd func_b 1
+ 16580 cmd func_c 1
+ 16580 cmd list 1
+ 16580 cmd rename 1
+ 16580 cmd source 1
+ 16580 cmd tclInit 1
+ 16580 cmd unset 1
+ 16580 cmd uplevel 1
+ 16580 cmd variable 1
+ 16580 proc func_a 1
+ 16580 proc func_b 1
+ 16580 proc func_c 1
+ 16580 proc tclInit 1
+ 16580 syscall getpid 1
+ 16580 syscall getrlimit 1
+ 16580 syscall mmap 1
+ 16580 syscall munmap 1
+ 16580 syscall rexit 1
+ 16580 syscall sigaction 1
+ 16580 syscall sigpending 1
+ 16580 syscall sysi86 1
+ 16580 syscall uname 1
+ 16580 cmd foreach 2
+ 16580 cmd global 2
+ 16580 cmd interp 2
+ 16580 cmd package 2
+ 16580 cmd set 2
+ 16580 syscall setcontext 2
+ 16580 syscall stat64 2
+ 16580 syscall sysconfig 2
+ 16580 cmd after 3
+ 16580 cmd namespace 3
+ 16580 cmd puts 3
+ 16580 syscall pollsys 3
+ 16580 syscall write 3
+ 16580 cmd lappend 4
+ 16580 cmd lsearch 4
+ 16580 syscall close 5
+ 16580 syscall llseek 6
+ 16580 cmd if 8
+ 16580 cmd info 11
+ 16580 syscall read 11
+ 16580 cmd file 12
+ 16580 cmd proc 12
+ 16580 syscall fcntl 12
+ 16580 syscall ioctl 12
+ 16580 syscall open64 14
+ 16580 syscall resolvepath 25
+ 16580 syscall brk 27
+ 16580 syscall access 54
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt
new file mode 100644
index 000000000000..b5929867eab9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt
@@ -0,0 +1,563 @@
+The following are examples of tcl_syscolors.d.
+
+This is a simple script to trace the flow of Tcl processes, Tcl commands and
+system calls made, and renders the output in color ("colour") using terminal
+escape sequences (which you can tweak by modifying the script).
+
+Here it traces the example program, Code/Tcl/func_abc.tcl.
+
+WARNING: This output is full of terminal escape sequences, so if you are
+trying to view this through an editor or web browser - it may look awful.
+Try viewing this using "more" (although, depending on your terminal, it
+still may look awful).
+
+# tcl_syscolors.d -c './tclsh func_abc.tcl
+Function A
+ C PID DELTA(us) TYPE -- NAME
+ 0 16624 2 syscall -> munmap
+ 0 16624 31 syscall <- munmap
+ 0 16624 52 syscall -> mmap
+ 0 16624 21 syscall <- mmap
+ 0 16624 38 syscall -> setcontext
+ 0 16624 8 syscall <- setcontext
+ 0 16624 8 syscall -> getrlimit
+ 0 16624 9 syscall <- getrlimit
+ 0 16624 8 syscall -> getpid
+ 0 16624 7 syscall <- getpid
+ 0 16624 68 syscall -> setcontext
+ 0 16624 7 syscall <- setcontext
+ 0 16624 177 syscall -> sigpending
+ 0 16624 8 syscall <- sigpending
+ 0 16624 88 syscall -> sysconfig
+ 0 16624 7 syscall <- sysconfig
+ 0 16624 107 syscall -> open64
+ 0 16624 115 syscall <- open64
+ 0 16624 13 syscall -> ioctl
+ 0 16624 64 syscall <- ioctl
+ 0 16624 16 syscall -> close
+ 0 16624 17 syscall <- close
+ 0 16624 1208 syscall -> sysi86
+ 0 16624 9 syscall <- sysi86
+ 0 16624 146 syscall -> llseek
+ 0 16624 10 syscall <- llseek
+ 0 16624 7 syscall -> llseek
+ 0 16624 7 syscall <- llseek
+ 0 16624 7 syscall -> llseek
+ 0 16624 6 syscall <- llseek
+ 0 16624 24 syscall -> sigaction
+ 0 16624 8 syscall <- sigaction
+ 0 16624 63 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 14 syscall <- brk
+ 0 16624 76 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 12 syscall <- brk
+ 0 16624 328 syscall -> resolvepath
+ 0 16624 35 syscall <- resolvepath
+ 0 16624 24 syscall -> access
+ 0 16624 10 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 10 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 13 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 16 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 17 syscall <- resolvepath
+ 0 16624 32 syscall -> open64
+ 0 16624 22 syscall <- open64
+ 0 16624 32 syscall -> resolvepath
+ 0 16624 18 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 12 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 15 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 16 syscall <- open64
+ 0 16624 30 syscall -> resolvepath
+ 0 16624 23 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 21 syscall <- open64
+ 0 16624 29 syscall -> resolvepath
+ 0 16624 17 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 12 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 15 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 15 syscall <- open64
+ 0 16624 30 syscall -> resolvepath
+ 0 16624 20 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 20 syscall <- open64
+ 0 16624 29 syscall -> resolvepath
+ 0 16624 16 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 10 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 12 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 14 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 14 syscall <- open64
+ 0 16624 28 syscall -> resolvepath
+ 0 16624 20 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 43 syscall -> access
+ 0 16624 12 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 13 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 13 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 14 syscall <- open64
+ 0 16624 10 syscall -> sysconfig
+ 0 16624 7 syscall <- sysconfig
+ 0 16624 33 syscall -> resolvepath
+ 0 16624 19 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 13 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 15 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 17 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 18 syscall <- open64
+ 0 16624 30 syscall -> resolvepath
+ 0 16624 17 syscall <- resolvepath
+ 0 16624 7 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 12 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 15 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 16 syscall <- open64
+ 0 16624 30 syscall -> resolvepath
+ 0 16624 21 syscall <- resolvepath
+ 0 16624 11 syscall -> open64
+ 0 16624 25 syscall <- open64
+ 0 16624 15 syscall -> fcntl
+ 0 16624 7 syscall <- fcntl
+ 0 16624 31 syscall -> ioctl
+ 0 16624 8 syscall <- ioctl
+ 0 16624 49 syscall -> brk
+ 0 16624 8 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 11 syscall <- brk
+ 0 16624 30 syscall -> read
+ 0 16624 35 syscall <- read
+ 0 16624 54 syscall -> read
+ 0 16624 8 syscall <- read
+ 0 16624 21 syscall -> close
+ 0 16624 10 syscall <- close
+ 0 16624 51 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 111 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 8 syscall <- brk
+ 0 16624 94 syscall -> uname
+ 0 16624 8 syscall <- uname
+ 0 16624 47 syscall -> ioctl
+ 0 16624 35 syscall <- ioctl
+ 0 16624 73 cmd -> if
+ 0 16624 89 cmd -> info
+ 0 16624 25 cmd <- info
+ 0 16624 46 cmd -> proc
+ 0 16624 11 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 23 cmd <- proc
+ 0 16624 9 cmd <- if
+ 0 16624 18 cmd -> tclInit
+ 0 16624 223 proc -> tclInit
+ 0 16624 12 cmd -> global
+ 0 16624 12 cmd <- global
+ 0 16624 9 cmd -> global
+ 0 16624 9 cmd <- global
+ 0 16624 8 cmd -> rename
+ 0 16624 24 cmd <- rename
+ 0 16624 13 cmd -> info
+ 0 16624 12 cmd <- info
+ 0 16624 13 cmd -> info
+ 0 16624 19 cmd <- info
+ 0 16624 11 cmd -> unset
+ 0 16624 13 cmd <- unset
+ 0 16624 9 cmd -> concat
+ 0 16624 15 cmd <- concat
+ 0 16624 18 cmd -> file
+ 0 16624 20 cmd <- file
+ 0 16624 8 cmd -> file
+ 0 16624 25 syscall -> resolvepath
+ 0 16624 24 syscall <- resolvepath
+ 0 16624 9 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 12 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 14 syscall <- resolvepath
+ 0 16624 12 syscall -> access
+ 0 16624 13 syscall <- access
+ 0 16624 9 cmd <- file
+ 0 16624 10 cmd -> file
+ 0 16624 12 cmd <- file
+ 0 16624 9 cmd -> file
+ 0 16624 24 syscall -> resolvepath
+ 0 16624 23 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 8 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 13 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 16 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 17 syscall <- resolvepath
+ 0 16624 12 syscall -> access
+ 0 16624 16 syscall <- access
+ 0 16624 29 cmd <- file
+ 0 16624 10 cmd -> file
+ 0 16624 12 cmd <- file
+ 0 16624 9 cmd -> file
+ 0 16624 23 syscall -> resolvepath
+ 0 16624 20 syscall <- resolvepath
+ 0 16624 8 syscall -> access
+ 0 16624 9 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 10 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 11 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 13 syscall <- access
+ 0 16624 7 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 syscall -> resolvepath
+ 0 16624 15 syscall <- resolvepath
+ 0 16624 11 syscall -> access
+ 0 16624 14 syscall <- access
+ 0 16624 7 cmd <- file
+ 0 16624 9 cmd -> file
+ 0 16624 12 cmd <- file
+ 0 16624 9 cmd -> file
+ 0 16624 23 syscall -> resolvepath
+ 0 16624 20 syscall <- resolvepath
+ 0 16624 11 syscall -> access
+ 0 16624 19 syscall <- access
+ 0 16624 7 cmd <- file
+ 0 16624 10 cmd -> uplevel
+ 0 16624 13 cmd -> source
+ 0 16624 14 syscall -> stat64
+ 0 16624 23 syscall <- stat64
+ 0 16624 10 syscall -> open64
+ 0 16624 23 syscall <- open64
+ 0 16624 8 syscall -> fcntl
+ 0 16624 7 syscall <- fcntl
+ 0 16624 8 syscall -> ioctl
+ 0 16624 7 syscall <- ioctl
+ 0 16624 26 syscall -> read
+ 0 16624 29 syscall <- read
+ 0 16624 8 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 57 syscall -> read
+ 0 16624 15 syscall <- read
+ 0 16624 55 syscall -> read
+ 0 16624 14 syscall <- read
+ 0 16624 8 syscall -> brk
+ 0 16624 6 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 6 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 8 syscall <- brk
+ 0 16624 63 syscall -> read
+ 0 16624 14 syscall <- read
+ 0 16624 45 syscall -> read
+ 0 16624 13 syscall <- read
+ 0 16624 8 syscall -> brk
+ 0 16624 6 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 6 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 8 syscall <- brk
+ 0 16624 63 syscall -> read
+ 0 16624 14 syscall <- read
+ 0 16624 29 syscall -> read
+ 0 16624 7 syscall <- read
+ 0 16624 10 syscall -> close
+ 0 16624 10 syscall <- close
+ 0 16624 18 cmd -> if
+ 0 16624 19 cmd -> info
+ 0 16624 10 cmd <- info
+ 0 16624 12 cmd <- if
+ 0 16624 14 cmd -> package
+ 0 16624 12 cmd <- package
+ 0 16624 15 cmd -> if
+ 0 16624 12 cmd -> info
+ 0 16624 9 cmd <- info
+ 0 16624 26 cmd -> info
+ 0 16624 16 cmd <- info
+ 0 16624 10 cmd <- if
+ 0 16624 21 cmd -> namespace
+ 0 16624 87 cmd -> variable
+ 0 16624 10 cmd <- variable
+ 0 16624 9 cmd -> info
+ 0 16624 13 cmd <- info
+ 0 16624 9 cmd -> info
+ 0 16624 8 cmd <- info
+ 0 16624 8 cmd -> info
+ 0 16624 8 cmd <- info
+ 0 16624 9 cmd -> file
+ 0 16624 21 cmd <- file
+ 0 16624 9 cmd -> list
+ 0 16624 17 cmd <- list
+ 0 16624 8 cmd -> foreach
+ 0 16624 27 cmd -> lsearch
+ 0 16624 10 cmd <- lsearch
+ 0 16624 10 cmd -> lappend
+ 0 16624 9 cmd <- lappend
+ 0 16624 11 cmd -> lsearch
+ 0 16624 8 cmd <- lsearch
+ 0 16624 8 cmd -> lappend
+ 0 16624 8 cmd <- lappend
+ 0 16624 8 cmd <- foreach
+ 0 16624 8 cmd -> info
+ 0 16624 10 cmd <- info
+ 0 16624 8 cmd -> file
+ 0 16624 15 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 24 cmd <- file
+ 0 16624 9 cmd -> file
+ 0 16624 19 cmd <- file
+ 0 16624 9 cmd -> file
+ 0 16624 11 cmd <- file
+ 0 16624 10 cmd -> lsearch
+ 0 16624 8 cmd <- lsearch
+ 0 16624 9 cmd -> lappend
+ 0 16624 8 cmd <- lappend
+ 0 16624 8 cmd -> info
+ 0 16624 8 cmd <- info
+ 0 16624 9 cmd -> foreach
+ 0 16624 12 cmd -> lsearch
+ 0 16624 8 cmd <- lsearch
+ 0 16624 8 cmd -> lappend
+ 0 16624 8 cmd <- lappend
+ 0 16624 8 cmd <- foreach
+ 0 16624 8 cmd <- namespace
+ 0 16624 30 cmd -> if
+ 0 16624 22 cmd -> interp
+ 0 16624 17 cmd <- interp
+ 0 16624 11 cmd <- if
+ 0 16624 15 cmd -> package
+ 0 16624 8 cmd <- package
+ 0 16624 13 cmd -> if
+ 0 16624 12 cmd -> interp
+ 0 16624 8 cmd <- interp
+ 0 16624 44 cmd <- if
+ 0 16624 21 cmd -> if
+ 0 16624 15 cmd -> namespace
+ 0 16624 10 cmd <- namespace
+ 0 16624 9 cmd <- if
+ 0 16624 13 cmd -> set
+ 0 16624 9 cmd <- set
+ 0 16624 10 cmd -> set
+ 0 16624 8 cmd <- set
+ 0 16624 12 cmd -> if
+ 0 16624 14 cmd -> namespace
+ 0 16624 8 cmd <- namespace
+ 0 16624 13 cmd -> proc
+ 0 16624 12 cmd <- proc
+ 0 16624 8 cmd <- if
+ 0 16624 69 cmd -> proc
+ 0 16624 11 cmd <- proc
+ 0 16624 20 cmd -> proc
+ 0 16624 12 cmd <- proc
+ 0 16624 22 syscall -> brk
+ 0 16624 7 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 6 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 18 cmd -> proc
+ 0 16624 10 cmd <- proc
+ 0 16624 21 cmd -> proc
+ 0 16624 11 cmd <- proc
+ 0 16624 16 cmd -> proc
+ 0 16624 10 cmd <- proc
+ 0 16624 42 cmd -> if
+ 0 16624 25 cmd -> proc
+ 0 16624 9 syscall -> brk
+ 0 16624 6 syscall <- brk
+ 0 16624 7 syscall -> brk
+ 0 16624 9 syscall <- brk
+ 0 16624 21 cmd <- proc
+ 0 16624 9 cmd <- if
+ 0 16624 41 cmd -> proc
+ 0 16624 13 cmd <- proc
+ 0 16624 9 cmd <- source
+ 0 16624 8 cmd <- uplevel
+ 0 16624 10 proc <- tclInit
+ 0 16624 17 cmd <- tclInit
+ 0 16624 35 syscall -> resolvepath
+ 0 16624 31 syscall <- resolvepath
+ 0 16624 13 syscall -> stat64
+ 0 16624 24 syscall <- stat64
+ 0 16624 9 syscall -> open64
+ 0 16624 23 syscall <- open64
+ 0 16624 8 syscall -> fcntl
+ 0 16624 7 syscall <- fcntl
+ 0 16624 9 syscall -> ioctl
+ 0 16624 7 syscall <- ioctl
+ 0 16624 12 syscall -> read
+ 0 16624 21 syscall <- read
+ 0 16624 10 syscall -> read
+ 0 16624 7 syscall <- read
+ 0 16624 9 syscall -> close
+ 0 16624 8 syscall <- close
+ 0 16624 12 cmd -> proc
+ 0 16624 11 cmd <- proc
+ 0 16624 11 cmd -> proc
+ 0 16624 9 cmd <- proc
+ 0 16624 11 cmd -> proc
+ 0 16624 9 cmd <- proc
+ 0 16624 9 cmd -> func_a
+ 0 16624 17 proc -> func_a
+ 0 16624 10 cmd -> puts
+ 0 16624 25 syscall -> llseek
+ 0 16624 9 syscall <- llseek
+ 0 16624 9 syscall -> ioctl
+ 0 16624 6 syscall <- ioctl
+ 0 16624 13 syscall -> getsockname
+ 0 16624 8 syscall <- getsockname
+ 0 16624 18 syscall -> llseek
+ 0 16624 8 syscall <- llseek
+ 0 16624 7 syscall -> ioctl
+ 0 16624 86 syscall <- ioctl
+ 0 16624 184 syscall -> ioctl
+ 0 16624 17 syscall <- ioctl
+ 0 16624 14 syscall -> llseek
+ 0 16624 7 syscall <- llseek
+ 0 16624 7 syscall -> ioctl
+ 0 16624 13 syscall <- ioctl
+ 0 16624 8 syscall -> ioctl
+ 0 16624 12 syscall <- ioctl
+ 0 16624 24 syscall -> write
+ 0 16624 108 syscall <- write
+ 0 16624 10 cmd <- puts
+ 0 16624 11 cmd -> after
+ 0 16624 23 syscall -> pollsys
+Function B
+ 0 16624 1009593 syscall <- pollsys
+ 0 16624 24 cmd <- after
+ 0 16624 23 cmd -> func_b
+ 0 16624 37 proc -> func_b
+ 0 16624 12 cmd -> puts
+ 0 16624 17 syscall -> write
+ 0 16624 74 syscall <- write
+ 0 16624 8 cmd <- puts
+ 0 16624 9 cmd -> after
+ 0 16624 10 syscall -> pollsys
+Function C
+ 0 16624 1009748 syscall <- pollsys
+ 0 16624 24 cmd <- after
+ 0 16624 23 cmd -> func_c
+ 0 16624 35 proc -> func_c
+ 0 16624 12 cmd -> puts
+ 0 16624 17 syscall -> write
+ 0 16624 75 syscall <- write
+ 0 16624 8 cmd <- puts
+ 0 16624 9 cmd -> after
+ 0 16624 10 syscall -> pollsys
+ 0 16624 1009831 syscall <- pollsys
+ 0 16624 24 cmd <- after
+ 0 16624 23 proc <- func_c
+ 0 16624 13 cmd <- func_c
+ 0 16624 9 proc <- func_b
+ 0 16624 8 cmd <- func_b
+ 0 16624 8 proc <- func_a
+ 0 16624 8 cmd <- func_a
+ 0 16624 30 cmd -> exit
+ 0 16624 41 syscall -> fcntl
+ 0 16624 11 syscall <- fcntl
+ 0 16624 7 syscall -> fcntl
+ 0 16624 7 syscall <- fcntl
+ 0 16624 7 syscall -> fcntl
+ 0 16624 6 syscall <- fcntl
+ 0 16624 11 syscall -> fcntl
+ 0 16624 6 syscall <- fcntl
+ 0 16624 7 syscall -> fcntl
+ 0 16624 6 syscall <- fcntl
+ 0 16624 7 syscall -> fcntl
+ 0 16624 6 syscall <- fcntl
+ 0 16624 9 syscall -> fcntl
+ 0 16624 7 syscall <- fcntl
+ 0 16624 7 syscall -> fcntl
+ 0 16624 6 syscall <- fcntl
+ 0 16624 7 syscall -> fcntl
+ 0 16624 6 syscall <- fcntl
+ 0 16624 81 syscall -> open64
+ 0 16624 119 syscall <- open64
+ 0 16624 8 syscall -> ioctl
+ 0 16624 8 syscall <- ioctl
+ 0 16624 10 syscall -> close
+ 0 16624 16 syscall <- close
+ 0 16624 68 syscall -> rexit
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt
new file mode 100644
index 000000000000..d1eefa3a9c85
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt
@@ -0,0 +1,17 @@
+The following is an example of running tcl_who.d.
+
+The output produces four fields of interest in tracing tcl calls by process.
+
+Here we see it running while Code/Tcl/func_slow.tcl and Code/Tcl/func_abc.tcl
+are executed.
+# tcl_who.d
+Tracing... Hit Ctrl-C to end.
+^C
+ PID UID CALLS ARGS
+ 16063 100 83 ./tclsh scripts/func_slow.tcl
+ 16061 100 86 ./tclsh scripts/func_abc.tcl
+
+CALLS is a measure of activity, and is a count of the procedures and commands
+that Tcl called. The ARGS column shows the process name and arguments given
+for a particular PID in order to identify the particular Tcl code involved.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt
new file mode 100644
index 000000000000..a0a8cc85d379
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt
@@ -0,0 +1,41 @@
+The following is a demonstration of the tcpsnoop script.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+ # tcpsnoop.d
+ UID PID LADDR LPORT DR RADDR RPORT SIZE CMD
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 66 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 56 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 606 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 54 finger
+ 0 242 192.168.1.5 23 <- 192.168.1.1 54224 54 inetd
+ 0 242 192.168.1.5 23 -> 192.168.1.1 54224 54 inetd
+ 0 242 192.168.1.5 23 <- 192.168.1.1 54224 54 inetd
+ 0 242 192.168.1.5 23 <- 192.168.1.1 54224 78 inetd
+ 0 242 192.168.1.5 23 -> 192.168.1.1 54224 54 inetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 57 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 78 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 57 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 63 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 72 in.telnetd
+ [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt
new file mode 100644
index 000000000000..1124175d2d16
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt
@@ -0,0 +1,61 @@
+The following is a demonstration of the tcpsnoop program.
+
+
+
+Here we run tcpsnoop and wait for new TCP connections to be established,
+
+ # tcpsnoop
+ UID PID LADDR LPORT DR RADDR RPORT SIZE CMD
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 66 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 56 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 606 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 -> 192.168.1.1 79 54 finger
+ 100 20892 192.168.1.5 36398 <- 192.168.1.1 79 54 finger
+ 0 242 192.168.1.5 23 <- 192.168.1.1 54224 54 inetd
+ 0 242 192.168.1.5 23 -> 192.168.1.1 54224 54 inetd
+ 0 242 192.168.1.5 23 <- 192.168.1.1 54224 54 inetd
+ 0 242 192.168.1.5 23 <- 192.168.1.1 54224 78 inetd
+ 0 242 192.168.1.5 23 -> 192.168.1.1 54224 54 inetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 57 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 78 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 57 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 63 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 54 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 <- 192.168.1.1 54224 60 in.telnetd
+ 0 20893 192.168.1.5 23 -> 192.168.1.1 54224 72 in.telnetd
+ [...]
+
+As new connections are made, each of the TCP packets are traced along with
+the UID, PID and command name.
+
+
+
+tcpsnoop has many options, for example here we use "-v" to print times,
+
+ # tcpsnoop -v
+ STRTIME UID PID LADDR LPORT DR RADDR RPORT SIZE CMD
+ 2005 Jul 11 21:21:19 0 242 192.168.1.5 79 <- 192.168.1.1 49001 54 inetd
+ 2005 Jul 11 21:21:19 0 242 192.168.1.5 79 -> 192.168.1.1 49001 54 inetd
+ 2005 Jul 11 21:21:19 0 242 192.168.1.5 79 <- 192.168.1.1 49001 54 inetd
+ 2005 Jul 11 21:21:19 0 242 192.168.1.5 79 <- 192.168.1.1 49001 56 inetd
+ 2005 Jul 11 21:21:19 0 242 192.168.1.5 79 -> 192.168.1.1 49001 54 inetd
+ 2005 Jul 11 21:21:19 0 23181 192.168.1.5 79 -> 192.168.1.1 49001 444 in.fingerd
+ 2005 Jul 11 21:21:19 0 23181 192.168.1.5 79 -> 192.168.1.1 49001 54 in.fingerd
+ 2005 Jul 11 21:21:19 0 23181 192.168.1.5 79 <- 192.168.1.1 49001 54 in.fingerd
+ 2005 Jul 11 21:21:19 0 23181 192.168.1.5 79 <- 192.168.1.1 49001 54 in.fingerd
+ 2005 Jul 11 21:21:19 0 23181 192.168.1.5 79 <- 192.168.1.1 49001 54 in.fingerd
+ 2005 Jul 11 21:21:19 0 23181 192.168.1.5 79 -> 192.168.1.1 49001 54 in.fingerd
+ [...]
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt
new file mode 120000
index 000000000000..d53301a9cc66
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt
@@ -0,0 +1 @@
+tcpsnoop_d_example.txt \ No newline at end of file
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt
new file mode 120000
index 000000000000..794263cb8c1e
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt
@@ -0,0 +1 @@
+tcpsnoop_example.txt \ No newline at end of file
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt
new file mode 100644
index 000000000000..d7d8cb379d98
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt
@@ -0,0 +1,22 @@
+The following is a demonstration of the tcpstat.d script,
+
+
+Here we run tcpstat.d as a large file is downloaded,
+
+ # tcpstat.d
+ TCP_out TCP_outRe TCP_in TCP_inDup TCP_inUn
+ 0 0 0 0 0
+ 20 0 1540 0 0
+ 632 0 576 0 0
+ 560 0 115552 0 0
+ 1872 0 2900480 0 0
+ 1968 0 3032320 0 0
+ 1776 0 2752160 0 0
+ 752 0 999824 0 0
+ 0 0 0 0 0
+ 0 0 0 0 0
+ 0 0 0 0 0
+ ^C
+
+We can see the TCP_in value rise to around 3 Mb/sec as the download occurs.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt
new file mode 100644
index 000000000000..c90fc753d883
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt
@@ -0,0 +1,28 @@
+The following is a demonstration of the tcptop command,
+
+
+tcptop will display info on newly established TCP connections,
+
+ # tcptop -C 10
+ Tracing... Please wait.
+ 2005 Jul 5 04:55:25, load: 1.11, TCPin: 2 KB, TCPout: 110 KB
+
+ UID PID LADDR LPORT FADDR FPORT SIZE NAME
+ 100 20876 192.168.1.5 36396 192.168.1.1 79 1160 finger
+ 100 20875 192.168.1.5 36395 192.168.1.1 79 1160 finger
+ 100 20878 192.168.1.5 36397 192.168.1.1 23 1303 telnet
+ 100 20877 192.168.1.5 859 192.168.1.1 514 115712 rcp
+
+ 2005 Jul 5 04:55:35, load: 1.10, TCPin: 0 KB, TCPout: 0 KB
+
+ UID PID LADDR LPORT FADDR FPORT SIZE NAME
+ 0 242 192.168.1.5 79 192.168.1.1 54220 272 inetd
+ 0 20879 192.168.1.5 79 192.168.1.1 54220 714 in.fingerd
+
+ [...]
+
+
+In the above output, we run it with a 10 second interval and with -C so
+that the screen does not clear. Some traffic was captured, around 110 Kbytes
+by the rcp process (PID 20877), etc.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt
new file mode 120000
index 000000000000..f2a169ee6b50
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt
@@ -0,0 +1 @@
+tcptop_example.txt \ No newline at end of file
diff --git a/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt b/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt
new file mode 100644
index 000000000000..02a392ce55a1
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt
@@ -0,0 +1,70 @@
+The following is a demonstration of the tcpwdist.d script.
+
+
+Here the tcpwdist.d script is run for a few seconds then Ctrl-C is hit,
+
+ # tcpwdist.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID: 15300 CMD: finger @mars\0
+
+ value ------------- Distribution ------------- count
+ -1 | 0
+ 0 |@@@@@@@@@@@@@@@@@@@@ 1
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@@@@@@ 1
+ 4 | 0
+
+ PID: 4967 CMD: /usr/lib/ssh/sshd\0
+
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@ 1
+ 64 |@@@@@@@@@@@@@@@@@@@@ 1
+ 128 | 0
+
+ PID: 9172 CMD: /usr/lib/ssh/sshd\0
+
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@ 4
+ 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 14
+ 128 | 0
+ 256 | 0
+ 512 |@@ 1
+ 1024 | 0
+
+ PID: 15301 CMD: rcp 1Mb.gz mars:/tmp\0
+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@ 2
+ 2 |@ 1
+ 4 | 0
+ 8 |@ 2
+ 16 |@ 2
+ 32 | 0
+ 64 | 0
+ 128 | 0
+ 256 | 0
+ 512 | 0
+ 1024 | 0
+ 2048 | 0
+ 4096 | 0
+ 8192 | 0
+ 16384 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 64
+ 32768 | 0
+
+In the above output we can see the "rcp" command dominates, sending
+large writes (16 to 31 Kb) 64 times. The "sshd" ssh daemons each sent
+several smaller writes, from 32 to 127 bytes - which corresponds to
+command line activity (eg, screen width of 80 bytes). The finger command
+sent 2 bytes once, and zero data bytes once.
+
+These values are the TCP write payload sizes.
+
+The writes from the "rcp" command seem unusual at over 16 Kb each, when
+this is an Ethernet network with an MTU of 1500 bytes. The reason is that
+at this point the data has not yet been broken down into MTU sized packets,
+so we are looking at the applications behaviour as it writes to TCP.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt b/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt
new file mode 100644
index 000000000000..1e41a0ef2ed9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt
@@ -0,0 +1,108 @@
+The following is a demonstration of the threaded.d script,
+
+
+Here we run a test program called "cputhread" that creates 4 busy threads
+that run at the same time. Here we run it on a server with only 1 CPU,
+
+ # threaded.d
+
+ 2005 Jul 26 02:56:37,
+
+ PID: 8516 CMD: cputhread
+
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@ 17
+ 3 |@@@@@@@@@@@ 28
+ 4 |@@@@@@@@@@@ 27
+ 5 |@@@@@@@@@@@ 28
+ 6 | 0
+ [...]
+
+In the above output, we can see that cputhread has four busy threads with
+thread IDs 2, 3, 4 and 5. We are sampling at 100 Hertz, and have caught
+each of these threads on the CPU between 17 and 28 times.
+
+Since the above counts add to 100, this is either a sign of a single CPU
+server (which it is), or a sign that a multithreaded application may be
+running "serialised" - only 1 thread at a time. Compare the above output
+to a multi CPU server,
+
+
+
+Here we run the same test program on a server with 4 CPUs,
+
+ # threaded.d
+
+ 2005 Jul 26 02:48:44,
+
+ PID: 5218 CMD: cputhread
+
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@ 80
+ 3 |@@@@@@@@@@ 72
+ 4 |@@@@@@@@@ 64
+ 5 |@@@@@@@@@@@ 78
+ 6 | 0
+ [...]
+
+This time the counts add to equal 294, so this program is definitely
+running on multiple CPUs at the same time, otherwise this total would
+not be beyond our sample rate of 100. The distribution of threads on CPU
+is fairly even, and the above serves as an example of a multithreaded
+application performing well.
+
+
+
+Now we run a test program called "cpuserial", which also create 4 busy
+threads, however due to a coding problem (poor use of mutex locks) they
+only run one at a time,
+
+ # threaded.d
+
+ 2005 Jul 26 03:07:21,
+
+ PID: 5238 CMD: cpuserial
+
+ value ------------- Distribution ------------- count
+ 2 | 0
+ 3 |@@@@@@@@@@@@ 30
+ 4 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 70
+ 5 | 0
+ [...]
+
+The above looks like we are back on a single CPU server with 100 samples
+in total, however we are still on our 4 CPU server. Only two threads have
+run, and the above distribution is a good indication that they have
+run serialised.
+
+
+
+Now more of a fringe case. This version of cpuserial again creates 4 threads
+that are all busy and hungry for the CPU, and again we run it on a 4 CPU
+server,
+
+ # threaded.d
+
+ 2005 Jul 26 03:25:45,
+
+ PID: 5280 CMD: cpuserial
+
+ value ------------- Distribution ------------- count
+ 1 | 0
+ 2 |@@@@@@@@@@@@@@@ 42
+ 3 |@@@@@@@@@@@@@@@@@@ 50
+ 4 |@@@@@@ 15
+ 5 |@ 2
+ 6 | 0
+ [...]
+
+So all threads are running, good. And with a total of 109, at some point
+more than one thread was running at the same time (otherwise this would
+not have exceeded 100, bearing in mind a sample rate of 100 Hertz). However,
+what is not so good is that with 4 CPUs we have only scored 109 samples -
+since all threads are CPU hungry we'd hope that more often they could
+run across the CPUs simultaneously; however this wasn't the case. Again,
+this fault was created by poor use of mutex locks.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt b/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt
new file mode 100644
index 000000000000..dda1aa03e515
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt
@@ -0,0 +1,65 @@
+The following is a demonstration of the topsyscall command,
+
+
+Here topsyscall is run with no arguments,
+
+ # topsyscall
+ 2005 Jun 13 22:13:21, load average: 1.24, 1.24, 1.22 syscalls: 1287
+
+ SYSCALL COUNT
+ getgid 4
+ getuid 5
+ waitsys 5
+ xstat 7
+ munmap 7
+ sysconfig 8
+ brk 8
+ setcontext 8
+ open 8
+ getpid 9
+ close 9
+ resolvepath 10
+ lwp_sigmask 22
+ mmap 26
+ lwp_park 43
+ read 59
+ write 72
+ sigaction 113
+ pollsys 294
+ ioctl 520
+
+The screen updates every second, and continues until Ctrl-C is hit to
+end the program.
+
+In the above output we can see that the ioctl() system call occured 520 times,
+pollsys() 294 times and sigaction() 113 times.
+
+
+
+Here the command is run with a 10 second interval,
+
+ # topsyscall 10
+ 2005 Jun 13 22:15:35, load average: 1.21, 1.22, 1.22 syscalls: 10189
+
+ SYSCALL COUNT
+ writev 6
+ close 7
+ lseek 7
+ open 7
+ brk 8
+ nanosleep 9
+ portfs 10
+ llseek 14
+ lwp_cond_wait 21
+ p_online 21
+ gtime 27
+ rusagesys 71
+ setcontext 92
+ lwp_sigmask 98
+ setitimer 183
+ lwp_park 375
+ write 438
+ read 551
+ pollsys 3071
+ ioctl 5144
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt b/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt
new file mode 100644
index 000000000000..368ea314c079
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt
@@ -0,0 +1,56 @@
+The following is a demonstration of the topsysproc program,
+
+
+Here we run topsysproc with no arguments,
+
+ # topsysproc
+ 2005 Jun 13 22:25:16, load average: 1.24, 1.23, 1.21 syscalls: 1347
+
+ PROCESS COUNT
+ svc.startd 1
+ nscd 1
+ setiathome 7
+ poold 18
+ sshd 21
+ java_vm 35
+ tput 49
+ dtrace 56
+ Xorg 108
+ sh 110
+ clear 122
+ mozilla-bin 819
+
+The screen refreshes every 1 second, which can be changed by specifying
+a different interval at the command line.
+
+In the above output we can see that processes with the name "mozilla-bin"
+made 819 system calls, while processes with the name "clear" made 122.
+
+
+
+Now topsysproc is run with a 15 second interval,
+
+ # topsysproc 15
+ 2005 Jun 13 22:29:43, load average: 1.19, 1.20, 1.20 syscalls: 15909
+
+ PROCESS COUNT
+ fmd 1
+ inetd 2
+ svc.configd 2
+ gconfd-2 3
+ miniserv.pl 3
+ sac 6
+ snmpd 6
+ sshd 8
+ automountd 8
+ ttymon 9
+ svc.startd 17
+ nscd 21
+ in.routed 37
+ sendmail 41
+ setiathome 205
+ poold 293
+ dtrace 413
+ java_vm 529
+ Xorg 1234
+ mozilla-bin 13071
diff --git a/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt
new file mode 100644
index 000000000000..4ffa3bafeacb
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt
@@ -0,0 +1,39 @@
+The following is an example of the udpstat.d script,
+
+
+
+Here we run udpstat for a few seconds. Firstly, we run a "spray" command
+outbound, followed by a spray inbound. Both can be identified in the
+output below,
+
+ # udpstat.d
+ UDP_out UDP_outErr UDP_in UDP_inErr UDP_noPort
+ 0 0 0 0 1
+ 0 0 0 0 2
+ 0 0 0 0 0
+ 1165 0 2 0 0
+ 0 0 0 0 0
+ 0 0 0 0 2
+ 3 0 1166 0 1
+ 0 0 0 0 0
+ 0 0 0 0 0
+ 0 0 0 0 0
+ ^C
+
+
+
+Here we run udpstat.d while an outbound DNS lookup is performed using
+"nslookup",
+
+ # udpstat.d
+ UDP_out UDP_outErr UDP_in UDP_inErr UDP_noPort
+ 0 0 0 0 1
+ 0 0 0 0 1
+ 1 0 1 0 0
+ 0 0 0 0 0
+ 0 0 0 0 3
+ ^C
+
+Little output is observed as this tracks datagrams not bytes. There is
+one outbound and one inbound datagram.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt b/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt
new file mode 100644
index 000000000000..281033dc8721
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt
@@ -0,0 +1,15 @@
+The following is a demonstration of the uname.d script,
+
+
+Here we run the usual "uname -a" command and compare the output to that
+given by the uname.d script,
+
+ # uname -a
+ SunOS jupiter 5.10 Generic i86pc i386 i86pc
+
+ # ./uname-a.d
+ SunOS jupiter 5.10 Generic i86pc i386 i86pc
+
+The output is the same. uname-a.d is intended as a demonstration script,
+and as a starting point for other scripts.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt
new file mode 100644
index 000000000000..9e09b836a4c5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt
@@ -0,0 +1,32 @@
+The following is a demonstration of the vmbypid.d command,
+
+ # vmbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ EXEC PID VM VALUE
+ find 19216 prot_fault 1
+ bash 19216 zfod 1
+ dtrace 19215 pgfrec 3
+ dtrace 19215 pgrec 3
+ bash 19216 pgfrec 5
+ bash 19216 pgrec 5
+ find 19216 cow_fault 6
+ find 19216 pgfrec 6
+ find 19216 pgrec 6
+ bash 19216 prot_fault 10
+ bash 19216 cow_fault 15
+ bash 19155 prot_fault 30
+ dtrace 19215 zfod 52
+ find 19216 zfod 54
+ dtrace 19215 as_fault 56
+ bash 19216 as_fault 74
+ find 19216 as_fault 91
+ find 19216 fspgin 315
+ find 19216 pgin 315
+ find 19216 pgpgin 315
+ find 19216 maj_fault 315
+
+In the above output, the find command at PID 19211 triggered 315 maj_faults -
+major faults, that would require disk activity to satisfy (as confirmed by the
+pgpgin value for pages paged in).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt b/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt
new file mode 100644
index 000000000000..1a0fe14b7750
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt
@@ -0,0 +1,51 @@
+The following is a demonstration of the vmstat-p.d script,
+
+
+We run both vmstat-p.d and the original vmstat(1M) command at the same time
+to compare outputs,
+
+ $ vmstat -p 1
+ memory page executable anonymous filesystem
+ swap free re mf fr de sr epi epo epf api apo apf fpi fpo fpf
+ 1144488 142456 2 8 1 0 0 0 0 0 0 0 0 2 1 1
+ 1063812 84472 18 92 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050404 75108 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050404 75108 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050404 75108 476 150 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050184 74772 73 0 0 0 0 0 0 0 0 0 0 788 0 0
+ 1050400 74988 2371 173 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050400 75100 1057 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050400 75100 2 0 0 0 0 0 0 0 0 0 0 4 0 0
+ 1050400 75100 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050400 75100 4529 172 0 0 0 0 0 0 0 0 0 192 0 0
+ 1050400 75104 0 0 0 0 0 0 0 0 0 0 0 467 0 0
+ 1050400 75104 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+
+ # ./vmstat-p.d
+ memory page executable anonymous filesystem
+ swap free re mf sr epi epo epf api apo apf fpi fpo fpf
+ 1050404 75108 8 80 0 0 0 0 0 0 0 0 0 0
+ 1050404 75108 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050404 75108 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050180 74768 2216 608 0 0 0 0 0 0 0 568 0 0
+ 1050400 74988 4 0 0 0 0 0 0 0 0 228 0 0
+ 1050400 75100 13852 700 0 0 0 0 0 0 0 0 0 0
+ 1050400 75100 8 0 0 0 0 0 0 0 0 4 0 0
+ 1050400 75100 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050400 75100 0 0 0 0 0 0 0 0 0 0 0 0
+ 1050400 75104 18480 700 0 0 0 0 0 0 0 668 0 0
+ 1050400 75104 0 0 0 0 0 0 0 0 0 0 0 0
+
+Above we can see the columns are corresponding well. "re" and "mf" in the
+DTrace output appear four times as large as they should be, because in the
+DTrace output we are printing Kbs not page counts (for consistancy).
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The vmstat-p.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt
new file mode 100644
index 000000000000..7d953fd9b672
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt
@@ -0,0 +1,45 @@
+The following is an example of the vmstat.d script,
+
+
+We run both vmstat.d and the original vmstat(1M) command at the same time
+to compare outputs,
+
+ $ vmstat 1
+ kthr memory page disk faults cpu
+ r b w swap free re mf pi po fr de sr cd s0 -- -- in sy cs us sy id
+ 0 0 0 1147468 144324 2 8 2 1 1 0 0 1 0 0 0 294 990 355 18 2 80
+ 1 0 0 1065480 92276 13 73 0 0 0 0 0 0 0 0 0 359 1055 376 85 15 0
+ 0 0 0 1052088 82940 0 0 0 0 0 0 0 0 0 0 0 409 999 402 97 3 0
+ 0 0 0 1052088 82940 0 0 0 0 0 0 0 0 0 0 0 406 975 407 97 3 0
+ 0 0 0 1052088 82940 0 0 0 0 0 0 0 0 0 0 0 406 1037 429 97 3 0
+ 0 0 0 1052088 82940 247 1763 0 0 0 0 0 2 0 0 0 427 4828 680 81 19 0
+ 0 0 0 1051264 82300 0 0 0 0 0 0 0 0 0 0 0 414 1164 441 97 3 0
+ 0 0 0 1051264 82300 11 134 0 0 0 0 0 0 0 0 0 423 1218 461 95 5 0
+ 0 0 0 1051264 82300 0 0 0 0 0 0 0 0 0 0 0 416 1054 435 98 2 0
+ [...]
+
+ # ./vmstat.d
+ w swap free re mf pi po fr sr in sy cs
+ 0 1052088 82940 8 80 0 0 0 0 117 958 379
+ 0 1052088 82940 0 0 0 0 0 0 123 955 402
+ 0 1052088 82940 0 0 0 0 0 0 121 1025 420
+ 0 1052088 82940 0 0 0 0 0 0 121 1065 433
+ 0 1051264 82300 1008 7192 0 0 0 0 219 4886 684
+ 0 1051264 82300 0 0 0 0 0 0 193 1188 461
+ 0 1051264 82300 44 540 0 0 0 0 165 1226 450
+ 0 1051264 82300 0 0 0 0 0 0 123 1012 421
+ [...]
+
+Above we can see the columns are corresponding well. "re" and "mf" in the
+DTrace output appear four times as large as they should be, because in the
+DTrace output we are printing Kbs not page counts (for consistancy).
+
+The DTrace output lacks the "summary since boot" line, as it is not using
+Kstat to fetch this data.
+
+
+The vmstat.d script is not intended itself as a useful program, rather it
+is intended as a starting point for other DTrace scripts; a starting point
+of familiar statistics to provide the programmer with a "common ground"
+of knowledge.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt
new file mode 100644
index 000000000000..646419efada9
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt
@@ -0,0 +1,89 @@
+The following are demonstrations of the vopstat script.
+
+
+By default, vopstat traces activity at the vnode interface and prints
+summaries every five seconds. It will either trace all filesystems or
+just the mountpoint specified.
+
+Here it was run on /extra1, while a tar command archived /extra1,
+
+ # ./vopstat /extra1
+ VOP Physical IO Count
+ fop_getpage 66
+
+ VOP Count Count
+ fop_readdir 1
+ fop_read 2
+ fop_cmp 2
+ fop_seek 3
+ fop_close 7
+ fop_open 10
+ fop_getattr 12
+ fop_access 13
+ fop_lookup 16
+ fop_rwunlock 3802
+ fop_rwlock 3802
+ fop_putpage 4701
+ fop_getpage 6648
+ fop_dispose 19109
+
+ VOP Wall Time mSeconds
+ fop_readdir 0
+ fop_cmp 0
+ fop_read 0
+ fop_seek 0
+ fop_close 0
+ fop_open 0
+ fop_access 0
+ fop_getattr 0
+ fop_lookup 0
+ fop_rwunlock 64
+ fop_putpage 86
+ fop_rwlock 93
+ fop_dispose 346
+ fop_getpage 402
+ ^C
+
+There were 66 calls for physical I/O operations, fop_getpage, as files
+were read from disk. The VOP Count show that there were many calls to
+fop_putpage and fop_getpage, as tar works its way through files; and
+many more to fop_dispose. The total elaspsed time for these calls
+are listed at the bottom, in milleseconds.
+
+This rate of events will put some pressure on the DTrace buffer,
+you may see dynamic variable drops.
+
+
+
+vopstat also has a -t option to trace activity. Here it is run on /extra1
+while an "ls" command listed files from that directory,
+
+# ./vopstat -t /extra1
+ Event Device Path RW Size Offset
+-> fop_getattr - /extra1 - 0 0
+<- fop_getattr - /extra1 - 0 0
+-> fop_access - /extra1 - 0 0
+<- fop_access - /extra1 - 0 0
+-> fop_open - /extra1 - 0 0
+<- fop_open - /extra1 - 0 0
+-> fop_getattr - /extra1 - 0 0
+<- fop_getattr - /extra1 - 0 0
+-> fop_rwlock - /extra1 - 0 0
+<- fop_rwlock - /extra1 - 0 0
+-> fop_readdir - /extra1 - 0 0
+-> fop_getpage - /extra1 - 0 0
+<- fop_getpage - /extra1 - 0 0
+-> fop_rwunlock - /extra1 - 0 0
+<- fop_rwunlock - /extra1 - 0 0
+-> fop_rwlock - /extra1 - 0 0
+<- fop_rwlock - /extra1 - 0 0
+-> fop_readdir - /extra1 - 0 0
+<- fop_readdir - /extra1 - 0 0
+-> fop_rwunlock - /extra1 - 0 0
+<- fop_rwunlock - /extra1 - 0 0
+-> fop_close - /extra1 - 0 512
+<- fop_close - /extra1 - 0 512
+^C
+
+Each call can be seen as it happened, including the entry and return of
+these calls.
diff --git a/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt b/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt
new file mode 100644
index 000000000000..995b545a366a
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt
@@ -0,0 +1,127 @@
+The following is a demonstration of the weblatency.d script.
+
+Here we run weblatency.d while a mozilla browser loads the
+http://www.planetsolaris.org website. After the website was loaded, Ctrl-C
+was hit to print the following report,
+
+ # weblatency.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ HOST NUM
+ static.flickr.com 1
+ images.pegasosppc.com 1
+ www.planetsolaris.org 5
+ blogs.sun.com 7
+
+ HOST AVGTIME(ms)
+ static.flickr.com 65
+ blogs.sun.com 285
+ images.pegasosppc.com 491
+ www.planetsolaris.org 757
+
+ HOST MAXTIME(ms)
+ static.flickr.com 65
+ images.pegasosppc.com 491
+ blogs.sun.com 962
+ www.planetsolaris.org 3689
+
+This gives us an understanding on which hosts were responsible for the
+time endured while loading the website. It turns out that requests to
+www.planetsolaris.org were the slowest, with a maximum time of 3.7 seconds
+(probably the first request, which incurred a DNS lookup).
+
+
+
+The following shows the same google lookup performed on a number of sites,
+
+ # weblatency.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ HOST NUM
+ www.google.com.au 3
+ www.google.co.uk 3
+ www.google.com 3
+ www.google.co.nz 3
+
+ HOST AVGTIME(ms)
+ www.google.co.nz 450
+ www.google.com.au 502
+ www.google.com 567
+ www.google.co.uk 595
+
+ HOST MAXTIME(ms)
+ www.google.co.nz 544
+ www.google.com.au 559
+ www.google.com 744
+ www.google.co.uk 763
+
+From the average time you would guess that I was running this from
+New Zealand (the fastest), with times to the other hosts following suit
+(Australia, USA, UK). I was actually running this from Australia - it's
+interesting that the New Zealand server responded slightly faster.
+
+
+
+
+Now several websites are loaded as a larger demonstration,
+
+ # weblatency.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ HOST NUM
+ shop.abc.net.au 1
+ static.technorati.com 1
+ sunopensolaris.112.2o7.net 1
+ www.theage.com.au 1
+ ffxcam.smh.com.au 1
+ sunglobal.112.2o7.net 2
+ embed.technorati.com 2
+ technorati.com 2
+ fdimages.fairfax.com.au 4
+ blogs.sun.com 5
+ bugs.opensolaris.org 7
+ www.abc.net.au 34
+ www.smh.com.au 51
+
+ HOST AVGTIME(ms)
+ ffxcam.smh.com.au 0
+ sunglobal.112.2o7.net 0
+ www.abc.net.au 56
+ www.theage.com.au 64
+ shop.abc.net.au 65
+ www.smh.com.au 73
+ fdimages.fairfax.com.au 88
+ blogs.sun.com 130
+ bugs.opensolaris.org 162
+ static.technorati.com 350
+ technorati.com 352
+ embed.technorati.com 632
+ sunopensolaris.112.2o7.net 900
+
+ HOST MAXTIME(ms)
+ ffxcam.smh.com.au 0
+ sunglobal.112.2o7.net 0
+ www.theage.com.au 64
+ shop.abc.net.au 65
+ fdimages.fairfax.com.au 243
+ www.smh.com.au 244
+ blogs.sun.com 293
+ www.abc.net.au 315
+ static.technorati.com 350
+ technorati.com 356
+ bugs.opensolaris.org 560
+ sunopensolaris.112.2o7.net 900
+ embed.technorati.com 973
+
+It's interesting that the most common host (www.smh.com.au, NUM == 51),
+responded with a fast AVGTIME (73 ms). The reason for this may be due to
+cacheing by my proxy server. Less common hosts such as embed.technorati.com
+were quite slow.
+
+
+
+The results from weblatency.d are interesting, but they don't point the
+finger at one single cause for website latency. The value here is the response
+time experienced by the client - which is a combination of many response
+times (link speeds, proxy server, DNS server, web server).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt b/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt
new file mode 100644
index 000000000000..519909ec789d
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt
@@ -0,0 +1,18 @@
+The following are demonstrations of the whatexec.d script.
+
+
+Here we run it while a few commands are also executed,
+
+ # ./whatexec.d
+ PEXEC EXEC OK TYPE
+ bash /usr/bin/clear Y #!/u\0
+ bash /sbin/sh Y \177ELF\0
+ clear /usr/bin/tput Y \177ELF\0
+ bash /export/home/brendan/DOOM.EXE N MZ\644\0
+ ^C
+
+whatexec.d has first found that "clear" was run, which has a type that
+begins with "#!" - a script. clear runs "sh" and "tput", both ELF files.
+
+We finish by attempting to run a MZ file, "DOOM.EXE", which is rejected
+(OK is "N").
diff --git a/cddl/contrib/dtracetoolkit/Examples/woof_example.txt b/cddl/contrib/dtracetoolkit/Examples/woof_example.txt
new file mode 100644
index 000000000000..dc8152728114
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/woof_example.txt
@@ -0,0 +1,28 @@
+The following explains how to demonstrate the woof.d DTrace script.
+
+This script is only useful if you have an audio device, /dev/audio. To test
+audio, you can run:
+
+ $ audioplay /usr/share/audio/samples/au/sample.au
+
+The volume can be adjusted from a few tools, including,
+
+ $ /usr/dt/bin/sdtaudiocontrol
+
+...
+
+woof.d will bark whenever a new process is created. In order to demonstrate
+it, first run the following:
+
+ # ./woof.d &
+
+You have now installed the dog (if the dog becomes a nusience, you are
+allowed to kill it). Now compare the difference between these recursive
+grep commands:
+
+ $ find /etc -type f -exec grep localhost {} \;
+
+ $ find /etc -type f -exec grep localhost {} +
+
+The first find command is the "bad way", the second is the "good way". You
+will hear for yourself why this is the case.
diff --git a/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt b/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt
new file mode 100644
index 000000000000..bfc74a90ff34
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt
@@ -0,0 +1,57 @@
+The following is an example of the wpm.d script.
+
+
+This script takes the name of a program to trace, and assumes that reads
+on file descriptor zero (STDIN) are keystrokes.
+
+When run, a 5 second count down begins before keystrokes are measured,
+
+ # wpm.d vim
+ Measuring will start in : 5 seconds
+
+While running, I retyped the first three sentences of this file a few times
+which clocked the following result,
+
+ # wpm.d vim
+ Measuring will start in : 0 seconds
+ Measuring will stop in : 0 seconds
+
+ Characters typed : 509
+ Words per minute : 84
+
+ Minimum keystroke latency : 12 ms
+ Average keystroke latency : 118 ms
+ Maximum keystroke latency : 493 ms
+
+ Word size distribution (letters),
+
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@@ 6
+ 2 |@@@@@ 11
+ 3 |@@@@@ 11
+ 4 |@@@@@@ 13
+ 5 |@@@@ 8
+ 6 |@@@@@@ 12
+ 7 |@@@@@ 11
+ 8 | 0
+ 9 |@@ 4
+ 10 |@ 3
+ 11 |@ 2
+ 12 | 0
+ 13 | 0
+ 14 | 1
+ 15 | 0
+
+ Keystroke latency distribution (ms),
+
+ value ------------- Distribution ------------- count
+ 4 | 0
+ 8 | 1
+ 16 | 5
+ 32 |@@@@@ 66
+ 64 |@@@@@@@@@@@@@@@@@@@@ 247
+ 128 |@@@@@@@@@@@@@ 167
+ 256 |@ 16
+ 512 | 0
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt b/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt
new file mode 100644
index 000000000000..baa83fc971f5
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt
@@ -0,0 +1,26 @@
+The following is a demonstration of the writebytes.d script,
+
+
+Here the writebytes.d script is run for a few seconds, then Ctrl-C is hit,
+
+ # writebytes.d
+ dtrace: description 'sysinfo:::writech ' matched 4 probes
+ ^C
+ dtrace 1
+ gnome-settings-d 8
+ xscreensaver 8
+ gnome-panel 8
+ nautilus 8
+ date 29
+ wnck-applet 120
+ bash 210
+ mozilla-bin 1497
+ ls 1947
+ metacity 3172
+ Xorg 7424
+ gnome-terminal 51955
+
+
+In this interval the gnome-terminal command has successfully written 51.9 Kb,
+while Xorg has written 7424 bytes.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt b/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt
new file mode 100644
index 000000000000..f334843e2c10
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt
@@ -0,0 +1,38 @@
+The following is an example of the writedist.d script,
+
+
+Here the writedist.d script is run for a few seconds, then Ctrl-C is hit,
+
+ # writedist.d
+ dtrace: description 'sysinfo:::writech ' matched 4 probes
+ ^C
+ [...]
+ Xorg
+ value ------------- Distribution ------------- count
+ 16 | 0
+ 32 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 169
+ 64 |@@@ 16
+ 128 |@@ 10
+ 256 | 0
+
+ gnome-terminal
+ value ------------- Distribution ------------- count
+ 0 | 0
+ 1 |@@ 6
+ 2 | 0
+ 4 | 0
+ 8 | 1
+ 16 |@ 2
+ 32 |@@@ 7
+ 64 | 0
+ 128 |@@@@@@@@@@@@@@@@@@@@@@@ 63
+ 256 |@@@@ 10
+ 512 | 1
+ 1024 |@@@@@ 13
+ 2048 |@ 2
+ 4096 |@@@ 7
+
+This allows us to understand the write behaviour of each process. The
+gnome-terminal command has executed 6 writes that returned 0 bytes, through
+to 7 writes that were at least 4096 bytes (up to 8192).
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt b/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt
new file mode 100644
index 000000000000..1593b62de627
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt
@@ -0,0 +1,17 @@
+The following is a demonstration of the xcallsbypid.d script,
+
+ # xcallsbypid.d
+ Tracing... Hit Ctrl-C to end.
+ ^C
+ PID CMD XCALLS
+ 215 utmpd 3
+ 6350 bash 3
+ 6351 bash 3
+ 6350 ls 24
+ 0 sched 48
+ 6349 dtrace 93
+ 6351 find 5718
+
+In the above output, we can see the find command with PID 6351 has caused
+5718 cross calls.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt
new file mode 100644
index 000000000000..544bd985e8bd
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt
@@ -0,0 +1,44 @@
+The following is a demonstration of the xvmstat program.
+
+
+Here we run it with no arguments. It will default to 1 second samples, and
+will run forever,
+
+ # xvmstat
+ w swap free re maj mf cow pro sr epi epo epf api apo apf fpi fpo fpf
+ 0 1025 73 2 0 21 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 199 42 166 21 41 0 0 0 0 0 0 0 42 0 0
+ 0 1025 73 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 4404 47 175 26 30 0 0 0 0 0 0 0 48 0 0
+ 0 1025 73 433 0 0 0 14 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ ^C
+
+Both "swap" and "free" are in units of megabytes, the rest are in units of
+pages. "maj" is major faults - a useful addition to the output.
+
+There is no summary since boot line, as this program in not using the
+Kstat data.
+
+
+
+The following runs xvmstat with a 5 second interval,
+
+ # xvmstat 5
+ w swap free re maj mf cow pro sr epi epo epf api apo apf fpi fpo fpf
+ 0 1025 72 1531 2 40 5 9 0 0 0 0 0 0 0 2 0 0
+ 0 1025 72 1534 0 36 5 9 0 0 0 0 0 0 0 0 0 0
+ 0 1025 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ 0 1025 72 5 1 82 16 25 0 0 0 0 0 0 0 1 0 0
+ 0 1025 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+ ^C
+
+The values from "re" to "fpf" are per second values.
+
diff --git a/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt b/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt
new file mode 100644
index 000000000000..cb070c5d3e58
--- /dev/null
+++ b/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt
@@ -0,0 +1,34 @@
+The following is a demonstration of the zvmstat command, which provides
+vmstat style info per zone using DTrace.
+
+Here we run zvmstat with an interval of 5 seconds. This is a server that
+only has two zones, "global" and "workzone1",
+
+ # zvmstat 5
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 62 340 0 0 0 0 0 0 0 0 0 0 0
+ workzone1 4 2 0 0 0 0 0 0 0 0 0 0 0
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 1132 484 0 0 2 0 0 0 0 0 832 0 0
+ workzone1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 50 319 2 0 2 0 0 0 0 0 579 2 2
+ workzone1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 54 317 0 0 0 0 0 0 0 0 0 0 0
+ workzone1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 54 316 1 0 0 0 0 0 0 0 0 1 1
+ workzone1 0 0 0 0 0 0 0 0 0 0 0 0 0
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 157 659 1 0 10 0 0 0 0 0 3 2 1
+ workzone1 770 1085 0 0 48 0 0 0 0 0 928 0 0
+ ZONE re mf fr sr epi epo epf api apo apf fpi fpo fpf
+ global 56 317 0 0 6 0 0 0 0 0 2 0 0
+ workzone1 1478 21 0 0 0 0 0 0 0 0 1635 0 0
+
+During the first few samples, some filesystem activity can be observed in
+the global zone, created by a "find /" in the global. In the last few samples,
+filesystem activity can be seen in the non-global zone "workzone1" - this
+time created by running a "find /" within the non-global zone,
+