[Midnightbsd-cvs] src [9164] U trunk/cddl/contrib/opensolaris: add dtrace toolkit stuff from freebsd 9.2

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Oct 13 22:22:45 EDT 2016


Revision: 9164
          http://svnweb.midnightbsd.org/src/?rev=9164
Author:   laffer1
Date:     2016-10-13 22:22:44 -0400 (Thu, 13 Oct 2016)
Log Message:
-----------
add dtrace toolkit stuff from freebsd 9.2

Modified Paths:
--------------
    trunk/cddl/contrib/dtracetoolkit/dtruss

Added Paths:
-----------
    trunk/cddl/contrib/dtracetoolkit/Apps/
    trunk/cddl/contrib/dtracetoolkit/Apps/Readme
    trunk/cddl/contrib/dtracetoolkit/Apps/httpdstat.d
    trunk/cddl/contrib/dtracetoolkit/Apps/nfswizard.d
    trunk/cddl/contrib/dtracetoolkit/Apps/shellsnoop
    trunk/cddl/contrib/dtracetoolkit/Apps/weblatency.d
    trunk/cddl/contrib/dtracetoolkit/Bin/
    trunk/cddl/contrib/dtracetoolkit/Bin/anonpgpid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/bitesize.d
    trunk/cddl/contrib/dtracetoolkit/Bin/connections
    trunk/cddl/contrib/dtracetoolkit/Bin/cpudists
    trunk/cddl/contrib/dtracetoolkit/Bin/cputimes
    trunk/cddl/contrib/dtracetoolkit/Bin/cputypes.d
    trunk/cddl/contrib/dtracetoolkit/Bin/cpuwalk.d
    trunk/cddl/contrib/dtracetoolkit/Bin/crash.d
    trunk/cddl/contrib/dtracetoolkit/Bin/creatbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/cswstat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/dappprof
    trunk/cddl/contrib/dtracetoolkit/Bin/dapptrace
    trunk/cddl/contrib/dtracetoolkit/Bin/dexplorer
    trunk/cddl/contrib/dtracetoolkit/Bin/diskhits
    trunk/cddl/contrib/dtracetoolkit/Bin/dispqlen.d
    trunk/cddl/contrib/dtracetoolkit/Bin/dnlcps.d
    trunk/cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d
    trunk/cddl/contrib/dtracetoolkit/Bin/dnlcstat
    trunk/cddl/contrib/dtracetoolkit/Bin/dtruss
    trunk/cddl/contrib/dtracetoolkit/Bin/dvmstat
    trunk/cddl/contrib/dtracetoolkit/Bin/errinfo
    trunk/cddl/contrib/dtracetoolkit/Bin/execsnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/fddist
    trunk/cddl/contrib/dtracetoolkit/Bin/filebyproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/fspaging.d
    trunk/cddl/contrib/dtracetoolkit/Bin/fsrw.d
    trunk/cddl/contrib/dtracetoolkit/Bin/guess.d
    trunk/cddl/contrib/dtracetoolkit/Bin/hotkernel
    trunk/cddl/contrib/dtracetoolkit/Bin/hotspot.d
    trunk/cddl/contrib/dtracetoolkit/Bin/hotuser
    trunk/cddl/contrib/dtracetoolkit/Bin/httpdstat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/icmpstat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/intbycpu.d
    trunk/cddl/contrib/dtracetoolkit/Bin/intoncpu.d
    trunk/cddl/contrib/dtracetoolkit/Bin/inttimes.d
    trunk/cddl/contrib/dtracetoolkit/Bin/iofile.d
    trunk/cddl/contrib/dtracetoolkit/Bin/iofileb.d
    trunk/cddl/contrib/dtracetoolkit/Bin/iopattern
    trunk/cddl/contrib/dtracetoolkit/Bin/iopending
    trunk/cddl/contrib/dtracetoolkit/Bin/iosnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/iotop
    trunk/cddl/contrib/dtracetoolkit/Bin/j_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_calls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_classflow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_events.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_objnew.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_package.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_profile.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_stat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_thread.d
    trunk/cddl/contrib/dtracetoolkit/Bin/j_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_calls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_execs.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_objcpu.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_objgc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_objnew.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_stat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/js_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/kill.d
    trunk/cddl/contrib/dtracetoolkit/Bin/kstat_types.d
    trunk/cddl/contrib/dtracetoolkit/Bin/lastwords
    trunk/cddl/contrib/dtracetoolkit/Bin/loads.d
    trunk/cddl/contrib/dtracetoolkit/Bin/lockbydist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/lockbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/minfbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/minfbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/mmapfiles.d
    trunk/cddl/contrib/dtracetoolkit/Bin/modcalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/newproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/nfswizard.d
    trunk/cddl/contrib/dtracetoolkit/Bin/opensnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/pathopens.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pfilestat
    trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_funccalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/php_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pidpersec.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_subcalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pl_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/priclass.d
    trunk/cddl/contrib/dtracetoolkit/Bin/pridist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/procsystime
    trunk/cddl/contrib/dtracetoolkit/Bin/putnexts.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_funccalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_mallocstk.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_profile.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/py_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_calls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_funccalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_lines.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_objcpu.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_objnew.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_stat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rb_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/readbytes.d
    trunk/cddl/contrib/dtracetoolkit/Bin/readdist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rfileio.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rfsio.d
    trunk/cddl/contrib/dtracetoolkit/Bin/runocc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rwbbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rwbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rwbytype.d
    trunk/cddl/contrib/dtracetoolkit/Bin/rwsnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/rwtop
    trunk/cddl/contrib/dtracetoolkit/Bin/sampleproc
    trunk/cddl/contrib/dtracetoolkit/Bin/sar-c.d
    trunk/cddl/contrib/dtracetoolkit/Bin/seeksize.d
    trunk/cddl/contrib/dtracetoolkit/Bin/setuids.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_calls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_lines.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_pidcolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_stat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_wasted.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sh_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/shellsnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/shortlived.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sigdist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/stacksize.d
    trunk/cddl/contrib/dtracetoolkit/Bin/statsnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/swapinfo.d
    trunk/cddl/contrib/dtracetoolkit/Bin/sysbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/syscallbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/syscallbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/syscallbysysc.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_ins.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_insflow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_proccalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_procflow.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_stat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcl_who.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop
    trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv
    trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcpstat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/tcptop
    trunk/cddl/contrib/dtracetoolkit/Bin/tcptop_snv
    trunk/cddl/contrib/dtracetoolkit/Bin/tcpwdist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/threaded.d
    trunk/cddl/contrib/dtracetoolkit/Bin/topsyscall
    trunk/cddl/contrib/dtracetoolkit/Bin/topsysproc
    trunk/cddl/contrib/dtracetoolkit/Bin/udpstat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/uname-a.d
    trunk/cddl/contrib/dtracetoolkit/Bin/vmbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/vmstat-p.d
    trunk/cddl/contrib/dtracetoolkit/Bin/vmstat.d
    trunk/cddl/contrib/dtracetoolkit/Bin/vopstat
    trunk/cddl/contrib/dtracetoolkit/Bin/weblatency.d
    trunk/cddl/contrib/dtracetoolkit/Bin/whatexec.d
    trunk/cddl/contrib/dtracetoolkit/Bin/woof.d
    trunk/cddl/contrib/dtracetoolkit/Bin/wpm.d
    trunk/cddl/contrib/dtracetoolkit/Bin/writebytes.d
    trunk/cddl/contrib/dtracetoolkit/Bin/writedist.d
    trunk/cddl/contrib/dtracetoolkit/Bin/xcallsbypid.d
    trunk/cddl/contrib/dtracetoolkit/Bin/xvmstat
    trunk/cddl/contrib/dtracetoolkit/Bin/zvmstat
    trunk/cddl/contrib/dtracetoolkit/Code/
    trunk/cddl/contrib/dtracetoolkit/Code/C/
    trunk/cddl/contrib/dtracetoolkit/Code/Java/
    trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_abc.java
    trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_loop.java
    trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/
    trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_clock.html
    trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_slow.html
    trunk/cddl/contrib/dtracetoolkit/Code/Perl/
    trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_abc.pl
    trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_malloc.pl
    trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_slow.pl
    trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello.pl
    trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello_strict.pl
    trunk/cddl/contrib/dtracetoolkit/Code/Php/
    trunk/cddl/contrib/dtracetoolkit/Code/Php/func_abc.php
    trunk/cddl/contrib/dtracetoolkit/Code/Python/
    trunk/cddl/contrib/dtracetoolkit/Code/Python/func_abc.py
    trunk/cddl/contrib/dtracetoolkit/Code/Python/func_slow.py
    trunk/cddl/contrib/dtracetoolkit/Code/Readme
    trunk/cddl/contrib/dtracetoolkit/Code/Ruby/
    trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_abc.rb
    trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_slow.rb
    trunk/cddl/contrib/dtracetoolkit/Code/Shell/
    trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_abc.sh
    trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_slow.sh
    trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_waste.sh
    trunk/cddl/contrib/dtracetoolkit/Code/Tcl/
    trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_abc.tcl
    trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_slow.tcl
    trunk/cddl/contrib/dtracetoolkit/Cpu/
    trunk/cddl/contrib/dtracetoolkit/Cpu/Readme
    trunk/cddl/contrib/dtracetoolkit/Cpu/cputypes.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/cpuwalk.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/dispqlen.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/intbycpu.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/intoncpu.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/inttimes.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/loads.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/runocc.d
    trunk/cddl/contrib/dtracetoolkit/Cpu/xcallsbypid.d
    trunk/cddl/contrib/dtracetoolkit/Disk/
    trunk/cddl/contrib/dtracetoolkit/Disk/Readme
    trunk/cddl/contrib/dtracetoolkit/Disk/bitesize.d
    trunk/cddl/contrib/dtracetoolkit/Disk/diskhits
    trunk/cddl/contrib/dtracetoolkit/Disk/hotspot.d
    trunk/cddl/contrib/dtracetoolkit/Disk/iofile.d
    trunk/cddl/contrib/dtracetoolkit/Disk/iofileb.d
    trunk/cddl/contrib/dtracetoolkit/Disk/iopending
    trunk/cddl/contrib/dtracetoolkit/Disk/seeksize.d
    trunk/cddl/contrib/dtracetoolkit/Docs/
    trunk/cddl/contrib/dtracetoolkit/Docs/Contents
    trunk/cddl/contrib/dtracetoolkit/Docs/Examples
    trunk/cddl/contrib/dtracetoolkit/Docs/Faq
    trunk/cddl/contrib/dtracetoolkit/Docs/History
    trunk/cddl/contrib/dtracetoolkit/Docs/Index
    trunk/cddl/contrib/dtracetoolkit/Docs/Links
    trunk/cddl/contrib/dtracetoolkit/Docs/Maintainer
    trunk/cddl/contrib/dtracetoolkit/Docs/Notes
    trunk/cddl/contrib/dtracetoolkit/Docs/Readme
    trunk/cddl/contrib/dtracetoolkit/Docs/ToDo
    trunk/cddl/contrib/dtracetoolkit/Docs/Who
    trunk/cddl/contrib/dtracetoolkit/Docs/cddl1.txt
    trunk/cddl/contrib/dtracetoolkit/Docs/oneliners.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/
    trunk/cddl/contrib/dtracetoolkit/Examples/Copyright
    trunk/cddl/contrib/dtracetoolkit/Examples/Readme
    trunk/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/connections_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/crash_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/guess_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/kill_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/loads_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/woof_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt
    trunk/cddl/contrib/dtracetoolkit/FS/
    trunk/cddl/contrib/dtracetoolkit/FS/Readme
    trunk/cddl/contrib/dtracetoolkit/FS/fspaging.d
    trunk/cddl/contrib/dtracetoolkit/FS/fsrw.d
    trunk/cddl/contrib/dtracetoolkit/FS/rfileio.d
    trunk/cddl/contrib/dtracetoolkit/FS/rfsio.d
    trunk/cddl/contrib/dtracetoolkit/FS/vopstat
    trunk/cddl/contrib/dtracetoolkit/Guide
    trunk/cddl/contrib/dtracetoolkit/Include/
    trunk/cddl/contrib/dtracetoolkit/Include/Readme
    trunk/cddl/contrib/dtracetoolkit/Include/test.ksh
    trunk/cddl/contrib/dtracetoolkit/Include/time.h
    trunk/cddl/contrib/dtracetoolkit/Include/tostr.h
    trunk/cddl/contrib/dtracetoolkit/Java/
    trunk/cddl/contrib/dtracetoolkit/Java/Readme
    trunk/cddl/contrib/dtracetoolkit/Java/j_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_calls.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_classflow.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_events.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_flow.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_methodcalls.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_objnew.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_package.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_profile.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_stat.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_thread.d
    trunk/cddl/contrib/dtracetoolkit/Java/j_who.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/
    trunk/cddl/contrib/dtracetoolkit/JavaScript/Readme
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calldist.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calls.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calltime.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cputime.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_execs.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flow.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objcpu.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objgc.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objnew.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_stat.d
    trunk/cddl/contrib/dtracetoolkit/JavaScript/js_who.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/
    trunk/cddl/contrib/dtracetoolkit/Kernel/Readme
    trunk/cddl/contrib/dtracetoolkit/Kernel/cpudists
    trunk/cddl/contrib/dtracetoolkit/Kernel/cputimes
    trunk/cddl/contrib/dtracetoolkit/Kernel/cswstat.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcps.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcsnoop.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcstat
    trunk/cddl/contrib/dtracetoolkit/Kernel/kstat_types.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/modcalls.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/priclass.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/pridist.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/putnexts.d
    trunk/cddl/contrib/dtracetoolkit/Kernel/whatexec.d
    trunk/cddl/contrib/dtracetoolkit/License
    trunk/cddl/contrib/dtracetoolkit/Locks/
    trunk/cddl/contrib/dtracetoolkit/Locks/lockbydist.d
    trunk/cddl/contrib/dtracetoolkit/Locks/lockbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Man/
    trunk/cddl/contrib/dtracetoolkit/Man/Readme
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/anonpgpid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/bitesize.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/connections.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpudists.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputimes.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputypes.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpuwalk.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/crash.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/creatbyproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/cswstat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dappprof.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dapptrace.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dexplorer.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/diskhits.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dispqlen.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcps.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcsnoop.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcstat.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dtruss.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/dvmstat.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/errinfo.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/execsnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/fddist.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/filebyproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/fspaging.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/fsrw.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/guess.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotkernel.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotspot.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotuser.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/httpdstat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/icmpstat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/intbycpu.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/intoncpu.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/inttimes.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofile.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofileb.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopattern.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopending.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/iosnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/iotop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_classflow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_events.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_methodcalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_objnew.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_package.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_profile.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_stat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_thread.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_execs.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objcpu.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objgc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objnew.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_stat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/kill.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/kstat_types.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/lastwords.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/loads.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbydist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbyproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbyproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/mmapfiles.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/modcalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/newproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/nfswizard.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/opensnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pathopens.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pfilestat.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbyproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_funccalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_malloc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pidpersec.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_malloc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_subcalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/priclass.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/pridist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/procsystime.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/putnexts.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_funccalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_malloc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_mallocstk.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_profile.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_funccalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_lines.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_malloc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objcpu.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objnew.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_stat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/readbytes.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/readdist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfileio.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfsio.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/runocc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbytype.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwsnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwtop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sampleproc.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sar-c.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/seeksize.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/setuids.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_lines.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_pidcolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_stat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_wasted.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/shellsnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/shortlived.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sigdist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/stacksize.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/statsnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/swapinfo.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/sysbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbyproc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbysysc.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calldist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calltime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cpudist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cputime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flowtime.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_ins.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_insflow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_proccalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_procflow.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_stat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscalls.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscolors.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_who.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpstat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop_snv.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpwdist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/threaded.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsyscall.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsysproc.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/udpstat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/uname-a.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat-p.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/vopstat.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/weblatency.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/whatexec.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/woof.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/wpm.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/writebytes.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/writedist.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/xcallsbypid.d.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/xvmstat.1m
    trunk/cddl/contrib/dtracetoolkit/Man/man1m/zvmstat.1m
    trunk/cddl/contrib/dtracetoolkit/Mem/
    trunk/cddl/contrib/dtracetoolkit/Mem/Readme
    trunk/cddl/contrib/dtracetoolkit/Mem/anonpgpid.d
    trunk/cddl/contrib/dtracetoolkit/Mem/minfbypid.d
    trunk/cddl/contrib/dtracetoolkit/Mem/minfbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbypid.d
    trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Mem/swapinfo.d
    trunk/cddl/contrib/dtracetoolkit/Mem/vmbypid.d
    trunk/cddl/contrib/dtracetoolkit/Mem/vmstat-p.d
    trunk/cddl/contrib/dtracetoolkit/Mem/vmstat.d
    trunk/cddl/contrib/dtracetoolkit/Mem/xvmstat
    trunk/cddl/contrib/dtracetoolkit/Misc/
    trunk/cddl/contrib/dtracetoolkit/Misc/Readme
    trunk/cddl/contrib/dtracetoolkit/Misc/guess.d
    trunk/cddl/contrib/dtracetoolkit/Misc/woof.d
    trunk/cddl/contrib/dtracetoolkit/Misc/wpm.d
    trunk/cddl/contrib/dtracetoolkit/Net/
    trunk/cddl/contrib/dtracetoolkit/Net/Readme
    trunk/cddl/contrib/dtracetoolkit/Net/connections
    trunk/cddl/contrib/dtracetoolkit/Net/icmpstat.d
    trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop
    trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop.d
    trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv
    trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv.d
    trunk/cddl/contrib/dtracetoolkit/Net/tcpstat.d
    trunk/cddl/contrib/dtracetoolkit/Net/tcptop
    trunk/cddl/contrib/dtracetoolkit/Net/tcptop_snv
    trunk/cddl/contrib/dtracetoolkit/Net/tcpwdist.d
    trunk/cddl/contrib/dtracetoolkit/Net/udpstat.d
    trunk/cddl/contrib/dtracetoolkit/Notes/
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLcolors_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLelapsed_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLexclusive_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLfbt_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLflow_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLinclusive_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLjava_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLoncpu_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLoverhead.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLperl_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/ALLsnoop_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/Readme
    trunk/cddl/contrib/dtracetoolkit/Notes/cputimes_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/dappprof_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/dapptrace_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/dtruss_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/iosnoop_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/iotop_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Notes/procsystime_notes.txt
    trunk/cddl/contrib/dtracetoolkit/Perl/
    trunk/cddl/contrib/dtracetoolkit/Perl/Readme
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_flow.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_subcalls.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Perl/pl_who.d
    trunk/cddl/contrib/dtracetoolkit/Php/
    trunk/cddl/contrib/dtracetoolkit/Php/Readme
    trunk/cddl/contrib/dtracetoolkit/Php/php_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_flow.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_funccalls.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Php/php_who.d
    trunk/cddl/contrib/dtracetoolkit/Proc/
    trunk/cddl/contrib/dtracetoolkit/Proc/Readme
    trunk/cddl/contrib/dtracetoolkit/Proc/crash.d
    trunk/cddl/contrib/dtracetoolkit/Proc/creatbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Proc/dappprof
    trunk/cddl/contrib/dtracetoolkit/Proc/dapptrace
    trunk/cddl/contrib/dtracetoolkit/Proc/fddist
    trunk/cddl/contrib/dtracetoolkit/Proc/filebyproc.d
    trunk/cddl/contrib/dtracetoolkit/Proc/kill.d
    trunk/cddl/contrib/dtracetoolkit/Proc/lastwords
    trunk/cddl/contrib/dtracetoolkit/Proc/mmapfiles.d
    trunk/cddl/contrib/dtracetoolkit/Proc/newproc.d
    trunk/cddl/contrib/dtracetoolkit/Proc/pathopens.d
    trunk/cddl/contrib/dtracetoolkit/Proc/pfilestat
    trunk/cddl/contrib/dtracetoolkit/Proc/pidpersec.d
    trunk/cddl/contrib/dtracetoolkit/Proc/readbytes.d
    trunk/cddl/contrib/dtracetoolkit/Proc/readdist.d
    trunk/cddl/contrib/dtracetoolkit/Proc/rwbbypid.d
    trunk/cddl/contrib/dtracetoolkit/Proc/rwbypid.d
    trunk/cddl/contrib/dtracetoolkit/Proc/rwbytype.d
    trunk/cddl/contrib/dtracetoolkit/Proc/sampleproc
    trunk/cddl/contrib/dtracetoolkit/Proc/shortlived.d
    trunk/cddl/contrib/dtracetoolkit/Proc/sigdist.d
    trunk/cddl/contrib/dtracetoolkit/Proc/stacksize.d
    trunk/cddl/contrib/dtracetoolkit/Proc/sysbypid.d
    trunk/cddl/contrib/dtracetoolkit/Proc/syscallbypid.d
    trunk/cddl/contrib/dtracetoolkit/Proc/syscallbyproc.d
    trunk/cddl/contrib/dtracetoolkit/Proc/threaded.d
    trunk/cddl/contrib/dtracetoolkit/Proc/topsysproc
    trunk/cddl/contrib/dtracetoolkit/Proc/writebytes.d
    trunk/cddl/contrib/dtracetoolkit/Proc/writedist.d
    trunk/cddl/contrib/dtracetoolkit/Python/
    trunk/cddl/contrib/dtracetoolkit/Python/Readme
    trunk/cddl/contrib/dtracetoolkit/Python/py_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_flow.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_funccalls.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_mallocstk.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_profile.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Python/py_who.d
    trunk/cddl/contrib/dtracetoolkit/README
    trunk/cddl/contrib/dtracetoolkit/Ruby/
    trunk/cddl/contrib/dtracetoolkit/Ruby/Readme
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calls.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flow.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_funccalls.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_lines.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_malloc.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objcpu.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objnew.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_stat.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Ruby/rb_who.d
    trunk/cddl/contrib/dtracetoolkit/Shell/
    trunk/cddl/contrib/dtracetoolkit/Shell/Readme
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_calls.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_flow.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowinfo.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_lines.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_pidcolors.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_stat.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_wasted.d
    trunk/cddl/contrib/dtracetoolkit/Shell/sh_who.d
    trunk/cddl/contrib/dtracetoolkit/Snippits/
    trunk/cddl/contrib/dtracetoolkit/Snippits/Readme
    trunk/cddl/contrib/dtracetoolkit/Snippits/fd2pathname.txt
    trunk/cddl/contrib/dtracetoolkit/System/
    trunk/cddl/contrib/dtracetoolkit/System/Readme
    trunk/cddl/contrib/dtracetoolkit/System/sar-c.d
    trunk/cddl/contrib/dtracetoolkit/System/syscallbysysc.d
    trunk/cddl/contrib/dtracetoolkit/System/topsyscall
    trunk/cddl/contrib/dtracetoolkit/System/uname-a.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/
    trunk/cddl/contrib/dtracetoolkit/Tcl/Readme
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calldist.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calls.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calltime.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cpudist.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cputime.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flow.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flowtime.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_ins.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_insflow.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_proccalls.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_procflow.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_stat.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscalls.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscolors.d
    trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_who.d
    trunk/cddl/contrib/dtracetoolkit/User/
    trunk/cddl/contrib/dtracetoolkit/User/Readme
    trunk/cddl/contrib/dtracetoolkit/User/setuids.d
    trunk/cddl/contrib/dtracetoolkit/Version
    trunk/cddl/contrib/dtracetoolkit/Zones/
    trunk/cddl/contrib/dtracetoolkit/Zones/Readme
    trunk/cddl/contrib/dtracetoolkit/Zones/zvmstat
    trunk/cddl/contrib/dtracetoolkit/dexplorer
    trunk/cddl/contrib/dtracetoolkit/dvmstat
    trunk/cddl/contrib/dtracetoolkit/errinfo
    trunk/cddl/contrib/dtracetoolkit/execsnoop
    trunk/cddl/contrib/dtracetoolkit/hotkernel
    trunk/cddl/contrib/dtracetoolkit/hotuser
    trunk/cddl/contrib/dtracetoolkit/install
    trunk/cddl/contrib/dtracetoolkit/iopattern
    trunk/cddl/contrib/dtracetoolkit/iosnoop
    trunk/cddl/contrib/dtracetoolkit/iotop
    trunk/cddl/contrib/dtracetoolkit/opensnoop
    trunk/cddl/contrib/dtracetoolkit/procsystime
    trunk/cddl/contrib/dtracetoolkit/rwsnoop
    trunk/cddl/contrib/dtracetoolkit/rwtop
    trunk/cddl/contrib/dtracetoolkit/statsnoop

Property Changed:
----------------
    trunk/cddl/contrib/dtracetoolkit/dtruss
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv4remote.pl
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv6remote.pl
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localicmp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteicmp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6localicmp.ksh
    trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6remoteicmp.ksh
    trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh
    trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh

Added: trunk/cddl/contrib/dtracetoolkit/Apps/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Apps/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Apps/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,5 @@
+Apps - Specific Application based analysis
+
+   These are DTrace scripts that are written to analyse a particular 
+   application or applictaion layer protocol. For example, Apache or NFS
+   scripts would appear here.

Added: trunk/cddl/contrib/dtracetoolkit/Apps/httpdstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Apps/httpdstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Apps/httpdstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,132 @@
+#!/usr/sbin/dtrace -s
+/*
+ * httpdstat.d - realtime httpd statistics. Uses DTrace.
+ *
+ * $Id: httpdstat.d 2 2007-08-01 10:01:43Z brendan $
+ *
+ * USAGE:	httpdstat.d [interval [count]]
+ *
+ *		interval	seconds
+ *		count		number of samples
+ *
+ * FIELDS:
+ *		TIME		Time, string
+ *		NUM		Number of connections
+ *		GET		Number of "GET"s
+ *		POST		Number of "POST"s
+ *		HEAD		Number of "HEAD"s
+ *		TRACE		Number of "TRACE"s
+ *
+ * All of the statistics are printed as a value per interval (not per second).
+ *
+ * NOTE: This version does not process subsequent operations on keepalives.
+ *
+ * IDEA: Ryan Matteson (who first wrote a solution to this).
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 20-Nov-2005	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+/*
+ * Program Start
+ */
+dtrace:::BEGIN
+{
+	num = 0; get = 0; head = 0; post = 0; trac = 0;
+	lines = SCREEN + 1;
+	secs = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %6s %5s %5s %5s\n", "TIME",
+	    "NUM", "GET", "POST", "HEAD", "TRACE");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Track Accept Events
+ */
+syscall::accept:return
+/execname == "httpd"/
+{
+	self->buf = 1;
+}
+
+syscall::read:entry
+/self->buf/
+{
+	self->buf = arg1;
+}
+
+/*
+ * Tally Data
+ */
+syscall::read:return
+/self->buf && arg0/
+{
+	this->str = (char *)copyin(self->buf, arg0);
+	this->str[4] = '\0';
+	get  += stringof(this->str) == "GET " ? 1 : 0;
+	post += stringof(this->str) == "POST" ? 1 : 0;
+	head += stringof(this->str) == "HEAD" ? 1 : 0;
+	trac += stringof(this->str) == "TRAC" ? 1 : 0;
+	num++;
+	self->buf = 0;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %6d %5d %5d %5d\n", walltimestamp,
+	    num, get, post, head, trac);
+	num = 0; get = 0; head = 0; post = 0; trac = 0;
+	secs = $1 ? $1 : 1;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Apps/httpdstat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Apps/nfswizard.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Apps/nfswizard.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Apps/nfswizard.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,102 @@
+#!/usr/sbin/dtrace -s
+/*
+ * nfswizard.d - nfs client activity wizard.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * This examines activity caused by NFS client processes on the same server
+ * that you are running this script on. A detailed report is generated
+ * to explain various details of NFS client activity, including response
+ * times and file access.
+ *
+ * $Id: nfswizard.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:     nfswizard.d    # hit Ctrl-C to end sample
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 02-Dec-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	scriptstart = walltimestamp;
+	timestart = timestamp;
+}
+
+io:nfs::start
+{
+	/* tally file sizes */
+	@file[args[2]->fi_pathname] = sum(args[0]->b_bcount);
+
+	/* time response */
+	start[args[0]->b_addr] = timestamp;
+
+	/* overall stats */
+	@rbytes = sum(args[0]->b_flags & B_READ ? args[0]->b_bcount : 0);
+	@wbytes = sum(args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount);
+	@events = count();
+}
+
+io:nfs::done
+/start[args[0]->b_addr]/
+{
+	/* calculate and save response time stats */
+	this->elapsed = timestamp - start[args[0]->b_addr];
+	@maxtime = max(this->elapsed);
+	@avgtime = avg(this->elapsed);
+	@qnztime = quantize(this->elapsed / 1000);
+}
+
+dtrace:::END
+{
+	/* print header */
+	printf("NFS Client Wizard. %Y -> %Y\n\n", scriptstart, walltimestamp);
+
+	/* print read/write stats */
+	printa("Read:  %@d bytes ", @rbytes);
+	normalize(@rbytes, 1000000);
+	printa("(%@d Mb)\n", @rbytes);
+	printa("Write: %@d bytes ", @wbytes);
+	normalize(@wbytes, 1000000);
+	printa("(%@d Mb)\n\n", @wbytes);
+
+	/* print throughput stats */
+	denormalize(@rbytes);
+	normalize(@rbytes, (timestamp - timestart) / 1000000);
+	printa("Read:  %@d Kb/sec\n", @rbytes);
+	denormalize(@wbytes);
+	normalize(@wbytes, (timestamp - timestart) / 1000000);
+	printa("Write: %@d Kb/sec\n\n", @wbytes);
+
+	/* print time stats */
+	printa("NFS I/O events:    %@d\n", @events);
+	normalize(@avgtime, 1000000);
+	printa("Avg response time: %@d ms\n", @avgtime);
+	normalize(@maxtime, 1000000);
+	printa("Max response time: %@d ms\n\n", @maxtime);
+	printa("Response times (us):%@d\n", @qnztime);
+
+	/* print file stats */
+	printf("Top 25 files accessed (bytes):\n");
+	printf("   %-64s %s\n", "PATHNAME", "BYTES");
+	trunc(@file, 25);
+	printa("   %-64s %@d\n", @file);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Apps/nfswizard.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Apps/shellsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Apps/shellsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Apps/shellsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,268 @@
+#!/usr/bin/sh
+#
+# shellsnoop - A program to print read/write details from shells,
+#	       such as keystrokes and command outputs.
+#	       Written using DTrace (Solaris 10 3/05).
+#
+# This program sounds somewhat dangerous (snooping keystrokes), but is
+# no more so than /usr/bin/truss, and both need root or dtrace privileges to
+# run. In fact, less dangerous, as we only print visible text (not password
+# text, for example). Having said that, it goes without saying that this
+# program shouldn't be used for breeching privacy of other users.
+#
+# This was written as a tool to demonstrate the capabilities of DTrace.
+#
+# $Id: shellsnoop 19 2007-09-12 07:47:59Z brendan $
+#
+# USAGE:	shellsnoop [-hqsv] [-p PID] [-u UID]
+#
+#		-q		# quiet, only print data
+#		-s		# include start time, us
+#		-v		# include start time, string
+#		-p PID		# process ID to snoop
+#		-u UID		# user ID to snoop
+#  eg,
+#		shellsnoop		# default output
+#		shellsnoop -v		# human readable timestamps
+#		shellsnoop -p 1892	# snoop this PID only
+#		shellsnoop -qp 1892	# watch this PID data only
+# 	
+# FIELDS:
+#		UID		User ID
+#		PID		process ID
+#		PPID		parent process ID
+#		COMM		command name
+#		DIR		direction (R read, W write)
+#		TEXT		text contained in the read/write
+#		TIME		timestamp for the command, us
+#		STRTIME		timestamp for the command, string
+#
+# SEE ALSO: ttywatcher
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 28-Mar-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 30-Nov-2005	   "	  "	Fixed trailing buffer text bug.
+# 30-Nov-2005	   "	  "	Fixed sh no keystroke text in quiet bug.
+# 30-Nov-2005	   "	  "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_pid=0; opt_uid=0; opt_time=0; opt_timestr=0; opt_quiet=0; opt_debug=0
+filter=0; pid=0; uid=0
+
+while getopts dhp:qsu:v name
+do
+	case $name in
+	d)	opt_debug=1 ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	q)	opt_quiet=1 ;;
+	s)	opt_time=1 ;;
+	u)	opt_uid=1; uid=$OPTARG ;;
+	v)	opt_timestr=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: shellsnoop [-hqsv] [-p PID] [-u UID]
+		       shellsnoop		# default output
+		                -q		# quiet, only print data
+		                -s		# include start time, us
+		                -v		# include start time, string
+		                -p PID		# process ID to snoop
+		                -u UID		# user ID to snoop
+		END
+		exit 1
+	esac
+done
+
+if [ $opt_quiet -eq 1 ]; then
+	opt_time=0; opt_timestr=0
+fi
+if [ $opt_pid -eq 1 -o $opt_uid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_debug 	= '$opt_debug';
+ inline int OPT_quiet 	= '$opt_quiet';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_uid 	= '$opt_uid';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int FILTER 	= '$filter';
+ inline int PID 	= '$pid';
+ inline int UID 	= '$uid';
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=20hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN /OPT_time == 1/
+ { 
+ 	printf("%-14s ","TIME");
+ }
+ dtrace:::BEGIN /OPT_timestr == 1/
+ { 
+ 	printf("%-20s ","STRTIME");
+ }
+ dtrace:::BEGIN /OPT_quiet == 0/
+ {
+	printf("%5s %5s %8s %3s  %s\n", "PID", "PPID", "CMD", "DIR", "TEXT");
+ }
+
+ /*
+  * Remember this PID is a shell child
+  */
+ syscall::exec:entry, syscall::exece:entry
+ /execname == "sh"   || execname == "ksh"  || execname == "csh"  || 
+  execname == "tcsh" || execname == "zsh"  || execname == "bash"/
+ {
+	child[pid] = 1;
+ 
+	/* debug */
+	this->parent = (char *)curthread->t_procp->p_parent->p_user.u_comm;
+	OPT_debug == 1 ? printf("PID %d CMD %s started. (%s)\n",
+	    pid, execname, stringof(this->parent)) : 1;
+ }
+ syscall::exec:entry, syscall::exece:entry
+ /(OPT_pid == 1 && PID != ppid) || (OPT_uid == 1 && UID != uid)/
+ {
+	/* forget if filtered */
+	child[pid] = 0;
+ }
+
+ /*
+  * Print shell keystrokes
+  */
+ syscall::write:entry, syscall::read:entry
+ /(execname == "sh"   || execname == "ksh"  || execname == "csh"  ||
+  execname == "tcsh" || execname == "zsh"  || execname == "bash")
+  && (arg0 >= 0 && arg0 <= 2)/
+ {
+	self->buf = arg1;
+ }
+ syscall::write:entry, syscall::read:entry
+ /(OPT_pid == 1 && PID != pid) || (OPT_uid == 1 && UID != uid)/
+ {
+	self->buf = 0;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_time == 1/
+ {
+ 	printf("%-14d ", timestamp/1000);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_timestr == 1/
+ {
+	printf("%-20Y ", walltimestamp);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0 && OPT_quiet == 0/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+ 
+	printf("%5d %5d %8s %3s  %s\n", pid, curpsinfo->pr_ppid, execname, 
+	    probefunc == "read" ? "R" : "W", stringof(this->text));
+ }
+ syscall::write:return
+ /self->buf && child[pid] == 0 && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+ }
+ syscall::read:return
+ /self->buf && execname == "sh" && child[pid] == 0 && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && child[pid] == 0/
+ {
+	self->buf = 0;
+ }
+
+ /*
+  * Print command output
+  */
+ syscall::write:entry, syscall::read:entry
+ /child[pid] == 1 && (arg0 == 1 || arg0 == 2)/
+ {
+	self->buf = arg1;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_time == 1/
+ {
+ 	printf("%-14d ", timestamp/1000);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_timestr == 1/
+ {
+	printf("%-20Y ", walltimestamp);
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_quiet == 0/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+ 
+	printf("%5d %5d %8s %3s  %s", pid, curpsinfo->pr_ppid, execname,
+	    probefunc == "read" ? "R" : "W", stringof(this->text));
+ 
+	/* here we check if a newline is needed */
+	this->length = strlen(this->text);
+	printf("%s", this->text[this->length - 1] == '\'\\n\'' ? "" : "\n");
+	self->buf = 0;
+ }
+ syscall::write:return, syscall::read:return
+ /self->buf && OPT_quiet == 1/
+ {
+	this->text = (char *)copyin(self->buf, arg0);
+	this->text[arg0] = '\'\\0\'';
+	printf("%s", stringof(this->text));
+	self->buf = 0;
+ }
+
+ /*
+  *  Cleanup
+  */
+ syscall::rexit:entry
+ {
+	child[pid] = 0;
+
+	/* debug */
+	this->parent = (char *)curthread->t_procp->p_parent->p_user.u_comm;
+	OPT_debug == 1 ? printf("PID %d CMD %s exited. (%s)\n",
+	 pid, execname, stringof(this->parent)) : 1;
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Apps/weblatency.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Apps/weblatency.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Apps/weblatency.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,186 @@
+#!/usr/sbin/dtrace -s
+/*
+ * weblatency.d - website latency statistics.
+ *		  Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: weblatency.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	weblatency.d 	# hit Ctrl-C to end sample
+ *
+ * See the code below for the "BROWSER" variable, which sets the browser
+ * to trace (currently set to "mozilla-bin").
+ *
+ * This is written as an experimental tool, and may not work at all with
+ * your browser.
+ *
+ * FIELDS:
+ *		HOST		Hostname from URL
+ *		NUM		Number of GETs
+ *		AVGTIME(ms)	Average time for response, ms
+ *		MAXTIME(ms)	Maximum time for response, ms
+ *
+ * NOTE:
+ *
+ * The latency measured here is from the browser sending the GET
+ * request to when the browser begins to recieve the response. It
+ * is an overall response time for the client, and encompasses
+ * connection speed delays, DNS lookups, proxy delays, and web server
+ * response time.
+ *
+ * IDEA: Bryan Cantrill (who wrote an elegant version for Sol 10 update 1)
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo:
+ *	Check write fd for socket, not file.
+ *
+ * 30-Nov-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+/* browser's execname */
+inline string BROWSER = "mozilla-bin";
+
+/* maximum expected hostname length + "GET http://" */
+inline int MAX_REQ = 64;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Trace brower request
+ *
+ * This is achieved by matching writes for the browser's execname that
+ * start with "GET", and then timing from the return of the write to
+ * the return of the next read in the same thread. Various stateful flags
+ * are used: self->fd, self->read.
+ *
+ * For performance reasons, I'd like to only process writes that follow a
+ * connect(), however this approach fails to process keepalives.
+ */
+syscall::write:entry
+/execname == BROWSER/
+{
+	self->buf = arg1;
+	self->fd = arg0 + 1;
+	self->nam = "";
+}
+
+syscall::write:return
+/self->fd/
+{
+	this->str = (char *)copyin(self->buf, MAX_REQ);
+	this->str[4] = '\0';
+	self->fd = stringof(this->str) == "GET " ? self->fd : 0;
+}
+
+syscall::write:return
+/self->fd/
+{
+	/* fetch browser request */
+	this->str = (char *)copyin(self->buf, MAX_REQ);
+	this->str[MAX_REQ] = '\0';
+
+	/*
+	 * This unrolled loop strips down a URL to it's hostname.
+	 * We ought to use strtok(), but it's not available on Sol 10 3/05,
+	 * so instead I used dirname(). It's not pretty - it's done so that
+	 * this works on all Sol 10 versions.
+	 */
+	self->req = stringof(this->str);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->req = dirname(self->req);
+	self->nam = strlen(self->req) > 15 ? self->req : self->nam;
+	self->nam = basename(self->nam);
+
+	/* start the timer */
+	start[pid, self->fd - 1] = timestamp;
+	host[pid, self->fd - 1] = self->nam;
+	self->buf = 0;
+	self->fd  = 0;
+	self->req = 0;
+	self->nam = 0;
+}
+
+/* this one wasn't a GET */
+syscall::write:return
+/self->buf/
+{
+	self->buf = 0;
+	self->fd  = 0;
+}
+
+syscall::read:entry
+/execname == BROWSER && start[pid, arg0]/
+{
+	self->fd = arg0 + 1;
+}
+
+/*
+ * Record host details
+ */
+syscall::read:return
+/self->fd/
+{
+	/* fetch details */
+	self->host = stringof(host[pid, self->fd - 1]);
+	this->start = start[pid, self->fd - 1];
+
+	/* save details */
+	@Avg[self->host] = avg((timestamp - this->start)/1000000);
+	@Max[self->host] = max((timestamp - this->start)/1000000);
+	@Num[self->host] = count();
+
+	/* clear vars */
+	start[pid, self->fd - 1] = 0;
+	host[pid, self->fd - 1] = 0;
+	self->host = 0;
+	self->fd = 0;
+}
+
+/*
+ * Output report
+ */
+dtrace:::END
+{
+	printf("%-32s %11s\n", "HOST", "NUM");
+	printa("%-32s %@11d\n", @Num);
+
+	printf("\n%-32s %11s\n", "HOST", "AVGTIME(ms)");
+	printa("%-32s %@11d\n", @Avg);
+
+	printf("\n%-32s %11s\n", "HOST", "MAXTIME(ms)");
+	printa("%-32s %@11d\n", @Max);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Apps/weblatency.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/anonpgpid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/anonpgpid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/anonpgpid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/anonpgpid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/anonpgpid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/bitesize.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/bitesize.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/bitesize.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/bitesize.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/bitesize.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/connections
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/connections	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/connections	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/connections
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/connections
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/cpudists
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/cpudists	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/cpudists	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/cpudists
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/cpudists
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/cputimes
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/cputimes	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/cputimes	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/cputimes
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/cputimes
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/cputypes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/cputypes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/cputypes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/cputypes.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/cputypes.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/cpuwalk.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/cpuwalk.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/cpuwalk.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/cpuwalk.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/cpuwalk.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/crash.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/crash.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/crash.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/crash.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/crash.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/creatbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/creatbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/creatbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/creatbyproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/creatbyproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/cswstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/cswstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/cswstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/cswstat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/cswstat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dappprof
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dappprof	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dappprof	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/dappprof
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dappprof
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dapptrace
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dapptrace	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dapptrace	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/dapptrace
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dapptrace
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dexplorer
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dexplorer	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dexplorer	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../dexplorer
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dexplorer
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/diskhits
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/diskhits	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/diskhits	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/diskhits
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/diskhits
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dispqlen.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dispqlen.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dispqlen.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/dispqlen.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dispqlen.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dnlcps.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dnlcps.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dnlcps.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/dnlcps.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dnlcps.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/dnlcsnoop.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dnlcsnoop.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dnlcstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dnlcstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dnlcstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/dnlcstat
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dnlcstat
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dtruss
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dtruss	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dtruss	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../dtruss
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dtruss
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/dvmstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/dvmstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/dvmstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../dvmstat
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/dvmstat
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/errinfo
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/errinfo	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/errinfo	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../errinfo
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/errinfo
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/execsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/execsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/execsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../execsnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/execsnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/fddist
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/fddist	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/fddist	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/fddist
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/fddist
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/filebyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/filebyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/filebyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/filebyproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/filebyproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/fspaging.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/fspaging.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/fspaging.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../FS/fspaging.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/fspaging.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/fsrw.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/fsrw.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/fsrw.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../FS/fsrw.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/fsrw.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/guess.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/guess.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/guess.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Misc/guess.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/guess.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/hotkernel
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/hotkernel	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/hotkernel	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../hotkernel
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/hotkernel
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/hotspot.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/hotspot.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/hotspot.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/hotspot.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/hotspot.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/hotuser
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/hotuser	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/hotuser	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../hotuser
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/hotuser
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/httpdstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/httpdstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/httpdstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Apps/httpdstat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/httpdstat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/icmpstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/icmpstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/icmpstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/icmpstat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/icmpstat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/intbycpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/intbycpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/intbycpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/intbycpu.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/intbycpu.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/intoncpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/intoncpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/intoncpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/intoncpu.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/intoncpu.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/inttimes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/inttimes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/inttimes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/inttimes.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/inttimes.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/iofile.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/iofile.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/iofile.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/iofile.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/iofile.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/iofileb.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/iofileb.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/iofileb.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/iofileb.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/iofileb.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/iopattern
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/iopattern	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/iopattern	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../iopattern
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/iopattern
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/iopending
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/iopending	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/iopending	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/iopending
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/iopending
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/iosnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/iosnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/iosnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../iosnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/iosnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/iotop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/iotop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/iotop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../iotop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/iotop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_calls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_calls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_classflow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_classflow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_classflow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_classflow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_classflow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_events.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_events.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_events.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_events.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_events.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_methodcalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_methodcalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_objnew.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_objnew.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_objnew.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_objnew.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_objnew.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_package.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_package.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_package.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_package.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_package.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_profile.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_profile.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_profile.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_profile.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_profile.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_stat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_stat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_thread.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_thread.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_thread.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_thread.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_thread.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/j_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/j_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/j_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Java/j_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/j_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_calls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_calls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_execs.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_execs.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_execs.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_execs.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_execs.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_flowinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_flowinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_objcpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_objcpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_objcpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_objcpu.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_objcpu.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_objgc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_objgc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_objgc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_objgc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_objgc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_objnew.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_objnew.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_objnew.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_objnew.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_objnew.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_stat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_stat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/js_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/js_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/js_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../JavaScript/js_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/js_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/kill.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/kill.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/kill.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/kill.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/kill.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/kstat_types.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/kstat_types.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/kstat_types.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/kstat_types.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/kstat_types.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/lastwords
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/lastwords	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/lastwords	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/lastwords
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/lastwords
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/loads.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/loads.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/loads.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/loads.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/loads.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/lockbydist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/lockbydist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/lockbydist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Locks/lockbydist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/lockbydist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/lockbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/lockbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/lockbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Locks/lockbyproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/lockbyproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/minfbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/minfbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/minfbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/minfbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/minfbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/minfbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/minfbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/minfbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/minfbyproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/minfbyproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/mmapfiles.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/mmapfiles.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/mmapfiles.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/mmapfiles.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/mmapfiles.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/modcalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/modcalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/modcalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/modcalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/modcalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/newproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/newproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/newproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/newproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/newproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/nfswizard.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/nfswizard.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/nfswizard.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Apps/nfswizard.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/nfswizard.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/opensnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/opensnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/opensnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../opensnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/opensnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pathopens.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pathopens.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pathopens.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/pathopens.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pathopens.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pfilestat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pfilestat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pfilestat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/pfilestat
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pfilestat
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/pgpginbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/pgpginbyproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pgpginbyproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_flowinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_flowinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_funccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_funccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_funccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_funccalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_funccalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_malloc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_malloc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/php_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/php_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/php_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Php/php_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/php_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pidpersec.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pidpersec.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pidpersec.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/pidpersec.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pidpersec.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_flowinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_malloc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_malloc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_subcalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_subcalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_subcalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_subcalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_subcalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pl_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pl_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pl_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Perl/pl_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pl_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/priclass.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/priclass.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/priclass.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/priclass.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/priclass.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/pridist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/pridist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/pridist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/pridist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/pridist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/procsystime
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/procsystime	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/procsystime	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../procsystime
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/procsystime
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/putnexts.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/putnexts.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/putnexts.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/putnexts.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/putnexts.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_flowinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_flowinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_funccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_funccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_funccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_funccalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_funccalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_malloc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_malloc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_mallocstk.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_mallocstk.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_mallocstk.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_mallocstk.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_mallocstk.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_profile.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_profile.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_profile.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_profile.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_profile.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/py_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/py_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/py_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Python/py_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/py_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_calls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_calls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_flowinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_funccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_funccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_funccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_funccalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_funccalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_lines.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_lines.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_lines.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_lines.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_lines.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_malloc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_malloc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_objcpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_objcpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_objcpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_objcpu.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_objcpu.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_objnew.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_objnew.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_objnew.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_objnew.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_objnew.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_stat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_stat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rb_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rb_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rb_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Ruby/rb_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rb_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/readbytes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/readbytes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/readbytes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/readbytes.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/readbytes.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/readdist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/readdist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/readdist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/readdist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/readdist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rfileio.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rfileio.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rfileio.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../FS/rfileio.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rfileio.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rfsio.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rfsio.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rfsio.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../FS/rfsio.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rfsio.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/runocc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/runocc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/runocc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/runocc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/runocc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rwbbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rwbbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rwbbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/rwbbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rwbbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rwbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rwbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rwbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/rwbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rwbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rwbytype.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rwbytype.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rwbytype.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/rwbytype.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rwbytype.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rwsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rwsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rwsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../rwsnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rwsnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/rwtop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/rwtop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/rwtop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../rwtop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/rwtop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sampleproc
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sampleproc	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sampleproc	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/sampleproc
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sampleproc
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sar-c.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sar-c.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sar-c.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../System/sar-c.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sar-c.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/seeksize.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/seeksize.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/seeksize.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Disk/seeksize.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/seeksize.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/setuids.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/setuids.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/setuids.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../User/setuids.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/setuids.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_calls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_calls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_flowinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_lines.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_lines.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_lines.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_lines.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_lines.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_pidcolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_pidcolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_pidcolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_pidcolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_pidcolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_stat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_stat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_wasted.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_wasted.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_wasted.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_wasted.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_wasted.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sh_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sh_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sh_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Shell/sh_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sh_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/shellsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/shellsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/shellsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Apps/shellsnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/shellsnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/shortlived.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/shortlived.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/shortlived.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/shortlived.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/shortlived.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sigdist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sigdist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sigdist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/sigdist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sigdist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/stacksize.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/stacksize.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/stacksize.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/stacksize.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/stacksize.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/statsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/statsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/statsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../statsnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/statsnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/swapinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/swapinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/swapinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/swapinfo.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/swapinfo.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/sysbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/sysbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/sysbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/sysbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/sysbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/syscallbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/syscallbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/syscallbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/syscallbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/syscallbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/syscallbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/syscallbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/syscallbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/syscallbyproc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/syscallbyproc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/syscallbysysc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/syscallbysysc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/syscallbysysc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../System/syscallbysysc.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/syscallbysysc.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_calldist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calldist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_calls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_calltime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_calltime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_cpudist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cpudist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_cputime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_cputime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_flow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_flowtime.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_flowtime.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_ins.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_ins.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_ins.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_ins.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_ins.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_insflow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_insflow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_insflow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_insflow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_insflow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_proccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_proccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_proccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_proccalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_proccalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_procflow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_procflow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_procflow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_procflow.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_procflow.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_stat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_stat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_syscalls.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscalls.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_syscolors.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_syscolors.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcl_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcl_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Tcl/tcl_who.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcl_who.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcpsnoop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcpsnoop.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcpsnoop_snv
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcpsnoop_snv.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcpsnoop_snv.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcpstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcpstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcpstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcpstat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcpstat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcptop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcptop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcptop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcptop
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcptop
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcptop_snv
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcptop_snv	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcptop_snv	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcptop_snv
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcptop_snv
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/tcpwdist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/tcpwdist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/tcpwdist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/tcpwdist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/tcpwdist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/threaded.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/threaded.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/threaded.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/threaded.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/threaded.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/topsyscall
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/topsyscall	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/topsyscall	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../System/topsyscall
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/topsyscall
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/topsysproc
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/topsysproc	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/topsysproc	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/topsysproc
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/topsysproc
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/udpstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/udpstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/udpstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Net/udpstat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/udpstat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/uname-a.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/uname-a.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/uname-a.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../System/uname-a.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/uname-a.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/vmbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/vmbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/vmbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/vmbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/vmbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/vmstat-p.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/vmstat-p.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/vmstat-p.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/vmstat-p.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/vmstat-p.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/vmstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/vmstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/vmstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/vmstat.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/vmstat.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/vopstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/vopstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/vopstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../FS/vopstat
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/vopstat
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/weblatency.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/weblatency.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/weblatency.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Apps/weblatency.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/weblatency.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/whatexec.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/whatexec.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/whatexec.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Kernel/whatexec.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/whatexec.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/woof.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/woof.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/woof.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Misc/woof.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/woof.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/wpm.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/wpm.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/wpm.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Misc/wpm.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/wpm.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/writebytes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/writebytes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/writebytes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/writebytes.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/writebytes.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/writedist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/writedist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/writedist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Proc/writedist.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/writedist.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/xcallsbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/xcallsbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/xcallsbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Cpu/xcallsbypid.d
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/xcallsbypid.d
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/xvmstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/xvmstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/xvmstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Mem/xvmstat
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/xvmstat
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Bin/zvmstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Bin/zvmstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Bin/zvmstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Zones/zvmstat
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Bin/zvmstat
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_abc.java
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_abc.java	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_abc.java	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,26 @@
+public class Func_abc {
+    public static void func_c() {
+        System.out.println("Function C");
+        try {
+            Thread.currentThread().sleep(1000);
+        } catch (Exception e) { }
+    }
+    public static void func_b() {
+        System.out.println("Function B");
+        try {
+            Thread.currentThread().sleep(1000);
+        } catch (Exception e) { }
+        func_c();    
+    }
+    public static void func_a() {
+        System.out.println("Function A");
+        try {
+            Thread.currentThread().sleep(1000);
+        } catch (Exception e) { }
+        func_b();
+    }
+
+    public static void main(String[] args) {
+        func_a();
+    }
+}

Added: trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_loop.java
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_loop.java	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Java/Func_loop.java	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,19 @@
+public class Func_loop {
+    public static void func_c() {
+        System.out.println("Function C");
+        while (true) {
+        }
+    }
+    public static void func_b() {
+        System.out.println("Function B");
+        func_c();    
+    }
+    public static void func_a() {
+        System.out.println("Function A");
+        func_b();
+    }
+
+    public static void main(String[] args) {
+        func_a();
+    }
+}

Added: trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_clock.html
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_clock.html	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_clock.html	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+<HTML>
+<HEAD>
+<TITLE>func_clock, JavaScript</TITLE>
+<SCRIPT type="text/javascript">
+function func_c() {
+	document.getElementById('now').innerHTML += "Function C<br>"
+	for (i = 0; i < 30000; i++) {
+		j = i + 1
+	}
+}
+
+function func_b() {
+	document.getElementById('now').innerHTML += "Function B<br>"
+	for (i = 0; i < 20000; i++) {
+		j = i + 1
+	}
+	func_c()
+}
+
+function func_a() {
+	document.getElementById('now').innerHTML += "Function A<br>"
+	for (i = 0; i < 10000; i++) {
+		j = i + 1
+	}
+	func_b()
+}
+
+function start() {
+	now = new Date()
+	document.getElementById('now').innerHTML = now + "<br>"
+	func_a()
+	var timeout = setTimeout('start()', 1000)
+}
+</SCRIPT>
+</HEAD>
+<BODY onload="start()">
+<DIV id="now"></DIV>
+</BODY>
+</HTML>


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_clock.html
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/html
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_slow.html
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_slow.html	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_slow.html	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,31 @@
+<HTML>
+<HEAD><TITLE>func_slow, JavaScript</TITLE></HEAD>
+<BODY>
+<SCRIPT type="text/javascript">
+function func_c() {
+	document.write("Function C<br>")
+	for (i = 0; i < 30000; i++) {
+		j = i + 1
+	}
+}
+
+function func_b() {
+	document.write("Function B<br>")
+	for (i = 0; i < 20000; i++) {
+		j = i + 1
+	}
+	func_c()
+}
+
+function func_a() {
+	document.write("Function A<br>")
+	for (i = 0; i < 10000; i++) {
+		j = i + 1
+	}
+	func_b()
+}
+
+func_a()
+</SCRIPT>
+</BODY>
+</HTML>


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/JavaScript/func_slow.html
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/html
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_abc.pl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_abc.pl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_abc.pl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,20 @@
+#!./perl -w
+
+sub func_c {
+    print "Function C\n";
+    sleep 1;
+}
+
+sub func_b {
+    print "Function B\n";
+    sleep 1;
+    func_c();
+}
+
+sub func_a {
+    print "Function A\n";
+    sleep 1;
+    func_b();
+}
+
+func_a();


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_abc.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_malloc.pl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_malloc.pl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_malloc.pl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,18 @@
+#!./perl -w
+
+sub func_c {
+	print "Function C\n";
+}
+
+sub func_b {
+	print "Function B\n";
+	my $b = "B" x 100_000;
+	func_c();
+}
+
+sub func_a {
+	print "Function A\n";
+	func_b();
+}
+
+func_a();


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_malloc.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_slow.pl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_slow.pl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_slow.pl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,20 @@
+#!./perl -w
+
+sub func_c {
+    print "Function C\n";
+    for (my $i = 0; $i < 3000000; $i++) { my $j = $i + 1; }
+}
+
+sub func_b {
+    print "Function B\n";
+    for (my $i = 0; $i < 2000000; $i++) { my $j = $i + 1 ; }
+    func_c();
+}
+
+sub func_a {
+    print "Function A\n";
+    for (my $i = 0; $i < 1000000; $i++) { my $j = $i + 1; }
+    func_b();
+}
+
+func_a();


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Perl/func_slow.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello.pl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello.pl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello.pl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+#!./perl
+
+print "Hello World!\n";


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello_strict.pl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello_strict.pl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello_strict.pl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,5 @@
+#!./perl -w
+
+use strict;
+
+print "Hello World!\n";


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Perl/hello_strict.pl
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Php/func_abc.php
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Php/func_abc.php	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Php/func_abc.php	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,23 @@
+<?php
+function func_c()
+{
+	echo "Function C\n";
+	sleep(1);
+}
+
+function func_b()
+{
+	echo "Function B\n";
+	sleep(1);
+	func_c();
+}
+
+function func_a()
+{
+	echo "Function A\n";
+	sleep(1);
+	func_b();
+}
+
+func_a();
+?>

Added: trunk/cddl/contrib/dtracetoolkit/Code/Python/func_abc.py
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Python/func_abc.py	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Python/func_abc.py	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,19 @@
+#!/usr/bin/python
+
+import time
+
+def func_c():
+	print "Function C"	
+	time.sleep(1)
+
+def func_b():
+	print "Function B"
+	time.sleep(1)
+	func_c()
+
+def func_a():
+	print "Function A"
+	time.sleep(1)
+	func_b()
+
+func_a()


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Python/func_abc.py
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Python/func_slow.py
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Python/func_slow.py	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Python/func_slow.py	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+
+def func_c():
+	print "Function C"
+	i = 0
+	while (i < 3000000):
+		i = i + 1
+		j = i + 1
+
+def func_b():
+	print "Function B"
+	i = 0
+	while (i < 2000000):
+		i = i + 1
+		j = i + 1
+	func_c()
+
+def func_a():
+	print "Function A"
+	i = 0
+	while (i < 1000000):
+		i = i + 1
+		j = i + 1
+	func_b()
+
+func_a()


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Python/func_slow.py
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,16 @@
+Code - Example Programs
+
+   This directory contains example software sorted by language, which may
+   be used as the target for DTrace scripts. These examples are simple and
+   to the point, and are intended as example targets for when learing
+   DTrace.
+
+   Some people attempt to learn DTrace by tracing their complex real
+   world application first. That's the hard way. Try these programs instead,
+   and once you are confident here, move onto harder targets.
+
+   Some of these programs feature in the example files in the /Examples
+   directory.
+
+   This directory does not contain DTrace scripts.
+

Added: trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_abc.rb
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_abc.rb	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_abc.rb	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,20 @@
+#!./ruby -w
+
+def func_c
+  print "Function C\n"
+  sleep 1
+end
+
+def func_b
+  print "Function B\n"
+  sleep 1
+  func_c
+end
+
+def func_a
+  print "Function A\n"
+  sleep 1
+  func_b
+end
+
+func_a


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_abc.rb
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_slow.rb
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_slow.rb	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_slow.rb	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,32 @@
+#!./ruby -w
+
+def func_c
+  print "Function C\n"
+  i = 0
+  while i < 300000
+     i = i + 1
+     j = i + 1
+  end
+end
+
+def func_b
+  print "Function B\n"
+  i = 0
+  while i < 200000
+     i = i + 1
+     j = i + 1
+  end
+  func_c
+end
+
+def func_a
+  print "Function A\n"
+  i = 0
+  while i < 100000
+     i = i + 1
+     j = i + 1
+  end
+  func_b
+end
+
+func_a


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Ruby/func_slow.rb
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_abc.sh
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_abc.sh	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_abc.sh	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,23 @@
+#!./sh
+
+func_c()
+{
+	echo "Function C"
+	sleep 1
+}
+
+func_b()
+{
+	echo "Function B"
+	sleep 1
+	func_c
+}
+
+func_a()
+{
+	echo "Function A"
+	sleep 1
+	func_b
+}
+
+func_a


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_abc.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_slow.sh
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_slow.sh	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_slow.sh	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,35 @@
+#!./sh
+
+func_c()
+{
+	echo "Function C"
+	i=0
+	while [ $i -lt 300 ]
+	do
+		i=`expr $i + 1`
+	done
+}
+
+func_b()
+{
+	echo "Function B"
+	i=0
+	while [ $i -lt 200 ]
+	do
+		i=`expr $i + 1`
+	done
+	func_c
+}
+
+func_a()
+{
+	echo "Function A"
+	i=0
+	while [ $i -lt 100 ]
+	do
+		i=`expr $i + 1`
+	done
+	func_b
+}
+
+func_a


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_slow.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_waste.sh
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_waste.sh	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_waste.sh	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,23 @@
+#!./sh
+
+func_c()
+{
+	/usr/bin/echo "Function C"
+	sleep 1
+}
+
+func_b()
+{
+	/usr/bin/echo "Function B"
+	sleep 1
+	func_c
+}
+
+func_a()
+{
+	/usr/bin/echo "Function A"
+	sleep 1
+	func_b
+}
+
+func_a


Property changes on: trunk/cddl/contrib/dtracetoolkit/Code/Shell/func_waste.sh
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_abc.tcl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_abc.tcl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_abc.tcl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,20 @@
+#!./tclsh
+
+proc func_c {} {
+	puts "Function C"
+	after 1000
+}
+
+proc func_b {} {
+	puts "Function B"
+	after 1000
+	func_c
+}
+
+proc func_a {} {
+	puts "Function A"
+	after 1000
+	func_b
+}
+
+func_a

Added: trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_slow.tcl
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_slow.tcl	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Code/Tcl/func_slow.tcl	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,29 @@
+#!./tclsh
+
+proc func_c {} {
+	puts "Function C"
+	set i 0
+	while {$i < 300000} {
+		set i [expr $i + 1]
+	}
+}
+
+proc func_b {} {
+	puts "Function B"
+	set i 0
+	while {$i < 200000} {
+		set i [expr $i + 1]
+	}
+	func_c
+}
+
+proc func_a {} {
+	puts "Function A"
+	set i 0
+	while {$i < 100000} {
+		set i [expr $i + 1]
+	}
+	func_b
+}
+
+func_a

Added: trunk/cddl/contrib/dtracetoolkit/Cpu/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+Cpu - CPU based analysis
+
+   This would include activity by CPU.

Added: trunk/cddl/contrib/dtracetoolkit/Cpu/cputypes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/cputypes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/cputypes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cputypes.d - list CPU type info.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: cputypes.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	cputypes.d
+ *
+ * FIELDS:
+ *		CPU		CPU ID
+ *		CHIP		chip ID
+ *		PSET		processor set ID
+ *		LGRP		latency group ID
+ *		CLOCK		clock speed, MHz
+ *		TYPE		CPU type
+ *		FPU		floating point identifier types
+ *
+ * SEE ALSO:	psrinfo(1M)
+ *		/usr/include/sys/processor.h
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Jun-2005  Brendan Gregg   Created this.
+ * 27-Jun-2005     "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=64k
+
+dtrace:::BEGIN
+{
+	printf("%4s %4s %4s %4s %6s  %-16s %s\n",
+	    "CPU", "CHIP", "PSET", "LGRP", "CLOCK", "TYPE", "FPU");
+	done[0] = 0;
+}
+
+profile:::profile-10ms
+/done[cpu] == 0/
+{
+	printf("%4d %4d %4d %4d %6d  %-16s %s\n",
+	    cpu, curcpu->cpu_chip, curcpu->cpu_pset,
+	    curcpu->cpu_lgrp, curcpu->cpu_info.pi_clock,
+	    stringof(curcpu->cpu_info.pi_processor_type),
+	    stringof(curcpu->cpu_info.pi_fputypes));
+	done[cpu]++;
+}
+
+profile:::tick-100ms
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/cputypes.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/cpuwalk.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/cpuwalk.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/cpuwalk.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cpuwalk.d - Measure which CPUs a process runs on.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This program is for multi-CPU servers, and can help identify if a process
+ * is running on multiple CPUs concurrently or not.
+ *
+ * $Id: cpuwalk.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	cpuwalk.d [duration]
+ *	   eg,
+ *		cpuwalk.d 10		# sample for 10 seconds
+ *		cpuwalk.d		# sample until Ctrl-C is hit
+ *
+ * FIELDS:
+ *		value		CPU id
+ *		count		Number of 1000 hz samples on this CPU
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 22-Sep-2005  Brendan Gregg   Created this.
+ * 14-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int MAXCPUID = 1024;
+
+dtrace:::BEGIN
+{
+	$1 ? printf("Sampling...\n") :
+	    printf("Sampling... Hit Ctrl-C to end.\n");
+	seconds = 0;
+}
+
+profile:::profile-1000hz
+/pid/
+{
+	@sample[pid, execname] = lquantize(cpu, 0, MAXCPUID, 1);
+}
+
+profile:::tick-1sec
+{
+	seconds++;
+}
+
+profile:::tick-1sec
+/seconds == $1/
+{
+	exit(0);
+}
+
+dtrace:::END
+{
+	printa("\n     PID: %-8d CMD: %s\n%@d", @sample);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/cpuwalk.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/dispqlen.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/dispqlen.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/dispqlen.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,52 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dispqlen.d - dispatcher queue length by CPU.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: dispqlen.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	dispqlen.d		# hit Ctrl-C to end sample
+ *
+ * NOTES: The dispatcher queue length is an indication of CPU saturation.
+ * It is not an indicatior of utilisation - the CPUs may or may not be
+ * utilised when the dispatcher queue reports a length of zero.
+ *
+ * SEE ALSO:    uptime(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Jun-2005  Brendan Gregg   Created this.
+ * 14-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@queue[cpu] =
+	    lquantize(curthread->t_cpu->cpu_disp->disp_nrunnable, 0, 64, 1);
+}
+
+dtrace:::END
+{
+	printa(" CPU %d%@d\n", @queue);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/dispqlen.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/intbycpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/intbycpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/intbycpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+#!/usr/sbin/dtrace -s
+/*
+ * intbycpu.d - interrupts by CPU.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: intbycpu.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	intbycpu.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		CPU		CPU number
+ *		INTERRUPTS	number of interrupts in sample
+ *
+ * This is based on a DTrace OneLiner from the DTraceToolkit.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start { @num[cpu] = count(); }
+
+dtrace:::END
+{
+	printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+	printa("%-16d %@16d\n", @num);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/intbycpu.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/intoncpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/intoncpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/intoncpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * intoncpu.d - print interrupt on-cpu usage.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: intoncpu.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       intoncpu.d      # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		value	Time interrupt thread was on-cpu, ns
+ *		count	Number of occurrences of at least this time
+ *
+ * BASED ON: /usr/demo/dtrace/intr.d
+ *
+ * SEE ALSO: DTrace Guide "sdt Provider" chapter (docs.sun.com)
+ *           intrstat(1M)
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start
+{
+	self->ts = vtimestamp;
+}
+
+sdt:::interrupt-complete
+/self->ts && arg0 != 0/
+{
+	this->devi = (struct dev_info *)arg0;
+	/* this checks the pointer is valid, */
+	self->name = this->devi != 0 ?
+	    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+	this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+	@Time[self->name, this->inst] = quantize(vtimestamp - self->ts);
+	self->name = 0;
+}
+
+dtrace:::END
+{
+	printa("%s%d\n%@d", @Time);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/intoncpu.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/inttimes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/inttimes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/inttimes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,73 @@
+#!/usr/sbin/dtrace -s
+/*
+ * inttimes.d - print interrupt on-cpu time.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: inttimes.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       inttimes.d      # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		DEVICE		instance name of device driver
+ *		TIME (ns)	sum of time spent servicing interrupt (ns)
+ *
+ * BASED ON: /usr/demo/dtrace/intr.d
+ *
+ * SEE ALSO:
+ *          DTrace Guide "sdt Provider" chapter (docs.sun.com)
+ *          intrstat(1M)
+ *
+ * PORTIONS: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sdt:::interrupt-start
+{
+	self->ts = vtimestamp;
+}
+
+sdt:::interrupt-complete
+/self->ts && arg0 != 0/
+{
+	this->devi = (struct dev_info *)arg0;
+	/* this checks the pointer is valid, */
+	self->name = this->devi != 0 ?
+	    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+	this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+	@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+	self->name = 0;
+}
+
+sdt:::interrupt-complete
+{
+	self->ts = 0;
+}
+
+dtrace:::END
+{
+	printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+	printa("%10s%-3d %@16d\n", @num);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/inttimes.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/loads.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/loads.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/loads.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,58 @@
+#!/usr/sbin/dtrace -s
+/*
+ * loads.d - print load averages. Written using DTrace (Solaris 10 3/05).
+ *
+ * These are the same load averages that the "uptime" command prints.
+ * The purpose of this script is to demonstrate fetching these values
+ * from the DTrace language.
+ *
+ * $Id: loads.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	loads.d
+ *
+ * SEE ALSO:	uptime(1)
+ *
+ * The first field is the 1 minute average, the second is the 5 minute,
+ * and the third is the 15 minute average. The value represents the average
+ * number of runnable threads in the system, a value higher than your
+ * CPU (core/hwthread) count may be a sign of CPU saturation.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 10-Jun-2005	Brendan Gregg	Created this.
+ * 10-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	/* fetch load averages */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load5a  = `hp_avenrun[1] / 65536;
+	this->load15a = `hp_avenrun[2] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+	this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+	this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* print load average */
+	printf("%Y,  load average: %d.%02d, %d.%02d, %d.%02d\n",
+	    walltimestamp, this->load1a, this->load1b, this->load5a,
+	    this->load5b, this->load15a, this->load15b);
+
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/loads.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/runocc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/runocc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/runocc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -s
+/*
+ * runocc.d - run queue occupancy by CPU.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints the dispatcher run queue occupancy by CPU each second.
+ * A consistant run queue occupancy is a sign of CPU saturation.
+ *
+ * The value is similar to that seen in "sar -q", however this is
+ * calculated in a more accurate manner - sampling at 1000 Hertz.
+ *
+ * $Id: runocc.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	runocc.d
+ *
+ * FIELDS:
+ *		CPU		cpu ID
+ *		%runocc		% run queue occupancy, sampled at 1000 Hertz
+ *
+ * SEE ALSO: Solaris Internals 2nd Ed, vol 2, CPU chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 02-Mar-2006  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+profile-1000hz
+/curthread->t_cpu->cpu_disp->disp_nrunnable/
+{
+	@qocc[cpu] = count();
+}
+
+profile:::tick-1sec
+{
+	normalize(@qocc, 10);
+	printf("\n%8s %8s\n", "CPU", "%runocc");
+	printa("%8d %@8d\n", @qocc);
+	clear(@qocc);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/runocc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Cpu/xcallsbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Cpu/xcallsbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Cpu/xcallsbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+#!/usr/sbin/dtrace -s
+/*
+ * xcallsbypid.d - CPU cross calls by PID.
+ *                 Writen using DTrace (Solaris 10 3/05).
+ *
+ * $Id: xcallsbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	xcallsbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ * 		CMD		process name
+ *		XCALLS		number of cross calls
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 17-Sep-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo:::xcalls
+{
+	@num[pid, execname] = count();
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "XCALLS");
+	printa("%6d %-16s %@16d\n", @num);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Cpu/xcallsbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Disk/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+Disk - Disk based analysis
+
+   These are scripts that analyse I/O activity that has made it to the disks. 

Added: trunk/cddl/contrib/dtracetoolkit/Disk/bitesize.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/bitesize.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/bitesize.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -s
+/*
+ * bitesize.d - analyse disk I/O size by process.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This produces a report for the size of disk events caused by
+ * processes. These are the disk events sent by the block I/O driver.
+ *
+ * If applications must use the disks, we generally prefer they do so
+ * with large I/O sizes.
+ *
+ * $Id: bitesize.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	bitesize.d	# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		command and argument list
+ *		value		size in bytes
+ *		count		number of I/O operations
+ *
+ * NOTES:
+ *
+ * The application may be requesting smaller sized operations, which
+ * are being rounded up to the nearest sector size or UFS block size.
+ * To analyse what the application is requesting, DTraceToolkit programs
+ * such as Proc/fddist may help.
+ *
+ * SEE ALSO: seeksize.d, iosnoop
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 31-Mar-2004	Brendan Gregg	Created this, build 51.
+ * 10-Oct-2004	   "      "	Rewrote to use the io provider, build 63.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process io start
+ */
+io:::start
+{
+	/* fetch details */
+	this->size = args[0]->b_bcount;
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->size);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printf("\n%8s  %s\n", "PID", "CMD");
+	printa("%8d  %S\n%@d\n", @Size);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Disk/bitesize.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Disk/diskhits
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/diskhits	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/diskhits	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,113 @@
+#!/usr/bin/ksh
+#
+# diskhits - disk access by file offset.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: diskhits 3 2007-08-01 10:50:08Z brendan $
+#
+# This prints how a file was accessed, the locations on a distribution plot.
+# This is for the cache misses only - the file activity that resulted in
+# disk events.
+#
+# USAGE:	diskhits pathname
+#	eg,
+#		diskhits /var/adm/messages
+#
+# FIELDS:
+#		Location (KB)	The file offset of the disk activity, Kbytes.
+#		Size (KB)	Size of the disk activity, Kbytes.
+#		Total RW	Total disk activity, reads + writes.
+#
+# BASED ON: /usr/demo/dtrace/applicat.d
+#
+# SEE ALSO: DTrace Guide "io Provider" chapter (docs.sun.com)
+#           iosnoop (DTraceToolkit)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 08-Jun-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+### Usage
+function usage
+{
+	cat <<-END >&2
+	USAGE: diskhits pathname
+	   eg,
+	       diskhits /var/adm/wtmpx
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# != 1 )); then
+	usage
+fi
+if [[ $1 == "-h" ]]; then
+	usage
+fi
+pathname=$1
+if [[ ! -e $pathname ]]; then
+	print "ERROR2: file $pathname not found" >&2
+	exit 2
+fi
+
+### Calculate output scale
+report_lines=20
+set -- `ls -l $pathname`
+filesize=$5
+(( file_kb_max = filesize / 1024 ))
+(( scale_kb = filesize / (1024 * report_lines) ))
+if (( file_kb_max < 20 )); then file_kb_max=20; fi
+if (( scale_kb < 1 )); then scale_kb=1; fi
+
+#
+#  Run DTrace
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline string PATHNAME = "'$pathname'";
+ inline int FILE_KB_MAX = '$file_kb_max';
+ inline int SCALE_KB = '$scale_kb';
+
+ dtrace:::BEGIN
+ {
+	printf("Tracing... Hit Ctrl-C to end.\n");
+ }
+
+ io:::start
+ /args[2]->fi_pathname == PATHNAME/
+ {
+	this->kb = args[2]->fi_offset == -1 ? -1 : args[2]->fi_offset / 1024;
+	@Location = lquantize(this->kb, 0, FILE_KB_MAX, SCALE_KB);
+	@Size = quantize(args[0]->b_bcount/1024);
+	@Total = sum(args[0]->b_bcount/1024);
+ }
+
+ dtrace:::END
+ {
+	printf("Location (KB),");
+	printa(@Location);
+
+	printf("Size (KB),");
+	printa(@Size);
+
+	printa("Total RW: %@d KB\n", @Total);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Disk/hotspot.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/hotspot.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/hotspot.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,71 @@
+#!/usr/sbin/dtrace -s
+/*
+ * hotspot.d - plot disk event by location, look for hotspots.
+ *             Written in DTrace (Solaris 10 3/05).
+ *
+ * This simple DTrace script determines if disk activity is occuring in
+ * the one place - a "hotspot". This helps us understand the system's usage
+ * of a disk, it does not imply that the existance or not of a hotspot is
+ * good or bad (often may be good, less seeking).
+ *
+ * $Id: hotspot.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       hotspot.d       # hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              Disk            disk instance name
+ *              Major           driver major number
+ *              Minor           driver minor number
+ *              value           location, by megabyte
+ *              count           number of I/O operations
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 07-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int DISK_MB_MAX = 1000000;	/* max size of a single disk */
+inline int REPORT_SCALE_MB = 1000;	/* output step size for report */
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process disk event
+ */
+io:::start
+{
+	this->mb = args[0]->b_blkno / 2048;
+	@Block[args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor] =
+	    lquantize(this->mb, 0, DISK_MB_MAX, REPORT_SCALE_MB);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printa("Disk: %s   Major,Minor: %d,%d\n%@d\n", @Block);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Disk/hotspot.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Disk/iofile.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/iofile.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/iofile.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -s
+/*
+ * iofile.d - I/O wait time by filename and process.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints the total I/O wait times for each filename by process.
+ * This can help determine why an application is performing poorly by
+ * identifying which file they are waiting on, and the total times.
+ * Both disk and NFS I/O are measured.
+ *
+ * $Id: iofile.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	iofile.d	# wait, then hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		CMD		Process name
+ *		TIME		Total wait time for disk events, us
+ *		FILE		File pathname
+ *
+ * BASED ON: /usr/demo/dtrace/iocpu.d
+ *
+ * SEE ALSO: iosnoop, iotop
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 24-Jul-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/* print header */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/* save time at start */
+io:::wait-start
+{
+	self->start = timestamp;
+}
+
+/* process event */
+io:::wait-done
+/self->start/
+{
+	/*
+	 * wait-done is used as we are measing wait times. It also
+	 * is triggered when the correct thread is on the CPU, obviating
+	 * the need to link process details to the start event.
+	 */
+	this->elapsed = timestamp - self->start;
+	@files[pid, execname, args[2]->fi_pathname] = sum(this->elapsed);
+	self->start = 0;
+}
+
+/* print report */
+dtrace:::END
+{
+	normalize(@files, 1000);
+	printf("%6s %-12s %8s %s\n", "PID", "CMD", "TIME", "FILE");
+	printa("%6d %-12.12s %@8d %s\n", @files);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Disk/iofile.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Disk/iofileb.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/iofileb.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/iofileb.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,59 @@
+#!/usr/sbin/dtrace -s
+/*
+ * iofileb.d - I/O bytes by filename and process.
+ *             Written using DTrace (Solaris 10 3/05).
+ *
+ * This prints a summary of requested disk activity by pathname,
+ * providing totals of the I/O events in bytes. It is a companion to the
+ * iofile.d script - which prints in terms of I/O wait time, not bytes.
+ * I/O wait time is a better metric for understanding performance issues.
+ * Both disk and NFS I/O are measured.
+ *
+ * $Id: iofileb.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	iofileb.d	# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command name
+ *		KB	Kilobytes of disk I/O
+ *		FILE	Full pathname of the file
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 20-Feb-2006	Brendan Gregg	Created this.
+ * 20-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+io:::start
+{
+	@files[pid, execname, args[2]->fi_pathname] = sum(args[0]->b_bcount);
+}
+
+dtrace:::END
+{
+	normalize(@files, 1024);
+	printf("%6s %-12s %6s %s\n", "PID", "CMD", "KB", "FILE");
+	printa("%6d %-12.12s %@6d %s\n", @files);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Disk/iofileb.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Disk/iopending
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/iopending	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/iopending	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,261 @@
+#!/usr/bin/ksh
+#
+# iopending - Print a plot for the number of pending disk I/O events.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+# By plotting a distribution graph of the number of pending events, the
+# "serialness" or "parallelness" of disk behaviour can be distinguished.
+#
+# $Id: iopending 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	iopending [-c] [-d device] [-f filename] 
+#		          [-m mount_point] [interval [count]]
+#
+#		-c		# clear the screen
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#	eg,
+#		iopending   	# default output, 5 second intervals
+#		iopending 1  	# 1 second samples
+#		iopending -c	# clear the screen
+#		iopending 5 12	# print 12 x 5 second samples
+# 	
+# FIELDS:
+#		value		number of pending events, 0 == idle
+#		count		number of samples @ 1000 Hz
+#		load		1 min load average
+#		disk_r		total disk read Kbytes for sample
+#		disk_w		total disk write Kbytes for sample
+# 
+# SEE ALSO: iosnoop, iotop
+#
+# IDEA: Dr Rex di Bona (Sydney, Australia)
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 01-Nov-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_clear=0; 
+opt_def=1; filter=0; device=.; filename=.; mount=.
+interval=5; count=-1
+
+### process options
+while getopts cd:f:hm: name
+do
+	case $name in
+	c)	opt_clear=1 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	h|?)	cat <<-END >&2
+		USAGE: iopending [-c] [-d device] [-f filename]
+		                 [-m mount_point] [interval [count]]
+ 
+		                -c              # clear the screen
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		   eg,
+		        iopending         # default output, 5 second samples
+		        iopending 1       # 1 second samples
+		        iopending -m /    # snoop events on filesystem / only
+		        iopending 5 12    # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string CLEAR 	= "'$clearstr'";
+
+ inline int MAX_PENDING = 32;	/* max pending value */
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        disk_r = 0;
+        disk_w = 0;
+        pending = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start,
+ io:genunix::done 
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? this->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? this->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /this->ok/
+ {
+	/* track bytes */
+	disk_r += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	disk_w += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+
+	/* increase event pending count */
+	pending++;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /this->ok/
+ {
+	/* decrease event pending count */
+	pending--;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending < 0/
+ {
+	pending = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ profile:::profile-1000hz
+ {
+	@out = lquantize(pending, 0, MAX_PENDING, 1);
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	disk_r /= 1024;
+	disk_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  disk_r: %6d KB,  disk_w: %6d KB",
+	    walltimestamp, this->load1a, this->load1b, disk_r, disk_w);
+
+	/* print output */
+	printa(@out);
+
+	/* clear data */
+	trunc(@out);
+	disk_r = 0;
+	disk_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Disk/seeksize.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Disk/seeksize.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Disk/seeksize.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,85 @@
+#!/usr/sbin/dtrace -s
+/*
+ * seeksize.d - analyse disk head seek distance by process.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * Disk I/O events caused by processes will in turn cause the disk heads
+ * to seek. This program analyses those seeks, so that we can determine
+ * if processes are causing the disks to seek in a "random" or "sequential"
+ * manner.
+ *
+ * $Id: seeksize.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	seeksize.d		# wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command and argument list
+ *		value	distance in disk blocks (sectors)
+ *		count	number of I/O operations
+ *
+ * SEE ALSO: bitesize.d, iosnoop
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Sep-2004	Brendan Gregg	Created this.
+ * 10-Oct-2004	   "      "	Rewrote to use the io provider.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+self int last[dev_t];
+
+/*
+ * Process io start
+ */
+io:genunix::start
+/self->last[args[0]->b_edev] != 0/
+{
+	/* calculate seek distance */
+	this->last = self->last[args[0]->b_edev];
+	this->dist = (int)(args[0]->b_blkno - this->last) > 0 ?
+	    args[0]->b_blkno - this->last : this->last - args[0]->b_blkno;
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->dist);
+}
+
+io:genunix::start
+{
+	/* save last position of disk head */
+	self->last[args[0]->b_edev] = args[0]->b_blkno +
+	    args[0]->b_bcount / 512;
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printf("\n%8s  %s\n", "PID", "CMD");
+	printa("%8d  %S\n%@d\n", @Size);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Disk/seeksize.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Docs/Contents
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Contents	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Contents	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,152 @@
+Contents - Command Summary
+
+   The following is a list of commands found in the DTraceToolkit, along
+   with their directory location.
+
+Generally commands that end in a ".d" are DTrace scripts, and commands
+that don't are DTrace scripts wrapped in another language (eg, shell
+or Perl). See the Docs/Readme for instructions for finding their docs.
+
+DTraceToolkit/
+   dexplorer		run a series of scripts and archive output
+   dtruss		process syscall info. DTrace truss
+   dvmstat		vmstat by PID/name/command
+   errinfo		report syscall failures with details
+   execsnoop		snoop process execution as it occurs
+   iosnoop		snoop I/O events as they occur
+   iopattern		print disk I/O pattern
+   iotop		display top disk I/O events by process
+   opensnoop		snoop file opens as they occur
+   procsystime		analyse process system call times
+   rwsnoop		snoop read/write events
+   rwtop		display top read/write bytes by process
+   statsnoop		snoop file stats as they occur
+   Apps/
+	httpdstat.d	realtime httpd statistics
+	nfswizard.d	NFS client activity wizard
+	shellsnoop	snoop live shell activity
+	weblatency.d	website latency statistics
+   Cpu/
+	cputypes.d	list CPU types
+	cpuwalk.d	measure which CPUs a process runs on
+	dispqlen.d	dispatcher queue length by CPU
+	intbycpu.d	interrupts by CPU
+	intoncpu.d	interrput on-cpu usage
+	inttimes.d	interrput on-cpu time total
+	loads.d		print load averages
+	runocc.d	run queue occupancy by CPU
+	xcallsbypid.d	CPU cross calls by PID
+   Disk/
+	bitesize.d	print disk event size report
+	diskhits	disk access by file offset
+	hotspot.d	print disk event by location
+	iofile.d	I/O wait time by filename and process
+	iofileb.d	I/O bytes by filename and process
+	iopending	plot number of pending disk events
+	pathopens.d	pathnames successfully opened count
+	seeksize.d	print disk seek size report
+   Docs/
+	oneliners.txt	DTrace oneliners
+   FS/
+	fsrw.d		file system read/write event tracing
+	fspaging.d	file system read/write and paging tracing
+	rfsio.d		read FS I/O stats, with cache miss rate
+	rfileio.d	read file I/O stats, with cache miss rate
+	vopstat		vnode interface statistics
+   Java/
+	j_*.d		18 scripts for tracing Java using the hotspot provider
+   JavaScript/
+	js_*.d		14 scripts for JavaScript with the Mozilla provider
+   Kernel/
+	cputimes	print time by Kernel/Idle/Process
+	cpudists	time distribution by Kernel/Idle/Process
+	cswstat.d	context switch time statistics
+	dnlcps.d	DNLC stats by process
+	dnlcsnoop.d	snoop DNLC activity
+	dnlcstat	DNLC statistics
+	kstat_types.d	trace kstat reads with type info
+	modcalls.d	kernel function calls by module name
+	priclass.d	priority distribution by scheduling class
+	pridist.d	process priority distribution
+	putnexts.d	trace who is putting to which streams module
+	whatexec.d	examine the type of files executed
+   Locks/
+	lockbyproc.d	lock time by process name
+	lockbydist.d	lock time distribution by process name
+   Mem/
+	anonpgpid.d	anonymous memory paging info by PID on CPU
+	minfbypid.d	minor faults by PID
+	minfbyproc.d	minor faults by process name
+	pgpginbypid.d	pages paged in by PID
+	pgpginbyproc.d	pages paged in by process name
+	swapinfo.d	print virtual memory info
+	vmbypid.d	virtual memory stats by PID
+	vmstat.d	vmstat demo using DTrace
+	vmstat-p.d	vmstat -p demo using DTrace
+	xvmstat		extended vmstat demo using DTrace
+   Misc/
+	guess.d		guessing game
+	wpm.d		words per minute tracing
+	woof.d		audio alert for new processes
+   Net/
+	connections	print inbound TCP connections by process
+	icmpstat.d	print ICMP statistics
+	tcpsnoop	snoop TCP network packets by process, Solaris 10 3/05
+	tcpsnoop_snv	snoop TCP network packets by process, Solaris Nevada
+	tcpsnoop.d	snoop TCP network packets by process, Solaris 10 3/05
+	tcpsnoop_snv.d	snoop TCP network packets by process, Solaris Nevada
+	tcpstat.d	print TCP statistics
+	tcptop		display top TCP network packets by PID, Solaris 10 3/05
+	tcptop_snv	display top TCP network packets by PID, Solaris Nevada
+	tcpwdist.d	simple TCP write distribution by process
+	udpstat.d	print UDP statistics
+   Perl/
+	pl_*.d		12 scripts for tracing Perl
+   Php/
+	php_*.d		12 scripts for tracing Php
+   Proc/
+	crash.d		crashed application report
+	creatbyproc.d	snoop file creat() by process name
+	dappprof	profile user and lib function usage
+	dapptrace	trace user and lib function usage
+	fddist		file descriptor usage distribution
+	fileproc.d	snoop files opened by process
+	kill.d		snoop process signals
+	lastwords	print syscalls before exit
+	mmapfiles.d	mmap'd files by process
+	newproc.d	snoop new processes
+	pfilestat	show I/O latency break down by FD
+	pidpersec.d	print new PIDs per sec
+	readbytes.d	read bytes by process name
+	readdist.d	read distribution by process name
+	rwbbypid.d	read/write bytes by PID
+	rwbypid.d	read/write calls by PID
+	rwbytype.d	read/write bytes by vnode type
+	sampleproc	sample processes on the CPUs
+	shortlived.d	check short lived process time
+	sigdist.d	signal distribution by process name
+	stacksize.d	measure stack size for running threads
+	sysbypid.d	system stats by PID
+	syscallbyproc.d	system calls by process name
+	syscallbypid.d	system calls by process ID
+	threaded.d	sample multi-threaded CPU usage
+	topsysproc	display top syscalls by process name
+	writebytes.d	write bytes by process name
+	writedist.d	write distribution by process name
+   Python/
+	py_*.d		14 scripts for tracing Python
+   Shell/
+	sh_*.d		15 scripts for tracing the Bourne shell
+   System/
+	sar-c.d		sar -c demo using DTrace
+	syscallbysysc.d	system calls by system call
+	topsyscall	display top system call type
+	uname-a.d	uname -a demo using DTrace
+   Tcl/
+	tcl_*.d		15 scripts for tracing Tcl
+   User/
+	setuids.d	snoop setuid calls
+   Zones/
+	zvmstat		vmstat info by zone
+
+Total: 230 scripts

Added: trunk/cddl/contrib/dtracetoolkit/Docs/Examples
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Examples	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Examples	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Examples
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Docs/Examples
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Docs/Faq
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Faq	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Faq	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,126 @@
+Faq - Frequently Asked Questions
+
+   The following may serve as a guide to the DTraceToolkit.
+
+16-May-2005, ver 0.30	(first version of the FAQ)
+
+The DTraceToolkit is new, and as such there hasn't been many questions asked.
+This may be better called a "possibly asked questions" :)
+
+
+Questions 
+
+1. Intro
+1.1. What is the DTraceToolkit?
+1.2. Who wrote the DTraceToolkit?
+1.3. Where do I get support?
+1.4. Am I now a performance tuning expert?
+1.5. Will this solve all my performance problems?
+1.6. So the DTraceToolkit *is* DTrace?
+
+2. Toolkit
+2.1. What is in it?
+2.2. What performance effect can the DTraceToolkit cause?
+
+3. Contributing
+3.1. Where do I send bugs?
+
+
+Answers
+
+1. Intro
+
+1.1. What is the DTraceToolkit?
+
+   The DTraceToolkit is a collection of tools written using DTrace for
+   the Solaris 10[tm] OS by Sun Microsystems[tm]. Many of these scripts
+   will also work on OpenSolaris.
+
+1.2. Who wrote the DTraceToolkit?
+
+   Volunteers of the DTrace and OpenSolaris community. Check the scripts
+   themselves, Docs/Contrib, Docs/Who and Docs/History.
+
+1.3. Where do I get support?
+
+   As the DTraceToolkit is a freeware product, there is no official company 
+   offering support for this. Sun Microsystems does not support this. If you 
+   post messages to the DTrace forums found in the Docs/Links file, a 
+   volunteer may help you out.
+
+1.4. Am I now a performance tuning expert?
+
+   The DTraceToolkit does not turn people into performance tuning experts in 
+   the same way that owning a set of golf clubs won't make you a professional
+   golfer. Experience and understanding are necessary. The toolkit certainly
+   helps by fetching the data in an easy way, and also by providing some
+   documentation. So it is valuable, but not magical. 
+
+1.5. Will this solve all my performance problems?
+
+   This is similar to the previous point; the DTraceToolkit is valuable
+   for it's scripts and documentation, but it's no magical product. 
+   Understanding and experience are necessary.
+
+1.6. So the DTraceToolkit *is* DTrace?
+
+   The DTraceToolkit is one use of DTrace, but there is far more to DTrace
+   than just the toolkit. DTrace allows people to write their own customised
+   scripts to solve a wide number of problems. 
+
+   Think of the DTraceToolkit as a starting point. Maybe your problem has
+   a solution in the kit. Maybe changing one of the toolkit programs slightly
+   is what you want. Finally you may need to write your script from scratch.
+
+
+2. Toolkit
+
+2.1. What is in it?
+
+   Read the Guide file for a table of contents, and Docs/Contents for a
+   list of commands.
+
+2.2. What performance effect can the DTraceToolkit cause?
+
+   Enabling DTrace to monitor events has little effect on the system, 
+   especially when compared to the disruptive behaviour of truss (See
+   http://www.brendangregg.com/DTrace/dtracevstruss.html for a comparison).
+
+   It really boils down to how often the events occur that you are monitoring.
+   The following numbers have been provided as an approximation:
+
+   1. Fixed rate scripts. For example, dispqlen.d samples at 1000 hz.
+      The impact will be negligible, close to 0% CPU. (in testing, 0.1% CPU).
+
+   2. Demand rated scripts. For example, iosnoop probes disk I/O events.
+      The impact depends on the rate of events, for many servers the disk
+      events would be slow enough for this to be less than 0.2% CPU. 
+      Scripts such as execsnoop would expect even fewer events, their impact
+      would be close to 0.0% CPU. However scripts that monitor potentially
+      very rapid events will have a greater impact, for example running
+      dapptrace on Xorg (over 6000 lines of output per second) was consuming
+      around 10% of a CPU to do so.
+
+   3. Heavy voodoo scripts. A few scripts in the toolkit must probe either
+      a ton of different events, or very rapid events, or both. They are
+      going to hurt and there is no way around it. Scripts such as cputimes
+      and cpudists trace very frequent events, and can chew around 5% of
+      the CPUs; scripts such as dapptrace and dappprof trace extreamly
+      frequent events, and can chew over 20%.
+
+   There is an emphasis in the DTraceToolkit to write demand rated scripts
+   that measure the fewest events, such that their impact is close to 0.0%
+   CPU usage. Some scripts are fixed rate, which are safer as their impact
+   has a known upper bound, and are most suitable to run in production.
+
+   There are additional notes in Notes/ALLoverhead_notes.txt about the
+   overheads for running DTrace.
+
+
+3. Contributing
+
+3.1. Where do I send bugs?
+
+   The DTraceToolkit maintainer. See the Docs/Maintainer file.
+
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/History
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/History	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/History	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,249 @@
+History - History of the DTraceToolkit
+
+------------------------------------------------------------------------------
+20-Apr-2005	Brendan Gregg	Idea
+	For a while I had thought that a DTrace toolkit would be a nice 
+	idea, but on this day it became clear. I was explaining DTrace to 
+	an SSE from Sun (Canberra, Australia), who had a need for using 
+	DTrace but didn't have the time to sit down and write all the
+	tools he was after. It simply made sense to have a DTrace toolkit
+	that people could download or carry around a copy to use. Some
+	people would write DTrace tools, others would use the toolkit.
+------------------------------------------------------------------------------
+15-May-2005	Brendan Gregg	Version 0.30
+	I had discussed the idea of a DTrace toolkit with the Sun PAE guys in 
+	Adelaide, Australia. It was making more sense now. It would be much
+	like the SE Toolkit, not just due to the large number of sample 
+	scripts provided, but also due to the role it would play: few people
+	wrote SE Toolkit programs, more people used it as a toolkit. While
+	we would like a majority of Solaris users to write DTrace scripts, 
+	the reality is that many would want to use a prewritten toolkit.
+	Today I created the toolkit as version 0.30, with 11 main directories,
+	a dozen scripts, man pages and a structure for documentation.
+------------------------------------------------------------------------------
+16-May-2005	Brendan Gregg	OneLiners
+	I've been using the toolkit for a day now (wow!), and have noticed
+	a few problems I've been fixing. One of them was the dtrace oneliners.
+	I have them in two files, Docs/oneliners.txt and the examples in
+	Docs/Examples/oneliners_examples.txt. The problem is that when I'm
+	looking for a script, I'm looking in Docs/Commands - a list of the
+	seperate script files, or I'm doing an ls or find. Ok, so I've now
+	made each one liner a seperate script. This seems at first pretty
+	silly since they are oneliners and shouldn't deserve an entire script
+	each, but I've found having them as seperate scripts makes them far 
+	easier to find and use. The scripts and man page for each script do 
+	point out the fact that it's a one liner. 
+------------------------------------------------------------------------------
+17-May-2005	Brendan Gregg	Version 0.33
+	Version 0.33 with 33 scripts. Maybe I should make the version number
+	equal the script count. :) I just finished dtruss, dapptrace and
+	dappprof.
+------------------------------------------------------------------------------
+08-Jun-2005	Brendan Gregg	Name changes.
+	I've renamed Docs/Commands to Docs/Contents. I found myself typing
+	"more Docs/Contents" by mistake a lot. ok, maybe it made more sense
+	to call it Contents after all. I've also made a symlink to it called
+	Index.
+------------------------------------------------------------------------------
+08-Jun-2005	Brendan Gregg	Version 0.35
+	Version 0.35 with 35 scripts. Also touched up procsystime and some
+	man pages. Added the CDDL version 1.0.
+------------------------------------------------------------------------------
+09-Jun-2005	Brendan Gregg	Version 0.42
+	Added 7 more scripts.
+------------------------------------------------------------------------------
+14-Jun-2005	Brendan Gregg	Version 0.57
+	Added heaps of new scripts. Now at 57 scripts.
+------------------------------------------------------------------------------
+17-Jun-2005	Brendan Gregg	Version 0.61
+	Restyled many commands.
+------------------------------------------------------------------------------
+28-Jun-2005	Brendan Gregg	Version 0.70
+	Added several commands including dexplorer. Developed a few useful
+	variants of classic scripts while writing dexplorer, and have added
+	them to the toolkit (I kept wanting to run them individually but 
+	not have to run an entire dexplorer).
+------------------------------------------------------------------------------
+25-Jul-2005	Brendan Gregg	Version 0.77
+	Added tcpsnoop.d, tcpsnoop, tcptop.  Because of their addition I have
+	dropped tcpwbytes.d and tcpwlist.  These are complex scripts, but they
+	track TCP in an accurate manner. However! also because they are 
+	complex scripts, I expect they will require maintainence for newer
+	versions of [Open]Solaris, as various probes may change. They will
+	become much more stable once a network provider has been added to
+	DTrace (which may be some time away).
+	Also added iotop, and updated a bunch of scripts. A lot of work went
+	into this version, although the version change doesn't reflect that
+	(I'm still keeping the version number == to number of scripts).
+	Also added rwsnoop, rwtop, and more.
+------------------------------------------------------------------------------
+26-Jul-2005	Brendan Gregg	Version 0.82
+	Many new scripts added, many updates. This is a major release.
+------------------------------------------------------------------------------
+17-Sep-2005	Brendan Gregg	Version 0.83
+	A few scripts have been updated so that they work better.
+	execsnoop, iosnoop, opensnoop and rwsnoop will be more responsive
+	(increased switchrate).
+------------------------------------------------------------------------------
+22-Sep-2005	Brendan Gregg	Version 0.84
+	Some updates, fixed some bugs (cputimes, cpudists). Added cpuwalk.d.
+------------------------------------------------------------------------------
+15-Nov-2005	Brendan Gregg	Sys Admin Magazine
+	Ryan Matteson wrote an article on the DTraceToolkit which has been
+	printed in Sys Admin Magazine, December 2005. It's quite good,
+	and made it as the feature article - which means it will be available
+	online for some time. Thanks Matty, and Sys Admin Magazine!
+	"Observing I/O Behavior with the DTraceToolkit"
+	http://www.samag.com/documents/sam0512a/
+------------------------------------------------------------------------------
+01-Dec-2005	Brendan Gregg	Version 0.88
+	Many scripts were updated. Added the Apps category. I had planned
+	to add some key scripts, but they haven't made it out of testing yet.
+------------------------------------------------------------------------------
+03-Dec-2005	Brendan Gregg	Version 0.89
+	Added nfswisard.d, fixed a minor bug with tcp* tools (see 
+	dtrace-discuss mailing list).
+------------------------------------------------------------------------------
+12-Jan-2006	Brendan Gregg	Version 0.92
+	Added a few scripts including rwbytype.d. Fixed several issues.
+------------------------------------------------------------------------------
+09-Apr-2006	Brendan Gregg	Solaris Internals 2nd Edition
+	In the past few months I have been contributing to Solaris Internals
+	2nd Edition. This book (now two volumes) is really amazing. The 2nd
+	volume does use the DTraceToolkit where appropriate, and covers loads
+	of useful topics. While writing and reviewing material for Solaris
+	Internals, I've had numerous new ideas for DTrace scripts. Not only
+	that, but a few people have managed to send me well styled, carefully
+	tested, well considered DTrace scripts for inclusion in the toolkit.
+------------------------------------------------------------------------------
+20-Apr-2006	Brendan Gregg	TCP bug fixed
+	Stefan Parvu sent me a bug for the tcp* scripts: on build 31+ they
+	error'd on the symbol SS_TCP_FAST_ACCEPT. This symbol was 
+	renamed to SS_DIRECT (I checked the code, they are used in the 
+	same way). Ironically, when I first wrote the scripts I had hardcoded
+	the value 0x00200000, then rewrote it "properly" by importing
+	the header files and using the symbol name. Had I been lazy and left
+	it hardcoded, the bug would never have eventuated. Not to worry,
+	it has returned to being hardcoded, so that it works on all builds
+	(until something else changes).
+------------------------------------------------------------------------------
+21-Apr-2006	Brendan Gregg	Restyled - again!
+	I've been writing the "DTraceToolkit Style Guide", to document
+	the style that these scripts obey. It is quite strict, and sets
+	the bar fairly high. I've been warned that it may cause very few
+	people to ever contribute scripts, which is fine. At some point
+	I'll carefully explain the mentality behind this, but in a nutshell:
+	Users on critical production servers expect the tools to be 
+	accurate, carefully tested, and cause no undocumented harm. 
+------------------------------------------------------------------------------
+22-Apr-2006	Brendan Gregg	Docs changes
+	The "Contrib" file was merged into the "Who" file. In hindsight
+	it is better to keep this data together than to split it up.
+------------------------------------------------------------------------------
+24-Apr-2006	Brendan Gregg	Version 0.96
+	The toolkit now contains 104 scripts, however I'll keep the version
+	number < 1.00 until the dust has settled on these new scripts.
+	There is some special significance with version 1.00, it would 
+	imply that every script had been tested for some time - not that
+	I've just added a few. 
+	There is a new main directory, FS for file system related scripts.
+	There are some interesting scripts in there, from or based on
+	Solaris Internals 2nd ed, vol 2.
+------------------------------------------------------------------------------
+30-Sep-2007	Brendan Gregg	Version 0.99
+	It's been a year and a half since the last release, and a lot has
+	happneed. Firstly, the DTraceToolkit has featured in the Prentice Hall
+	book,
+		Solaris Performance and Tools
+		   DTrace and mdb techniques for Solaris 10 and OpenSolaris
+
+	written by Richard McDougall, Jim Mauro and myself. It is a companion
+	book to "Solaris Internals 2nd edition" by Richard McDougall and
+	Jim Mauro. If you are serious about becomming a DTrace guru,
+	especially on Solaris, then please study both books. (Yes, I realize
+	that many people are using the DTraceToolkit because they don't have
+	the time or don't want to become DTrace gurus; well, so long as
+	you are using DTrace anyway :). The performance book was a great relief
+	to write - since we were able to put to print much performance wisdom
+	and knowledge that was begging to be documented.
+
+	Then, in late 2006 I joined an advanced products engineering team
+	at Sun in San Francisco, a team which includes the three members of
+	team DTrace. It's been a great opportunity to learn from such
+	engineers, and to contribute more directly to DTrace. So far my work
+	has included writing a JavaScript provider, integrated inet_ntoa()
+	style functions into DTrace, and prototying DTrace IP, TCP and UDP
+	providers.
+
+	Working on the network providers is good news for the DTraceToolkit,
+	as it will indirectly help the tcp* scripts become more stable. Yes,
+	those scripts have broken a few more times during the last 18 months,
+	sorry about that, and it will keep happening until we have stable
+	network providers. This is why I only ever wrote three tcp* scripts,
+	and not at least a dozen, which I'd really like to do.
+
+	I did leave my pile of old SPARC and x86 development servers behind
+	in Australia, and brought over a couple of laptops. That has made me
+	more dependant on Stefan for testing the toolkit - especially on SPARC.
+
+	So, it's been about 18 months since the last release, which is 
+	mostly due to having less spare time due to moving countries and
+	learning a new job.
+
+	Michelle from Sun docs has been asking for a newer version of the
+	DTraceToolkit for the OpenSolaris starter kit, which is why I'm
+	releasing this version now and not waiting a few more weeks as	
+	I complete bug fixes.
+
+	So the good and the bad news for this release, starting with the bad,
+
+	Bad: tcpsnoop/tcptop still don't work on some Solaris 10 releases.
+	I've added versions that should work on Solaris Nevada and OpenSolaris
+	for releases from around late 2007. They are likely to break again.
+	The real answer, as always, is for stable nework providers to be
+	integrated into Solaris.
+
+	Many of the exciting new language provider scripts in this release
+	currently require downloading, patching and compling of the language
+	interpreter to get working. See the Readme file in each directory
+	for pointers.
+
+	Good: many more scripts to cover the new DTrace language providers
+	that are available (the DTraceToolkit is now 227 scripts). Many
+	updates to the Notes directory. Bug fixes. Some new categories
+	other than for scripts: Code - for simple programs to DTrace (and
+	for the example files), and Snippits - for useful lumps of DTrace
+	code to copy-n-paste from. The man pages are also making room
+	for documenting both stability and supported operating systems for
+	each script - now that DTrace exists for MacOS X Leopard, the
+	DTraceToolkit will begin supporting multiple operating systems.
+
+	This can be thought of as a developer's release of the DTraceToolkit -
+	to help people start using DTrace with Perl, Python, Ruby, Php, Java,
+	JavaScript, Shell and Tcl. I've written about 15 scripts for each
+	language, to cover the basics and to show the way for deeper analysis.
+	The scripts are also similar from one language to another, having
+	devoleped a tried-and-tested group of scripts for analyzing real world
+	issues - it made sense to repeat these scripts for every language
+	possible. To see what I mean, try reading,
+
+	   Examples/j_cputime_example.txt     Examples/py_cputime_example.txt
+	   Examples/js_cputime_example.txt    Examples/rb_cputime_example.txt
+	   Examples/php_cputime_example.txt   Examples/sh_cputime_example.txt
+	   Examples/pl_cputime_example.txt    Examples/tcl_cputime_example.txt
+
+	You might notice that the example files are more clearly and carefully
+	explained. Claire (my wife), wrote close to one hundred of them for
+	this release while I focused on writing and testing the scripts.
+	Claire has worked as a SysAdmin and as an IT instructor, and is well
+	skilled at explaining relavent technical details. And she can spell
+	much better than I can. :)
+
+	The future: I still have many new scripts and some bug fixes in mind,
+	as well as generally improving the Notes and Examples provided.
+	Hopefully it won't be too many months before you see another
+	release. Check here for the lastest installment,
+
+	http://www.opensolaris.org/os/community/dtrace/dtracetoolkit
+------------------------------------------------------------------------------
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/Index
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Index	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Index	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link Contents
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Docs/Index
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Docs/Links
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Links	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Links	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,30 @@
+Links - DTrace links
+
+   http://www.opensolaris.org/os/community/dtrace/dtracetoolkit
+	DTraceToolkit Home
+
+   http://www.opensolaris.org/os/community/dtrace
+	OpenSolaris DTrace site
+
+   http://www.brendangregg.com/dtrace.html
+	DTraceToolkit
+	DTrace Tools
+
+   http://www.sun.com/bigadmin/content/dtrace
+	DTrace site on BigAdmin
+
+   http://docs.sun.com/db/doc/817-6223
+	DTrace Guide (answerbook)
+
+   http://blogs.sun.com/roller/page/bmc
+	Bryan Cantrill's Blog (DTrace Team)
+
+   http://blogs.sun.com/roller/page/ahl
+	Adam Leventhal's Blog (DTrace Team)
+
+   http://blogs.sun.com/mws
+	Mike Shapiro's Blog (DTrace Team)
+
+   http://www.solarisinternals.com/si/dtrace/index.php
+	DTrace scripts by Richard McDougall
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/Maintainer
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Maintainer	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Maintainer	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,6 @@
+Maintainer - The DTraceToolkit Author and Maintainer,
+
+	Brendan Gregg 
+	brendan at sun.com		(or see website below for emailaddr)
+	http://www.brendangregg.com
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/Notes
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Notes	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Notes	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link ../Notes
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Docs/Notes
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Docs/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,21 @@
+Docs - DTraceToolkit Documentation
+
+   Docs/Contents	summary of toolkit commands
+   Examples		examples of command usage
+   Notes		notes on commands
+
+The following may be followed to learn about a DTraceToolkit command,
+
+	1. read "Contents" for a command name and toolkit location.
+	2. run the command with "-h" to check it's usage.
+	3. read the manpage from Man/man1m.
+	4. read the examples from Examples.
+	5. read the notes from Notes.
+	6. read the script itself
+
+Try the following to discover all docs related to a command, eg iosnoop,
+
+	find . | grep iosnoop
+
+best run from the DTraceToolkit root directory.
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/ToDo
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/ToDo	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/ToDo	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,7 @@
+ToDo - To Do List
+
+   The following is a list of todo reminders for the DTraceToolkit.
+
+* Run PHP examples on mediawiki.
+
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/Who
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/Who	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/Who	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,74 @@
+Who - Who the Contributers are
+
+   This is a record of contributors to the DTraceToolkit whose name isn't 
+   already mentioned (such as in the source of a script). 
+
+
+In alphabetical first-name order,
+
+Adam Leventhal
+	Location: CA, USA
+	Blog:     http://blogs.sun.com/ahl
+	wrote DTrace itself
+
+Ben Rockwood
+	Location: CA, USA
+	Website:  http://www.cuddletech.com
+	first encouraged the idea of DTrace oneliners
+
+Brendan Gregg
+	Location: Sydney, Australia
+	Website:  http://www.brendangregg.com
+	Email:    brendan.gregg at tpg.com.au (maybe, check the website above)
+	Blog:     http://bdgregg.blogspot.com
+	Notes:    Also see http://www.brendangregg.com/dtrace.html
+	created toolkit, tools, manpages, example docs, notes docs, testing
+
+Bryan Cantrill
+	Location: CA, USA
+	Blog:     http://blogs.sun.com/bmc
+	wrote DTrace itself
+
+David Rubio
+	technical advice
+
+James Dickens
+	Location: WI, USA
+	Blog:     http://uadmin.blogspot.com
+	tool ideas and testing
+
+Jonathan Adams
+	Blog:     http://blogs.sun.com/jwadams
+	wrote stacksize.d
+	
+Mike Shapiro
+	Location: CA, USA
+	Blog:     http://blogs.sun.com/mws
+	wrote DTrace itself
+
+Nathan Kroenert
+	Location: Sydney, Australia
+	thoughts on how to present tools
+
+Richard McDougall
+	Location: CA, USA
+	Website:  http://www.solarisinternals.com
+	Blog:     http://blogs.sun.com/rmc
+	wrote pfilestat, vopstat
+
+Ryan Matteson
+	Location: USA
+	Blog:     http://blogomatty.blogspot.com
+	tool ideas and testing
+
+Stefan Parvu
+	Blog:     http://stefanparvu.blogspot.com
+	suggestions, bug fixes, extensive testing
+
+unknown Sun people
+	wrote /usr/demo/dtrace tools, which some of the toolkit tools are
+	based on. See "BASED ON" in source or man page, or try the following,
+		cd Bin
+		grep 'BASED ON' *
+	for a list.
+

Added: trunk/cddl/contrib/dtracetoolkit/Docs/cddl1.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/cddl1.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/cddl1.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,385 @@
+
+COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
+
+
+      1. Definitions.
+
+            1.1. \xD2Contributor\xD3 means each individual or entity that
+            creates or contributes to the creation of Modifications.
+
+            1.2. \xD2Contributor Version\xD3 means the combination of the
+            Original Software, prior Modifications used by a
+            Contributor (if any), and the Modifications made by that
+            particular Contributor.
+
+            1.3. \xD2Covered Software\xD3 means (a) the Original Software, or
+            (b) Modifications, or (c) the combination of files
+            containing Original Software with files containing
+            Modifications, in each case including portions thereof.
+
+            1.4. \xD2Executable\xD3 means the Covered Software in any form
+            other than Source Code. 
+
+            1.5. \xD2Initial Developer\xD3 means the individual or entity
+            that first makes Original Software available under this
+            License. 
+            
+            1.6. \xD2Larger Work\xD3 means a work which combines Covered
+            Software or portions thereof with code not governed by the
+            terms of this License.
+
+            1.7. \xD2License\xD3 means this document.
+
+            1.8. \xD2Licensable\xD3 means having the right to grant, to the
+            maximum extent possible, whether at the time of the initial
+            grant or subsequently acquired, any and all of the rights
+            conveyed herein.
+            
+            1.9. \xD2Modifications\xD3 means the Source Code and Executable
+            form of any of the following: 
+
+                  A. Any file that results from an addition to,
+                  deletion from or modification of the contents of a
+                  file containing Original Software or previous
+                  Modifications; 
+
+                  B. Any new file that contains any part of the
+                  Original Software or previous Modification; or 
+
+                  C. Any new file that is contributed or otherwise made
+                  available under the terms of this License.
+
+            1.10. \xD2Original Software\xD3 means the Source Code and
+            Executable form of computer software code that is
+            originally released under this License. 
+
+            1.11. \xD2Patent Claims\xD3 means any patent claim(s), now owned
+            or hereafter acquired, including without limitation,
+            method, process, and apparatus claims, in any patent
+            Licensable by grantor. 
+
+            1.12. \xD2Source Code\xD3 means (a) the common form of computer
+            software code in which modifications are made and (b)
+            associated documentation included in or with such code.
+
+            1.13. \xD2You\xD3 (or \xD2Your\xD3) means an individual or a legal
+            entity exercising rights under, and complying with all of
+            the terms of, this License. For legal entities, \xD2You\xD3
+            includes any entity which controls, is controlled by, or is
+            under common control with You. For purposes of this
+            definition, \xD2control\xD3 means (a) the power, direct or
+            indirect, to cause the direction or management of such
+            entity, whether by contract or otherwise, or (b) ownership
+            of more than fifty percent (50%) of the outstanding shares
+            or beneficial ownership of such entity.
+
+      2. License Grants. 
+
+            2.1. The Initial Developer Grant.
+
+            Conditioned upon Your compliance with Section 3.1 below and
+            subject to third party intellectual property claims, the
+            Initial Developer hereby grants You a world-wide,
+            royalty-free, non-exclusive license: 
+
+                  (a) under intellectual property rights (other than
+                  patent or trademark) Licensable by Initial Developer,
+                  to use, reproduce, modify, display, perform,
+                  sublicense and distribute the Original Software (or
+                  portions thereof), with or without Modifications,
+                  and/or as part of a Larger Work; and 
+
+                  (b) under Patent Claims infringed by the making,
+                  using or selling of Original Software, to make, have
+                  made, use, practice, sell, and offer for sale, and/or
+                  otherwise dispose of the Original Software (or
+                  portions thereof). 
+
+                  (c) The licenses granted in Sections 2.1(a) and (b)
+                  are effective on the date Initial Developer first
+                  distributes or otherwise makes the Original Software
+                  available to a third party under the terms of this
+                  License. 
+
+                  (d) Notwithstanding Section 2.1(b) above, no patent
+                  license is granted: (1) for code that You delete from
+                  the Original Software, or (2) for infringements
+                  caused by: (i) the modification of the Original
+                  Software, or (ii) the combination of the Original
+                  Software with other software or devices. 
+
+            2.2. Contributor Grant.
+
+            Conditioned upon Your compliance with Section 3.1 below and
+            subject to third party intellectual property claims, each
+            Contributor hereby grants You a world-wide, royalty-free,
+            non-exclusive license:
+
+                  (a) under intellectual property rights (other than
+                  patent or trademark) Licensable by Contributor to
+                  use, reproduce, modify, display, perform, sublicense
+                  and distribute the Modifications created by such
+                  Contributor (or portions thereof), either on an
+                  unmodified basis, with other Modifications, as
+                  Covered Software and/or as part of a Larger Work; and
+                  
+
+                  (b) under Patent Claims infringed by the making,
+                  using, or selling of Modifications made by that
+                  Contributor either alone and/or in combination with
+                  its Contributor Version (or portions of such
+                  combination), to make, use, sell, offer for sale,
+                  have made, and/or otherwise dispose of: (1)
+                  Modifications made by that Contributor (or portions
+                  thereof); and (2) the combination of Modifications
+                  made by that Contributor with its Contributor Version
+                  (or portions of such combination). 
+
+                  (c) The licenses granted in Sections 2.2(a) and
+                  2.2(b) are effective on the date Contributor first
+                  distributes or otherwise makes the Modifications
+                  available to a third party. 
+
+                  (d) Notwithstanding Section 2.2(b) above, no patent
+                  license is granted: (1) for any code that Contributor
+                  has deleted from the Contributor Version; (2) for
+                  infringements caused by: (i) third party
+                  modifications of Contributor Version, or (ii) the
+                  combination of Modifications made by that Contributor
+                  with other software (except as part of the
+                  Contributor Version) or other devices; or (3) under
+                  Patent Claims infringed by Covered Software in the
+                  absence of Modifications made by that Contributor. 
+
+      3. Distribution Obligations.
+
+            3.1. Availability of Source Code.
+
+            Any Covered Software that You distribute or otherwise make
+            available in Executable form must also be made available in
+            Source Code form and that Source Code form must be
+            distributed only under the terms of this License. You must
+            include a copy of this License with every copy of the
+            Source Code form of the Covered Software You distribute or
+            otherwise make available. You must inform recipients of any
+            such Covered Software in Executable form as to how they can
+            obtain such Covered Software in Source Code form in a
+            reasonable manner on or through a medium customarily used
+            for software exchange.
+
+            3.2. Modifications.
+
+            The Modifications that You create or to which You
+            contribute are governed by the terms of this License. You
+            represent that You believe Your Modifications are Your
+            original creation(s) and/or You have sufficient rights to
+            grant the rights conveyed by this License.
+
+            3.3. Required Notices.
+
+            You must include a notice in each of Your Modifications
+            that identifies You as the Contributor of the Modification.
+            You may not remove or alter any copyright, patent or
+            trademark notices contained within the Covered Software, or
+            any notices of licensing or any descriptive text giving
+            attribution to any Contributor or the Initial Developer.
+
+            3.4. Application of Additional Terms.
+
+            You may not offer or impose any terms on any Covered
+            Software in Source Code form that alters or restricts the
+            applicable version of this License or the recipients\xD5
+            rights hereunder. You may choose to offer, and to charge a
+            fee for, warranty, support, indemnity or liability
+            obligations to one or more recipients of Covered Software.
+            However, you may do so only on Your own behalf, and not on
+            behalf of the Initial Developer or any Contributor. You
+            must make it absolutely clear that any such warranty,
+            support, indemnity or liability obligation is offered by
+            You alone, and You hereby agree to indemnify the Initial
+            Developer and every Contributor for any liability incurred
+            by the Initial Developer or such Contributor as a result of
+            warranty, support, indemnity or liability terms You offer.
+          
+
+            3.5. Distribution of Executable Versions.
+
+            You may distribute the Executable form of the Covered
+            Software under the terms of this License or under the terms
+            of a license of Your choice, which may contain terms
+            different from this License, provided that You are in
+            compliance with the terms of this License and that the
+            license for the Executable form does not attempt to limit
+            or alter the recipient\xD5s rights in the Source Code form
+            from the rights set forth in this License. If You
+            distribute the Covered Software in Executable form under a
+            different license, You must make it absolutely clear that
+            any terms which differ from this License are offered by You
+            alone, not by the Initial Developer or Contributor. You
+            hereby agree to indemnify the Initial Developer and every
+            Contributor for any liability incurred by the Initial
+            Developer or such Contributor as a result of any such terms
+            You offer.
+
+            3.6. Larger Works.
+
+            You may create a Larger Work by combining Covered Software
+            with other code not governed by the terms of this License
+            and distribute the Larger Work as a single product. In such
+            a case, You must make sure the requirements of this License
+            are fulfilled for the Covered Software. 
+            
+      4. Versions of the License. 
+
+            4.1. New Versions.
+
+            Sun Microsystems, Inc. is the initial license steward and
+            may publish revised and/or new versions of this License
+            from time to time. Each version will be given a
+            distinguishing version number. Except as provided in
+            Section 4.3, no one other than the license steward has the
+            right to modify this License. 
+
+            4.2. Effect of New Versions.
+
+            You may always continue to use, distribute or otherwise
+            make the Covered Software available under the terms of the
+            version of the License under which You originally received
+            the Covered Software. If the Initial Developer includes a
+            notice in the Original Software prohibiting it from being
+            distributed or otherwise made available under any
+            subsequent version of the License, You must distribute and
+            make the Covered Software available under the terms of the
+            version of the License under which You originally received
+            the Covered Software. Otherwise, You may also choose to
+            use, distribute or otherwise make the Covered Software
+            available under the terms of any subsequent version of the
+            License published by the license steward. 
+
+            4.3. Modified Versions.
+
+            When You are an Initial Developer and You want to create a
+            new license for Your Original Software, You may create and
+            use a modified version of this License if You: (a) rename
+            the license and remove any references to the name of the
+            license steward (except to note that the license differs
+            from this License); and (b) otherwise make it clear that
+            the license contains terms which differ from this License.
+            
+
+      5. DISCLAIMER OF WARRANTY.
+
+      COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN \xD2AS IS\xD3
+      BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
+      INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
+      SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
+      PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
+      PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
+      COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
+      INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
+      ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
+      WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+      ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
+      DISCLAIMER. 
+
+      6. TERMINATION. 
+
+            6.1. This License and the rights granted hereunder will
+            terminate automatically if You fail to comply with terms
+            herein and fail to cure such breach within 30 days of
+            becoming aware of the breach. Provisions which, by their
+            nature, must remain in effect beyond the termination of
+            this License shall survive.
+
+            6.2. If You assert a patent infringement claim (excluding
+            declaratory judgment actions) against Initial Developer or
+            a Contributor (the Initial Developer or Contributor against
+            whom You assert such claim is referred to as \xD2Participant\xD3)
+            alleging that the Participant Software (meaning the
+            Contributor Version where the Participant is a Contributor
+            or the Original Software where the Participant is the
+            Initial Developer) directly or indirectly infringes any
+            patent, then any and all rights granted directly or
+            indirectly to You by such Participant, the Initial
+            Developer (if the Initial Developer is not the Participant)
+            and all Contributors under Sections 2.1 and/or 2.2 of this
+            License shall, upon 60 days notice from Participant
+            terminate prospectively and automatically at the expiration
+            of such 60 day notice period, unless if within such 60 day
+            period You withdraw Your claim with respect to the
+            Participant Software against such Participant either
+            unilaterally or pursuant to a written agreement with
+            Participant.
+
+            6.3. In the event of termination under Sections 6.1 or 6.2
+            above, all end user licenses that have been validly granted
+            by You or any distributor hereunder prior to termination
+            (excluding licenses granted to You by any distributor)
+            shall survive termination.
+
+      7. LIMITATION OF LIABILITY.
+
+      UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+      (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
+      INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
+      COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
+      LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
+      CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
+      LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
+      STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+      COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+      INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+      LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
+      INJURY RESULTING FROM SUCH PARTY\xD5S NEGLIGENCE TO THE EXTENT
+      APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
+      NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
+      CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
+      APPLY TO YOU.
+
+      8. U.S. GOVERNMENT END USERS.
+
+      The Covered Software is a \xD2commercial item,\xD3 as that term is
+      defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of \xD2commercial
+      computer software\xD3 (as that term is defined at 48 C.F.R. \xA4
+      252.227-7014(a)(1)) and \xD2commercial computer software
+      documentation\xD3 as such terms are used in 48 C.F.R. 12.212 (Sept.
+      1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
+      through 227.7202-4 (June 1995), all U.S. Government End Users
+      acquire Covered Software with only those rights set forth herein.
+      This U.S. Government Rights clause is in lieu of, and supersedes,
+      any other FAR, DFAR, or other clause or provision that addresses
+      Government rights in computer software under this License.
+
+      9. MISCELLANEOUS.
+
+      This License represents the complete agreement concerning subject
+      matter hereof. If any provision of this License is held to be
+      unenforceable, such provision shall be reformed only to the
+      extent necessary to make it enforceable. This License shall be
+      governed by the law of the jurisdiction specified in a notice
+      contained within the Original Software (except to the extent
+      applicable law, if any, provides otherwise), excluding such
+      jurisdiction\xD5s conflict-of-law provisions. Any litigation
+      relating to this License shall be subject to the jurisdiction of
+      the courts located in the jurisdiction and venue specified in a
+      notice contained within the Original Software, with the losing
+      party responsible for costs, including, without limitation, court
+      costs and reasonable attorneys\xD5 fees and expenses. The
+      application of the United Nations Convention on Contracts for the
+      International Sale of Goods is expressly excluded. Any law or
+      regulation which provides that the language of a contract shall
+      be construed against the drafter shall not apply to this License.
+      You agree that You alone are responsible for compliance with the
+      United States export administration regulations (and the export
+      control laws and regulation of any other countries) when You use,
+      distribute or otherwise make available any Covered Software.
+
+      10. RESPONSIBILITY FOR CLAIMS.
+
+      As between Initial Developer and the Contributors, each party is
+      responsible for claims and damages arising, directly or
+      indirectly, out of its utilization of rights under this License
+      and You agree to work with Initial Developer and Contributors to
+      distribute such responsibility on an equitable basis. Nothing
+      herein is intended or shall be deemed to constitute any admission
+      of liability.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Docs/cddl1.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Docs/oneliners.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Docs/oneliners.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Docs/oneliners.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,81 @@
+#
+#   DTrace OneLiners
+#
+
+DTrace One Liners,
+
+# New processes with arguments,
+dtrace -n 'proc:::exec-success { trace(curpsinfo->pr_psargs); }'
+ 
+# Files opened by process name,
+dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+
+# Files created using creat() by process name,
+dtrace -n 'syscall::creat*:entry { printf("%s %s",execname,copyinstr(arg0)); }'
+ 
+# Syscall count by process name,
+dtrace -n 'syscall:::entry { @num[execname] = count(); }'
+ 
+# Syscall count by syscall,
+dtrace -n 'syscall:::entry { @num[probefunc] = count(); }'
+ 
+# Syscall count by process ID,
+dtrace -n 'syscall:::entry { @num[pid,execname] = count(); }'
+
+# Read bytes by process name,
+dtrace -n 'sysinfo:::readch { @bytes[execname] = sum(arg0); }'
+ 
+# Write bytes by process name,
+dtrace -n 'sysinfo:::writech { @bytes[execname] = sum(arg0); }'
+ 
+# Read size distribution by process name,
+dtrace -n 'sysinfo:::readch { @dist[execname] = quantize(arg0); }'
+ 
+# Write size distribution by process name,
+dtrace -n 'sysinfo:::writech { @dist[execname] = quantize(arg0); }'
+ 
+# Disk size by process ID,
+dtrace -n 'io:::start { printf("%d %s %d",pid,execname,args[0]->b_bcount); }'
+
+# Disk size aggregation
+dtrace -n 'io:::start { @size[execname] = quantize(args[0]->b_bcount); }'
+
+# Pages paged in by process name,
+dtrace -n 'vminfo:::pgpgin { @pg[execname] = sum(arg0); }'
+ 
+# Minor faults by process name,
+dtrace -n 'vminfo:::as_fault { @mem[execname] = sum(arg0); }'
+ 
+# Interrupts by CPU,
+dtrace -n 'sdt:::interrupt-start { @num[cpu] = count(); }'
+
+# CPU cross calls by process name,
+dtrace -n 'sysinfo:::xcalls { @num[execname] = count(); }'
+ 
+# Lock time by process name,
+dtrace -n 'lockstat:::adaptive-block { @time[execname] = sum(arg1); }'
+ 
+# Lock distribution by process name,
+dtrace -n 'lockstat:::adaptive-block { @time[execname] = quantize(arg1); }'
+
+# Kernel funtion calls by module
+dtrace -n 'fbt:::entry { @calls[probemod] = count(); }'
+
+# Stack size for processes
+dtrace -n 'sched:::on-cpu { @[execname] = max(curthread->t_procp->p_stksize);}'
+
+# Kill all top processes when they are invoked,
+dtrace -wn 'syscall::exece:return /execname == "top"/ { raise(9); }'
+
+
+
+DTrace Longer One Liners,
+
+# New processes with arguments and time,
+dtrace -qn 'syscall::exec*:return { printf("%Y %s\n",walltimestamp,curpsinfo->pr_psargs); }'
+ 
+# Successful signal details,
+dtrace -n 'proc:::signal-send /pid/ { printf("%s -%d %d",execname,args[2],args[1]->pr_pid); }'
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Docs/oneliners.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/Copyright
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/Copyright	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/Copyright	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+The examples in this directory are copyright to their author.

Added: trunk/cddl/contrib/dtracetoolkit/Examples/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 :)
+

Added: trunk/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/anonpgpid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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        
+   
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/bitesize_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/connections_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/connections_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/connections_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/connections_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/cpudists_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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!
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/cputimes_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/cputypes_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/cpuwalk_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/crash_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/crash_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/crash_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/crash_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/creatbyproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/cswstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dappprof_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dapptrace_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dexplorer_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/diskhits_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dispqlen_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dnlcps_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dnlcsnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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%. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dnlcstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dtruss_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/dvmstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/errinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+  [...]
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/execsnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/fddist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/filebyproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/fspaging_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/fsrw_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/guess_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/guess_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/guess_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/guess_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/hotkernel_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/hotspot_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/hotuser_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/httpdstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/icmpstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/intbycpu_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/intoncpu_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/inttimes_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/iofile_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/iofileb_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/iopattern_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/iopending_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+[...]
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/iosnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/iotop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_calls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_classflow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_events_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_methodcalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_objnew_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_package_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_profile_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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".
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_stat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_thread_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/j_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_calls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_execs_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_flowinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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        
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_objcpu_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_objgc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_objnew_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_stat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/js_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/kill_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/kill_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/kill_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/kill_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/kstat_types_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/lastwords_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/loads_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/loads_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/loads_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/loads_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+   
+   
+   


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/lockbydist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+ 
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/lockbyproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/minfbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/minfbyproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 at 0:zero
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/mmapfiles_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/modcalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/newproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/nfswizard_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/oneliners_examples.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+  [...]


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/opensnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 at 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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pathopens_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 at 0,0/pci-ide at 1f,1/ide at 0/cmdk at 0,0
+        write       4        3% /devices/pseudo/mm at 0:null
+      waitcpu       0        7%
+      running       0       16%
+      sleep-r       0       69%
+   
+        STATE   FDNUM      KB/s Filename
+        write       4     53479 /devices/pseudo/mm at 0:null
+         read       3     53479 /devices/pci at 0,0/pci-ide at 1f,1/ide at 0/cmdk at 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 at 0:null
+      waitcpu       0        8%
+      running       0       15%
+      sleep-r       0       18%
+         read       3       53% /devices/pci at 0,0/pci-ide at 1f,1/ide at 0/cmdk at 0,0
+   
+        STATE   FDNUM      KB/s Filename
+         read       3     53492 /devices/pci at 0,0/pci-ide at 1f,1/ide at 0/cmdk at 0,0
+        write       4     53492 /devices/pseudo/mm at 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 at 0:zero
+      waitcpu       0        7%
+      running       0       17%
+         read       3       24% /devices/pci at 1f,0/pci at 1,1/ide at 3/dad at 0,0:a
+      sleep-r       0       54%
+   
+        STATE   FDNUM      KB/s Filename
+         read       3     13594 /devices/pci at 1f,0/pci at 1,1/ide at 3/dad at 0,0:a
+        write       4     13606 /devices/pseudo/mm at 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 at 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 at 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 at 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 at 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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pfilestat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pgpginbyproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_flowinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_funccalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_malloc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/php_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pidpersec_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_malloc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_subcalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pl_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/priclass_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/pridist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/procsystime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/putnexts_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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        
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_flowinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_funccalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_malloc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_mallocstk_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_profile_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/py_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_calls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.   


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_funccalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_lines_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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        
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_malloc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_objcpu_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_objnew_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_stat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rb_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/readbytes_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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). 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/readdist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 at 0:ptm                               logical          4
+   /usr/bin/grep                                             logical          4
+   /devices/pseudo/pts at 0:3                                   logical          4
+   /extra1/contents                                         physical       1700
+   /extra1/contents                                          logical      11582
+   
+   Read Bandwidth, top 20 (bytes)
+   /devices/pseudo/pts at 0:3                                   logical          3
+   /devices/pseudo/clone at 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).


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rfileio_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.  


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rfsio_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/runocc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rwbbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rwbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rwbytype_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 at 0:ptm
+       0  20320 bash         W       1 /devices/pseudo/pts at 0:12
+     100  20334 sshd         R       2 /devices/pseudo/clone at 0:ptm
+     100  20334 sshd         W      52 <unknown>
+       0   2848 ls           W      58 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      68 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      57 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      67 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      48 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      49 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      33 /devices/pseudo/pts at 0:12
+       0   2848 ls           W      41 /devices/pseudo/pts at 0:12
+     100  20334 sshd         R     429 /devices/pseudo/clone at 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 at 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 at 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 at 0:14
+     100   2854 bash         R       1 /devices/pseudo/pts at 0:14
+     100   2854 bash         W       1 /devices/pseudo/pts at 0:14
+     100   2854 bash         W      41 /devices/pseudo/pts at 0:14
+     100   2854 bash         R       1 /devices/pseudo/pts at 0:14
+     100   2854 bash         W       7 /devices/pseudo/pts at 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
+   [...]
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rwsnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/rwtop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sampleproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sar-c_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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  
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/seeksize_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/setuids_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_calls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_lines_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_pidcolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_stat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_wasted_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sh_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/shellsnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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".
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/shortlived_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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). 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sigdist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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:
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/stacksize_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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 at 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 at 0:null 
+       0    803 rpc.rstatd     0 /devices/pseudo/udp at 0:udp 
+       0    803 rpc.rstatd     0 /devices/pseudo/udp at 0:udp 
+     100    795 sdtperfmeter   0 /devices/pseudo/mm at 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 at 0:null 
+     100    783 ttsession      0 /devices/pseudo/pts at 0:3 
+     100    783 ttsession      0 /devices/pseudo/pts at 0:3 
+     100    783 ttsession      0 /devices/pseudo/pts at 0:3 
+     100    791 dtwm           0 /devices/pseudo/mm at 0:null 
+     100    783 ttsession      0 /devices/pseudo/pts at 0:3 
+     100    783 ttsession      0 /devices/pseudo/pts at 0:3 
+     100    791 dtwm           0 /devices/pseudo/mm at 0:null 
+     100    791 dtwm           0 /devices/pseudo/mm at 0:null 
+     100    792 dtfile         0 /devices/pseudo/mm at 0:null 
+     100    783 ttsession      0 /devices/pseudo/pts at 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 at 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 at 0:8 
+     100   1493 bash           0 /devices/pseudo/pts at 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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/statsnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/swapinfo_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/sysbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/syscallbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/syscallbyproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/syscallbysysc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calldist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_calltime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cpudist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_cputime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_flowtime_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_ins_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_insflow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_proccalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_procflow_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_stat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscalls_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_syscolors_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcl_who_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_d_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+   [...]
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link tcpsnoop_d_example.txt
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_d_example.txt
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link tcpsnoop_example.txt
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcpsnoop_snv_example.txt
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcpstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link tcptop_example.txt
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcptop_snv_example.txt
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/tcpwdist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/threaded_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/topsyscall_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/topsysproc_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/udpstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/uname-a_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/vmbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/vmstat-p_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/vmstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/vopstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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).
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/weblatency_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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").


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/whatexec_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/woof_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/woof_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/woof_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/woof_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/wpm_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/writebytes_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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). 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/writedist_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/xcallsbypid_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/xvmstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -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,
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Examples/zvmstat_example.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/FS/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/FS/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/FS/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+FS - File System based analysis
+
+   This would include VFS and UFS activity.

Added: trunk/cddl/contrib/dtracetoolkit/FS/fspaging.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/FS/fspaging.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/FS/fspaging.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,154 @@
+#!/usr/sbin/dtrace -s
+/*
+ * fspaging.d - file system read/write and paging tracing.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This traces file related activity: system call reads and writes,
+ * vnode logical read and writes (fop), vnode putpage and getpage activity,
+ * and disk I/O. It can be used to examine the behaviour of each I/O
+ * layer, from the syscall interface to what the disk is doing. Behaviour
+ * such as read-ahead, and max I/O size breakup can be observed.
+ *
+ * This is a verbose version of fsrw.d, as this also traces paging activity.
+ *
+ * $Id: fspaging.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	fspaging.d
+ *
+ * FIELDS:
+ *		Event		Traced event (see EVENTS below)
+ *		Device		Device, for disk I/O
+ *		RW		Either Read or Write
+ *		Size		Size of I/O in bytes, if known
+ *		Offset		Offset of I/O in kilobytes, if known
+ *		Path		Path to file on disk
+ *
+ * EVENTS:
+ *		sc-read		System call read
+ *		sc-write	System call write
+ *		fop_read	Logical read
+ *		fop_write	Logical write
+ *		fop_getpage	Logical get page
+ *		fop_putpage	Logical put page
+ *		disk_io		Physical disk I/O
+ *		disk_ra		Physical disk I/O, read ahead
+ *
+ * The events are drawn with a level of indentation, which can sometimes
+ * help identify related events.
+ *
+ * SEE ALSO: fsrw.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo: readv()
+ *
+ * 20-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+dtrace:::BEGIN
+{
+	printf("%-13s %10s %2s %8s %6s %s\n",
+	    "Event", "Device", "RW", "Size", "Offset", "Path");
+}
+
+syscall::*read:entry,
+syscall::*write*:entry
+{
+	/*
+	 * starting with a file descriptior, dig out useful info
+	 * from the corresponding file_t and vnode_t.
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)arg0 * (uint64_t)sizeof (uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	self->offset = this->filep->f_offset;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+	self->sc_trace = this->vnodep ? this->vnodep->v_type == 1 ||
+	    this->vnodep->v_type == 2 ? 1 : 0 : 0;
+}
+
+syscall::*read:entry
+/self->sc_trace/
+{
+	printf("sc-%-10s %10s %2s %8d %6d %s\n", probefunc, ".", "R",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*write*:entry
+/self->sc_trace/
+{
+	printf("sc-%-10s %10s %2s %8d %6d %s\n", probefunc, ".", "W",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*read:return,
+syscall::*write*:return
+{
+	self->vpath = 0;
+	self->offset = 0;
+	self->sc_trace = 0;
+}
+
+fbt::fop_putpage:entry,
+fbt::fop_getpage:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-11s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_getpage" ? "R" : "W", (uint64_t)arg2,
+	    args[1] / 1024, cleanpath(args[0]->v_path));
+}
+
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-11s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_read" ? "R" : "W", args[1]->uio_resid,
+	    args[1]->_uio_offset._f / 1024, cleanpath(args[0]->v_path));
+}
+
+fbt:ufs:ufs_getpage_ra:entry
+{
+	/* fetch the real offset (file_t is unaware of this) */
+	self->offset = ((inode_t *)args[0]->v_data)->i_nextrio;
+	self->read_ahead = 1;
+}
+
+fbt:ufs:ufs_getpage_ra:return
+{
+	self->read_ahead = 0;
+	self->offset = 0;
+}
+
+io::bdev_strategy:start
+{
+	this->offset = self->read_ahead ? self->offset : args[2]->fi_offset;
+	printf("    %-9s %10s %2s %8d %6d %s\n",
+	    self->read_ahead ? "disk_ra" : "disk_io", args[1]->dev_statname,
+	    args[0]->b_flags & B_READ ? "R" : "W", args[0]->b_bcount,
+	    this->offset / 1024, args[2]->fi_pathname);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/FS/fspaging.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/FS/fsrw.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/FS/fsrw.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/FS/fsrw.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,149 @@
+#!/usr/sbin/dtrace -s
+/*
+ * fsrw.d - file system read/write event tracing.
+ *          Written using DTrace (Solaris 10 3/05)
+ *
+ * This traces file related activity: system call reads and writes,
+ * vnode logical read and writes (fop), and disk I/O. It can be used
+ * to examine the behaviour of each I/O layer, from the syscall
+ * interface to what the disk is doing. Behaviour such as read-ahead, and
+ * max I/O size breakup can be observed.
+ *
+ * $Id: fsrw.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	fsrw.d
+ *
+ * FIELDS:
+ *		Event		Traced event (see EVENTS below)
+ *		Device		Device, for disk I/O
+ *		RW		Either Read or Write
+ *		Size		Size of I/O in bytes
+ *		Offset		Offset of I/O in kilobytes
+ *		Path		Path to file on disk
+ *
+ * EVENTS:
+ *		sc-read		System call read
+ *		sc-write	System call write
+ *		fop_read	Logical read
+ *		fop_write	Logical write
+ *		disk_io		Physical disk I/O
+ *		disk_ra		Physical disk I/O, read ahead
+ *
+ * The events are drawn with a level of indentation, which can sometimes
+ * help identify related events.
+ *
+ * SEE ALSO: fspaging.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * ToDo: readv()
+ *
+ * 20-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+dtrace:::BEGIN
+{
+	printf("%-12s %10s %2s %8s %6s %s\n",
+	    "Event", "Device", "RW", "Size", "Offset", "Path");
+}
+
+syscall::*read:entry,
+syscall::*write*:entry
+{
+	/*
+	 * starting with a file descriptior, dig out useful info
+	 * from the corresponding file_t and vnode_t.
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)arg0 * (uint64_t)sizeof (uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	self->offset = this->filep->f_offset;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/* only trace activity to regular files and directories, as */
+	self->sc_trace = this->vnodep ? this->vnodep->v_type == VREG ||
+	    this->vnodep->v_type == VDIR ? 1 : 0 : 0;
+}
+
+syscall::*read:entry
+/self->sc_trace/
+{
+	printf("sc-%-9s %10s %2s %8d %6d %s\n", probefunc, ".", "R",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*write*:entry
+/self->sc_trace/
+{
+	printf("sc-%-9s %10s %2s %8d %6d %s\n", probefunc, ".", "W",
+	    (int)arg2, self->offset / 1024, self->vpath);
+}
+
+syscall::*read:return,
+syscall::*write*:return
+{
+	self->vpath = 0;
+	self->offset = 0;
+	self->sc_trace = 0;
+}
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+/self->sc_trace && args[0]->v_path/
+{
+	printf("  %-10s %10s %2s %8d %6d %s\n", probefunc, ".",
+	    probefunc == "fop_read" ? "R" : "W", args[1]->uio_resid,
+	    args[1]->_uio_offset._f / 1024, cleanpath(args[0]->v_path));
+}
+
+fbt:ufs:ufs_getpage_ra:entry
+{
+	/* fetch the real offset (file_t is unaware of this) */
+	self->ra_offset = ((inode_t *)args[0]->v_data)->i_nextrio;
+	self->read_ahead = 1;
+}
+
+fbt:ufs:ufs_getpage_ra:return
+{
+	self->read_ahead = 0;
+	self->ra_offset = 0;
+}
+
+io::bdev_strategy:start
+{
+	this->offset = self->read_ahead ? self->ra_offset : args[2]->fi_offset;
+	printf("    %-8s %10s %2s %8d %6d %s\n",
+	    self->read_ahead ? "disk_ra" : "disk_io", args[1]->dev_statname,
+	    args[0]->b_flags & B_READ ? "R" : "W", args[0]->b_bcount,
+	    this->offset / 1024, args[2]->fi_pathname);
+	/*
+	 * it would seem to make sense to only trace disk events during
+	 * an fop event, easily coded with a self->fop_trace flag. However
+	 * writes are asynchronous to the fop_write calls (they are flushed
+	 * at some later time), and so this approach will miss tracing
+	 * most of the disk writes.
+	 */
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/FS/fsrw.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/FS/rfileio.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/FS/rfileio.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/FS/rfileio.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rfileio.d - read file I/O stats, with cache miss rate.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This script provides statistics on the number of reads and the bytes
+ * read from filesystems (logical), and the number of bytes read from
+ * disk (physical). A summary is printed every five seconds by file.
+ *
+ * A total miss-rate is also provided for the file system cache.
+ *
+ * $Id: rfileio.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	rfileio.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 19-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+self int trace;
+uint64_t lbytes;
+uint64_t pbytes;
+
+dtrace:::BEGIN
+{
+	trace("Tracing...\n");
+}
+
+fbt::fop_read:entry
+/self->trace == 0 && args[0]->v_path/
+{
+	self->pathname = cleanpath(args[0]->v_path);
+	@rio[self->pathname, "logical"] = count();
+	lbytes += args[1]->uio_resid;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->size/
+{
+	@rbytes[self->pathname, "logical"] =
+	    sum(self->size - self->uiop->uio_resid);
+	self->size = 0;
+	self->uiop = 0;
+	self->pathname = 0;
+}
+
+io::bdev_strategy:start
+/self->size && args[0]->b_flags & B_READ/
+{
+	@rio[self->pathname, "physical"] = count();
+	@rbytes[self->pathname, "physical"] = sum(args[0]->b_bcount);
+	pbytes += args[0]->b_bcount;
+}
+
+profile:::tick-5s
+{
+	trunc(@rio, 20);
+	trunc(@rbytes, 20);
+	printf("\033[H\033[2J");
+	printf("\nRead IOPS, top 20 (count)\n");
+	printa("%-54s %10s %10 at d\n", @rio);
+	printf("\nRead Bandwidth, top 20 (bytes)\n");
+	printa("%-54s %10s %10 at d\n", @rbytes);
+	printf("\nTotal File System miss-rate: %d%%\n",
+	    lbytes ? 100 * pbytes / lbytes : 0);
+	trunc(@rbytes);
+	trunc(@rio);
+	lbytes = pbytes = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/FS/rfileio.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/FS/rfsio.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/FS/rfsio.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/FS/rfsio.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,98 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rfsio.d - read FS I/O stats, with cache miss rate.
+ *           Written using DTrace (Solaris 10 3/05)
+ *
+ * This script provides statistics on the number of reads and the bytes
+ * read from filesystems (logical), and the number of bytes read from
+ * disk (physical). A summary is printed every five seconds by filesystem.
+ *
+ * A total miss-rate is also provided for the file system cache.
+ *
+ * $Id: rfsio.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	rfsio.d
+ *
+ * IDEA: Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 19-Mar-2006  Brendan Gregg   Created this.
+ * 23-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+self int trace;
+uint64_t lbytes;
+uint64_t pbytes;
+
+dtrace:::BEGIN
+{
+	trace("Tracing...\n");
+}
+
+fbt::fop_read:entry
+/self->trace == 0/
+{
+	self->fs_mount = args[0]->v_vfsp == `rootvfs ? "/" :
+	    args[0]->v_vfsp->vfs_vnodecovered ?
+	    stringof(args[0]->v_vfsp->vfs_vnodecovered->v_path) : NULL;
+}
+
+fbt::fop_read:entry
+/self->fs_mount != NULL/
+{
+	@rio[self->fs_mount, "logical"] = count();
+	lbytes += args[1]->uio_resid;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->size/
+{
+	@rbytes[self->fs_mount, "logical"] =
+	    sum(self->size - self->uiop->uio_resid);
+	self->size = 0;
+	self->uiop = 0;
+	self->fs_mount = 0;
+}
+
+io::bdev_strategy:start
+/self->size && args[0]->b_flags & B_READ/
+{
+	@rio[self->fs_mount, "physical"] = count();
+	@rbytes[self->fs_mount, "physical"] = sum(args[0]->b_bcount);
+	pbytes += args[0]->b_bcount;
+}
+
+profile:::tick-5s
+{
+	trunc(@rio, 20);
+	trunc(@rbytes, 20);
+	printf("\033[H\033[2J");
+	printf("\nRead IOPS (count)\n");
+	printa("%-32s %10s %10 at d\n", @rio);
+	printf("\nRead Bandwidth (bytes)\n");
+	printa("%-32s %10s %10 at d\n", @rbytes);
+	printf("\nTotal File System miss-rate: %d%%\n",
+	    lbytes ? 100 * pbytes / lbytes : 0);
+	trunc(@rbytes);
+	trunc(@rio);
+	lbytes = pbytes = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/FS/rfsio.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/FS/vopstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/FS/vopstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/FS/vopstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,304 @@
+#!/usr/bin/sh
+#
+# vopstat - Trace the vnode interface.
+#           Written using DTrace (Solaris 10 3/05)
+#
+# Author: Richard McDougall
+#
+# $Id: vopstat 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	vopstat [-t] [/mountname]
+#
+#		vopstat		# default output, summary each 5 secs
+#		-t 		# trace activity as it occurs
+#
+# Example:
+#
+# ./vopstat
+# 
+# VOP Physical IO                                                   Count
+# fop_fsync                                                           236
+# 
+# VOP Count                                                         Count
+# fop_create                                                            1
+# fop_fid                                                               1
+# fop_lookup                                                            2
+# fop_access                                                            3
+# fop_read                                                              3
+# fop_poll                                                             11
+# fop_fsync                                                            31
+# fop_putpage                                                          32
+# fop_ioctl                                                           115
+# fop_write                                                           517
+# fop_rwlock                                                          520
+# fop_rwunlock                                                        520
+# fop_inactive                                                        529
+# fop_getattr                                                        1057
+# 
+# VOP Wall Time                                                  mSeconds
+# fop_fid                                                               0
+# fop_access                                                            0
+# fop_read                                                              0
+# fop_poll                                                              0
+# fop_lookup                                                            0
+# fop_create                                                            0
+# fop_ioctl                                                             0
+# fop_putpage                                                           1
+# fop_rwunlock                                                          1
+# fop_rwlock                                                            1
+# fop_inactive                                                          1
+# fop_getattr                                                           2
+# fop_write                                                            22
+# fop_fsync                                                           504
+# 
+# COPYRIGHT: Copyright (c) 2006 Richard McDougall
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Shell Wrapper Concept by Brendan Gregg
+#
+# 08-Jan-2006	Richard McDougall	Created this.
+# 23-Apr-2006	Brendan Gregg		Minor style tweaks.
+# 23-Apr-2006	   "      "		Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_trace=0; opt_fs=0; opt_stats=1; opt_all=0
+
+### process options
+while getopts t name
+do
+	case $name in
+	t)	opt_trace=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: voptrace [-t] [/mountpoint]
+		        voptrace         # default output
+		                 -t      # trace
+		   eg,
+		        voptrace -t      # trace all file systems
+		        voptrace -t /tmp # trace /tmp
+		        voptrace  /tmp   # summary stats for /tmp
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+filesys="$1"
+
+### option logic
+if [ $opt_trace -eq 1 ]; then
+	opt_stats=0
+fi
+if [ -z "$filesys" ]; then
+	opt_all=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_fs 	= '$opt_fs';
+ inline int OPT_all 	= '$opt_all';
+ inline int OPT_trace 	= '$opt_trace';
+ inline int OPT_stats 	= '$opt_stats';
+ inline string FILESYS 	= "'$filesys'";
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+	/* print main headers */
+	OPT_stats == 1 ?
+		printf("\033[H\033[2J") : 1;
+
+	OPT_trace == 1 ?
+		printf("%2s %-15s %-10s %51s %2s %8s %8s\n", 
+		    "", "Event", "Device", "Path", "RW", "Size", "Offset") : 1;
+	self->path = "";
+	self->trace = 0;
+ }
+
+ dtrace:::BEGIN
+ /OPT_trace == 1/
+ {
+	/* make D compiler happy */
+	@vop_iocnt[""] = count();
+	@vop_cnt[""]   = count();
+	@vop_time[""]  = sum(0);
+	trunc(@vop_iocnt);
+	trunc(@vop_cnt);
+	trunc(@vop_time);
+ }
+ 
+ fbt::fop_*:entry
+ {
+ 	self->trace = 0;
+
+ 	/* Get vp: fop_open has a pointer to vp */
+ 	this->vpp = (vnode_t **)arg0;
+ 	self->vp = (vnode_t *)arg0;
+ 	self->vp = probefunc == "fop_open" ? (vnode_t *)*this->vpp : self->vp;
+
+ 	/* And the containing vfs */
+         this->vfsp = self->vp ? self->vp->v_vfsp : 0;
+
+ 	/* And the paths for the vp and containing vfs */
+ 	this->vfsvp = this->vfsp ?
+	    (struct vnode *)((vfs_t *)this->vfsp)->vfs_vnodecovered : 0;
+ 	self->vfspath = this->vfsvp ? stringof(this->vfsvp->v_path) : "unknown";
+ 
+ 	/* Check if we should trace the root fs */
+ 	(OPT_all || 
+ 	    (FILESYS == "/" && this->vfsp &&
+ 	    (this->vfsp == `rootvfs))) ? self->trace = 1 : self->trace;
+ 
+ 	/* Check if we should trace the fs */
+ 	(OPT_all || (self->vfspath == FILESYS)) ? self->trace = 1 : self->trace;
+
+	self->vfspath = 0;
+ }
+ 
+ /*
+  * Trace the entry point to each fop
+  */ 
+ fbt::fop_*:entry
+ /self->trace/
+ {
+ 	self->path = (self->vp != NULL && self->vp->v_path) ?
+	    stringof(self->vp->v_path) : "unknown";
+ 
+ 	/* Some fops has the len in arg2 */
+ 	(probefunc == "fop_getpage" ||
+ 	 probefunc == "fop_putpage" ||
+ 	 probefunc == "fop_none") ? self->len = arg2 : 1; 
+ 
+ 	/* Some fops has the len in arg3 */
+ 	(probefunc == "fop_pageio" ||
+ 	 probefunc == "fop_none") ? self->len = arg3 : 1; 
+ 
+ 	/* Some fops has the len in arg4 */
+ 	(probefunc == "fop_addmap" ||
+ 	 probefunc == "fop_map" ||
+ 	 probefunc == "fop_delmap") ? self->len = arg4 : 1; 
+ 
+ 	/* Some fops has the offset in arg1 */
+ 	(probefunc == "fop_addmap" ||
+ 	 probefunc == "fop_map" ||
+ 	 probefunc == "fop_getpage" ||
+ 	 probefunc == "fop_putpage" ||
+ 	 probefunc == "fop_seek" ||
+ 	 probefunc == "fop_delmap") ? self->off = arg1 : 1; 
+ 
+ 	/* Some fops has the offset in arg3 */
+ 	(probefunc == "fop_close" ||
+ 	 probefunc == "fop_pageio") ? self->off = arg3 : 1; 
+ 
+ 	/* Some fops has the offset in arg4 */
+ 	probefunc == "fop_frlock" ? self->off = arg4 : 1; 
+ 
+ 	/* Some fops has the pathname in arg1 */
+ 	self->path = (probefunc == "fop_create" ||
+ 	 probefunc == "fop_mkdir" ||
+ 	 probefunc == "fop_rmdir" ||
+ 	 probefunc == "fop_remove" ||
+ 	 probefunc == "fop_lookup") ?
+ 	    strjoin(self->path, strjoin("/", stringof(arg1))) : self->path;
+ 
+	OPT_trace ?
+ 		printf("%2s %-15s %-10s %51s %2s %8d %8d\n", 
+ 		    "->", probefunc, "-", self->path, "-",
+		    self->len, self->off) : 1;
+
+ 	self->type = probefunc;
+ 	self->vop_entry[probefunc] = timestamp;
+ }
+ 
+ fbt::fop_*:return
+ /self->trace == 1/
+ {
+	OPT_trace ?
+ 		printf("%2s %-15s %-10s %51s %2s %8d %8d\n", 
+		    "<-", probefunc, "-", self->path, "-",
+		    self->len, self->off) : 1;
+
+	OPT_stats == 1 ?
+ 		@vop_time[probefunc] =
+			sum(timestamp - self->vop_entry[probefunc]) : 1;
+	OPT_stats == 1 ?
+ 		@vop_cnt[probefunc] = count() : 1;
+
+	self->path = 0;
+	self->len = 0;
+	self->off = 0;
+ }
+
+ fbt::fop_*:return
+ {
+	self->trace = 0;
+	self->type = 0;
+	self->vp = 0;
+ }
+ 
+ /* Capture any I/O within this fop */
+ io:::start
+ /self->trace/
+ {
+	OPT_stats == 1 ?
+ 		@vop_iocnt[self->type] = count() : 1;
+
+	OPT_trace == 1?
+	 	printf("%2s %-15s %-10s %51s %2s %8d %8u\n",
+		    "--", self->type, args[1]->dev_statname,
+		    self->path, args[0]->b_flags & B_READ ? "R" : "W",
+		    args[0]->b_bcount, args[0]->b_blkno) : 1;
+ }
+ 
+ profile:::tick-5s
+ /OPT_stats == 1/
+ {
+	/* Print top 20 only */
+ 	trunc(@vop_iocnt, 20);
+ 	trunc(@vop_time, 20);
+
+	/* Display microseconds */
+ 	normalize(@vop_time, 1000000);
+ 	printf("\033[H\033[2J");
+ 	printf("%-60s %10s\n", "VOP Physical IO", "Count");
+ 	printa("%-60s %10 at d\n", @vop_iocnt);
+ 	printf("\n");
+ 	printf("%-60s %10s\n", "VOP Count", "Count");
+ 	printa("%-60s %10 at d\n", @vop_cnt);
+ 	printf("\n");
+ 	printf("%-60s %10s\n", "VOP Wall Time", "mSeconds");
+ 	printa("%-60s %10 at d\n", @vop_time);
+
+	/* Clear data */
+ 	trunc(@vop_iocnt);
+ 	trunc(@vop_cnt);
+ 	trunc(@vop_time);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Guide
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Guide	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Guide	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,91 @@
+Guide - Guide to the DTraceToolkit
+
+    How to get started, and a table of contents.
+
+QuickStart
+
+	1. The top most useful scripts are in this directory.
+	2. Try running them with "-h". Eg, "./execsnoop -h".
+	3. Read Docs/Contents for a full list of scripts.
+
+QuickStart-by-Screenshot
+
+	1. Look through the examples in the Examples directory until
+	   you see an output you like
+	2. Find the script and run it
+	3. Look for its man page in Man
+
+Not-so-QuickStart
+	
+	1. Welcome!
+	2. Check the Table of Contents below to become famaliar with the
+	   directory structure of the DTraceToolkit.
+	3. See Docs/Faq for any initial questions.
+	4. Read Docs/Contents for a list of scripts.
+	5. Read Docs/Readme to see where scripts are documented.
+	6. Check Docs/Links for further DTrace.
+	7. Once famaliar with the toolkit, the following may be useful to
+	   add to your shell initialisation file,
+		PATH=$PATH:/opt/DTT/Bin
+		MANPATH=$MANPATH:/opt/DTT/Man
+	   in this case assuming the toolkit was installed in /opt/DTT.
+
+Installation
+
+	1. Run ./install
+	   This will replace any existing version of the DTraceToolkit
+	   with this one. It will prompt. Final install location is
+	   printed by this install script.
+
+Table of Contents
+
+   DTraceToolkit-X.XX/
+	Bin/			Symlinks to all the scripts
+	Apps/			Application specific scripts
+	Cpu/			Scripts for CPU analysis
+	Code/			Example code to practise on
+	Disk/			Scripts for disk I/O analysis
+	Docs/			Documentation
+	   Contents		Command list for the Toolkit
+	   Faq			Frequently asked questions
+	   Links		Further DTrace links
+	   Readme		Readme for using the docs
+	Examples/		Examples of command usage
+	Guide			This file!
+	Include/		DTrace include files
+	Java/			Scripts for tracing Java
+	JavaScript/		Scripts for tracing JavaScript
+	Kernel/			Scripts for kernel analysis
+	License			The CDDL license
+	Locks/			Scripts for lock analysis
+	Man/			Man pages
+	   man1m/		Man pages for the Toolkit commands
+	Mem/			Scripts for memory analysis
+	Misc/			Misc scripts
+	Net/			Scripts for network analysis
+	Notes/			Notes on Toolkit commands
+	Perl/			Scripts for tracing Perl
+	Php/			Scripts for tracing Php
+	Proc/			Scripts for process analysis
+	Python/			Scripts for tracing Python
+	Ruby/			Scripts for tracing Ruby
+	Shell/			Scripts for tracing Shell languages
+	Snippits/		Snippits of D scripting
+	System/			Scripts for system analysis
+	Tcl/			Scripts for tracing Tcl
+	User/			Scripts for user based activity analysis
+	Zones/			Scripts for analysis by zone
+	Version			DTraceToolkit version
+	install			Install script, use for installs only
+
+When you type ls in the DTraceToolkit, you will be looking at the top ten 
+or so most useful scripts plus the top level directories. Other scripts have
+been placed in meaningful subdirectories, such as Disk, Kernel, Proc, etc.
+
+An optional Bin directory has been provided that links to all the scripts.
+
+The DTraceToolkit is released under the CDDL license. It's the same open
+source license that OpenSolaris has been released under.
+
+Thank you for using the DTraceToolkit!
+

Added: trunk/cddl/contrib/dtracetoolkit/Include/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Include/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Include/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,18 @@
+Include - include scripts for D scripting
+
+   This directory contains files that can be included for use with D scripts.
+
+   There are two types of include files,
+
+   *.h
+	These can be included using,
+
+	#!/usr/sbin/dtrace -Cs
+	#include <filename.h>
+
+   *.d
+	These must be copyied to a translator directory (/usr/lib/dtrace),
+	and should be automatically pulled in.
+
+   This directory does not contain runnable DTrace scripts.
+

Added: trunk/cddl/contrib/dtracetoolkit/Include/test.ksh
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Include/test.ksh	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Include/test.ksh	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+#!/usr/bin/ksh
+/*
+ * test.ksh - DTrace include file test script.
+ *
+ * $Id: test.ksh 36 2007-09-15 06:51:18Z brendan $
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Sep-2007	Brendan Gregg	Created this.
+ */
+
+dtrace -CI . -s /dev/stdin << END
+
+#include "tostr.h"
+#include "time.h"
+
+#pragma D option quiet
+#pragma D option destructive
+
+dtrace:::BEGIN
+{
+	i = 1;
+	printf("\nNUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+	i = 1100;
+	printf("NUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+	i = 1100000;
+	printf("NUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+	i = 999999999;
+	printf("NUM_TO_STR   %12d = %s\n", i, NUM_TO_STR(i));
+
+	i = 1;
+	printf("\nBYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+	i = 1024;
+	printf("BYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+	i = 1000000;
+	printf("BYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+	i = 999999999;
+	printf("BYTES_TO_STR %12d = %s\n", i, BYTES_TO_STR(i));
+
+	i = 1;
+	printf("\nUS_TO_STR    %12d = %s\n", i, US_TO_STR(i));
+	i = 1100;
+	printf("US_TO_STR    %12d = %s\n", i, US_TO_STR(i));
+	i = 999999;
+	printf("US_TO_STR    %12d = %s\n", i, US_TO_STR(i));
+
+	printf("\nwalltimestamp : %Y\n", walltimestamp);
+	printf("TZ=GMT date   : ");
+	system("TZ=GMT date '+%%H:%%M:%%S'");
+	printf("TIME_HHMMSS   : %s\n", TIME_HHMMSS);
+
+	exit(0);
+}
+END

Added: trunk/cddl/contrib/dtracetoolkit/Include/time.h
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Include/time.h	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Include/time.h	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,38 @@
+/*
+ * time.h - DTrace Time include file.
+ *
+ * $Id: time.h 36 2007-09-15 06:51:18Z brendan $
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/*
+ * TIME_HHMMSS - Returns GMT time as a "HH:MM:SS" string.
+ *
+ * eg, "21:53:07"
+ */
+#define TIME_HHMMSS							\
+	strjoin(strjoin(strjoin(strjoin(strjoin(			\
+	(((walltimestamp / 1000000000) % 86400) / 3600) < 10 ? "0" : "",\
+	lltostr(((walltimestamp / 1000000000) % 86400) / 3600)), ":"),	\
+	strjoin((((walltimestamp / 1000000000) % 3600) / 60) < 10 ?	\
+	"0" : "", lltostr(((walltimestamp / 1000000000) % 3600) / 60))),\
+	":"), strjoin(((walltimestamp / 1000000000) % 60) < 10 ?	\
+	"0" : "", lltostr((walltimestamp / 1000000000) % 60)))
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Include/time.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Include/tostr.h
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Include/tostr.h	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Include/tostr.h	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+/*
+ * tostr.h - DTrace To-String include file.
+ *
+ * $Id: tostr.h 36 2007-09-15 06:51:18Z brendan $
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/*
+ * NUM_TO_STR(n) - takes a number and returns a string with a prefix,
+ *	intended to fit withen 6 chars.
+ *
+ *	Input		Output
+ *	0		0
+ *	1		1
+ *	10		10
+ *	999		999
+ *	1000		1.0K
+ *	1100		1.1K
+ *	10000		10.0K
+ *	999999		999.0K
+ * 	1000000		1.0M
+ * 	10000000	10.0M
+ * 	999999999	999.9M
+ */
+#define	NUM_TO_STR(n)							\
+	n >= 1000000 ?							\
+	strjoin(strjoin(strjoin(lltostr(n / 1000000), "."), 		\
+	lltostr((n % 1000000) / 100000)), "M") : n >= 1000 ?		\
+	strjoin(strjoin(strjoin(lltostr(n / 1000), "."), 		\
+	lltostr((n % 1000) / 100)), "K") : lltostr(n)
+
+/*
+ * BYTES_TO_STR(n) - takes a byte count and returns a string with a prefix,
+ *	intended to fit withen 6 chars.
+ *
+ *	Input		Output
+ *	0		0
+ *	1		1
+ *	10		10
+ *	999		0.9K
+ *	1000		0.9K
+ *	1024		1.0K
+ *	10240		10.0K
+ *	1000000		976.5K
+ * 	1048576		1.0M
+ * 	1000000000	953.6M
+ */
+#define	BYTES_TO_STR(n)							\
+	n >= 1024000 ?							\
+	strjoin(strjoin(strjoin(lltostr(n / 1048576), "."), 		\
+	lltostr((n % 1048576) / 104858)), "M") : n >= 1000 ?		\
+	strjoin(strjoin(strjoin(lltostr(n / 1024), "."), 		\
+	lltostr((n % 1024) / 103)), "K") : lltostr(n)
+
+/*
+ * US_TO_STR(n) - takes microseconds and returns a string with a prefix,
+ *	intended to fit withen 6 chars.
+ *
+ *	Input		Output
+ *	0		0
+ *	1		1u
+ *	10		10u
+ *	999		999u
+ *	1000		1.0m
+ *	1100		1.1m
+ *	10000		10.0m
+ *	999999		999.0m
+ */
+#define	US_TO_STR(n)							\
+	n == 0 ? "0" : n >= 1000 ?					\
+	strjoin(lltostr(n / 1000), "m") : strjoin(lltostr(n), "u")
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Include/tostr.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,17 @@
+Java - DTracing Java
+
+   These scripts trace the JVM, and require the Java hotspot provider which
+   was shipped with Java starting with version 1.6.0.
+
+   Some of these scripts measure method and object events, and require
+   the Java process to be run using the "+ExtendedDTraceProbes" flag.
+   For example,
+
+	java -XX:+ExtendedDTraceProbes classfile
+
+   The ExtendedDTraceProbes flag is not on by default to avoid the additional
+   overhead for maintaining these additional probes. When this flag is
+   enabled, the JVM may execute slightly slower than before; when the probes
+   are also enabled (especially method probes), the JVM may execute
+   significantly slower.
+

Added: trunk/cddl/contrib/dtracetoolkit/Java/j_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_calldist.d - measure Java elapsed times for different types of operation.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calldist.d 59 2007-10-03 08:21:58Z brendan $
+ *
+ * This traces activity 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
+ *
+ * USAGE: j_calldist.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (method/gc)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = timestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->elapsed_incl = timestamp - self->method[arg0, self->depth[arg0]];
+	this->elapsed_excl = this->elapsed_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@types_incl[pid, "method", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "method", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->elapsed_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = timestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    quantize(this->elapsed / 1000);
+
+	self->gc = 0;
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@types, top);
+	printf("\nTop %d elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types);
+
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive method elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive method elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,113 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_calls.d - count Java calls (method/...) using DTrace.
+ *             Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calls.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * 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
+ *
+ * USAGE: j_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		cload		class load
+ *		method		method call
+ *		mcompile	method compile
+ *		mload		compiled method load
+ *		oalloc		object alloc
+ *		thread		thread start
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "method", this->name] = count();
+}
+
+hotspot*:::object-alloc
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	@calls[pid, "oalloc", stringof(this->class)] = count();
+}
+
+hotspot*:::class-loaded
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	@calls[pid, "cload", stringof(this->class)] = count();
+}
+
+hotspot*:::thread-start
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	@calls[pid, "thread", stringof(this->thread)] = count();
+}
+
+hotspot*:::method-compile-begin
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	this->method = (char *)copyin(arg2, arg3 + 1);
+	this->method[arg3] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "mcompile", this->name] = count();
+}
+
+hotspot*:::compiled-method-load
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+	this->method = (char *)copyin(arg2, arg3 + 1);
+	this->method[arg3] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "mload", this->name] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_calls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_calltime.d - measure Java elapsed times for different types of operation.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_calltime.d 59 2007-10-03 08:21:58Z brendan $
+ *
+ * This traces activity 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
+ *
+ * USAGE: j_calltime.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = timestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->elapsed_incl = timestamp - self->method[arg0, self->depth[arg0]];
+	this->elapsed_excl = this->elapsed_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@num[pid, "method", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "method", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "method", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->elapsed_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = timestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+
+	@num[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] = count();
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    sum(this->elapsed);
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types, top);
+	normalize(@types, 1000);
+	printf("\nTop %d elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive method elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive method elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_classflow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_classflow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_classflow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,100 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_classflow.d - trace a Java class method flow using DTrace.
+ *                 Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_classflow.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_classflow.d	classname	# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option defaultargs
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+/$$1 == ""/
+{
+	printf("USAGE: j_classflow.d classname\n");
+	exit(1);
+}
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry,
+hotspot*:::method-return
+{
+	this->class = stringof((char *)copyin(arg1, arg2 + 1));
+	this->class[arg2] = '\0';
+}
+
+hotspot*:::method-entry
+/this->class == $$1/
+{
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d %-16d %*s-> %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+	self->depth[arg0]++;
+}
+
+hotspot*:::method-return
+/this->class == $$1/
+{
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_classflow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_cpudist.d - measure Java on-CPU times for different types of operation.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_cpudist.d 59 2007-10-03 08:21:58Z brendan $
+ *
+ * This traces activity 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
+ *
+ * USAGE: j_cpudist.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (method/gc)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = vtimestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->oncpu_incl = vtimestamp - self->method[arg0, self->depth[arg0]];
+	this->oncpu_excl = this->oncpu_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@types_incl[pid, "method", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "method", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->oncpu_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = vtimestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    quantize(this->oncpu / 1000);
+
+	self->gc = 0;
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@types, top);
+	printf("\nTop %d on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types);
+
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive method on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive method on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_cputime.d - measure Java on-CPU times for different types of operation.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_cputime.d 59 2007-10-03 08:21:58Z brendan $
+ *
+ * This traces activity 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
+ *
+ * USAGE: j_cputime.d [top]	# hit Ctrl-C to end
+ *
+ * The "top" optional argument will truncate the output for each report
+ * section to that many lines, with a default of 10.
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+hotspot*:::method-entry
+{
+	self->depth[arg0]++;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+	self->method[arg0, self->depth[arg0]] = vtimestamp;
+}
+
+hotspot*:::method-return
+/self->method[arg0, self->depth[arg0]]/
+{
+	this->oncpu_incl = vtimestamp - self->method[arg0, self->depth[arg0]];
+	this->oncpu_excl = this->oncpu_incl -
+	    self->exclude[arg0, self->depth[arg0]];
+	self->method[arg0, self->depth[arg0]] = 0;
+	self->exclude[arg0, self->depth[arg0]] = 0;
+
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+
+	@num[pid, "method", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "method", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "method", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth[arg0]--;
+	self->exclude[arg0, self->depth[arg0]] += this->oncpu_incl;
+}
+
+hotspot*:::gc-begin
+{
+	self->gc = vtimestamp;
+	self->full = (boolean_t)arg0;
+}
+
+hotspot*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+
+	@num[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] = count();
+	@types[pid, "gc", self->full == B_FALSE ? "GC" : "Full GC"] =
+	    sum(this->oncpu);
+	self->full = 0;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types, top);
+	normalize(@types, 1000);
+	printf("\nTop %d on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive method on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive method on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_events.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_events.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_events.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_events.d - count Java events using DTrace.
+ *              Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_events.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces activity 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
+ *
+ * USAGE: j_events.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		EVENT		Event name (DTrace probe name)
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/* this matches both hotspot and hotspot_jni providers */
+hotspot*:::
+{
+	@calls[pid, probename] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s  %-36s %8s\n", "PID", "EVENT", "COUNT");
+	printa(" %6d  %-36s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_events.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,87 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_flow.d - snoop Java execution showing method flow using DTrace.
+ *            Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_flow.d 38 2007-09-16 08:17:41Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_flow.d		# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d %-16d %*s-> %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+	self->depth[arg0]++;
+}
+
+hotspot*:::method-return
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s.%s\n", cpu, pid, timestamp / 1000,
+	    self->depth[arg0] * 2, "", stringof(this->class),
+	    stringof(this->method));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_flowtime.d - snoop Java execution with method flow and delta times.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_flowtime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_flowtime.d		# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		TIME(us)	Time since boot (us)
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CLASS.METHOD	Java class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=16m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s/%-5s %-16s %9s -- %s\n", "C", "PID", "TID", "TIME(us)",
+	    "DELTA(us)", "CLASS.METHOD");
+}
+
+hotspot*:::method-entry,
+hotspot*:::method-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+hotspot*:::method-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%3d %6d/%-5d %-16d %9d %*s-> %s.%s\n", cpu, pid, tid,
+	    timestamp / 1000, this->delta, self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method));
+	self->depth[arg0]++;
+	self->last = timestamp;
+}
+
+hotspot*:::method-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%3d %6d/%-5d %-16d %9d %*s<- %s.%s\n", cpu, pid, tid,
+	    timestamp / 1000, this->delta, self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_methodcalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_methodcalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_methodcalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_methodcalls.d - count Java method calls DTrace.
+ *                   Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_methodcalls.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_methodcalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		COUNT		Number of calls during sample
+ *		CLASS.METHOD	Java class and method name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, this->name] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %8s %s\n", "PID", "COUNT", "CLASS.METHOD");
+	printa(" %6d %@8d %s\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_methodcalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_objnew.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_objnew.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_objnew.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_objnew.d - report Java object allocation using DTrace.
+ *              Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_objnew.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_objnew.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		OBJS		Number of objects created
+ *		CLASS.METHOD	Java class and method name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::object-alloc
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	@objs[pid, stringof(this->class)] = count();
+	@dist[pid, stringof(this->class)] = quantize(arg3);
+}
+
+dtrace:::END
+{
+	printf("Java object allocation byte distributions by pid and class,\n");
+	printa(@dist);
+
+	printf("Java object allocation count by pid and class,\n\n");
+	printf(" %6s %8s %s\n", "PID", "OBJS", "CLASS");
+	printa(" %6d %8 at d %s\n", @objs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_objnew.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_package.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_package.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_package.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_package.d - count Java class loads by package using DTrace.
+ *               Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_package.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_package.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		LOADS		Class loads during trace
+ *		PACKAGE		Package name from class
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::class-loaded
+{
+	this->class = (char *)copyin(arg0, arg1 + 1);
+	this->class[arg1] = '\0';
+
+	@loads[pid, dirname(stringof(this->class))] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %8s  %s\n", "PID", "LOADS", "PACKAGE");
+	printa("   %6d %@8d  %s\n", @loads);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_package.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_profile.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_profile.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_profile.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,78 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * j_profile.d - sample stack traces with Java translations using DTrace.
+ *
+ * USAGE: j_profile.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ * $Id: j_profile.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ *
+ * This samples stack traces for the process specified. This stack trace
+ * will cross the JVM and system libraries, and insert translations for Java
+ * stack frames where appropriate. This is best explained with an example
+ * stack frame output,
+ *
+ *            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_pnMmethodHan
+ *            libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmetho
+ *            libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJ
+ *            libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_j
+ *            libjvm.so`jni_CallStaticVoidMethod+0x15d
+ *            java`JavaMain+0xd30
+ *            libc.so.1`_thr_setup+0x52
+ *            libc.so.1`_lwp_start
+ *            101
+ *
+ * The lines at the top are Java frames, followed by the JVM (libjvm.so).
+ * The JVM symbols may be translated by passing the output through c++filt.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option jstackstrsize=1024
+
+/*
+ * Tunables
+ */
+#define DEPTH	10		/* stack depth, frames */
+#define RATE	101		/* sampling rate, Hertz */
+#define TOP	25		/* number of stacks to output */
+
+dtrace:::BEGIN
+{
+	printf("Sampling %d-level stacks at %d Hertz... Hit Ctrl-C to end.\n",
+	    DEPTH, RATE);
+}
+
+profile-RATE
+/pid == $target/
+{
+	@stacks[jstack(DEPTH)] = count();
+}
+
+dtrace:::END
+{
+	trunc(@stacks, TOP);
+	printf("Top %d most frequently sampled stacks,\n", TOP);
+	printa(@stacks);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_profile.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,148 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_stat.d - Java operation stats using DTrace.
+ *            Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_stat.d 64 2007-10-04 08:35:29Z claire $
+ *
+ * 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
+ *
+ * USAGE: j_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Java programs executed per second, including
+ *				those without Java provider support
+ *		THREAD/s	Threads created, per second
+ *		METHOD/s	Methods called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		CLOAD/s		Class loads, per second
+ *		EXCP/s		Exceptions raised, per second
+ *		GC/s		Garbage collects, per second
+ *
+ * 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".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = threads = methods = objnew = cload = gc = exception = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %8s %8s %8s %8s %6s %6s\n", "TIME", "EXEC/s",
+	    "THREAD/s", "METHOD/s", "OBJNEW/s", "CLOAD/s", "EXCP/s", "GC/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "java"/
+{
+	execs++;
+}
+
+hotspot*:::thread-start
+{
+	threads++;
+}
+
+hotspot*:::method-entry
+{
+	methods++;
+}
+
+hotspot*:::object-alloc
+{
+	oalloc++;
+}
+
+hotspot*:::class-loaded
+{
+	cload++;
+}
+
+hotspot*:::gc-begin
+{
+	gc++;
+}
+
+hotspot*:::ExceptionOccurred-entry
+{
+	exception++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %8d %8d %8d %8d %6d %6d\n", walltimestamp,
+	    execs / interval, threads / interval, methods / interval,
+	    oalloc / interval, cload / interval, exception / interval,
+	    gc / interval);
+	execs = threads = methods = oalloc = cload = gc = exception = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_stat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_syscalls.d - count Java methods and syscalls using DTrace.
+ *                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_syscalls.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces Java methods if the hotspot provider exists (1.6.0) and
+ * the flag "+ExtendedDTraceProbes" is used. eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot$target:::method-entry
+{
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+	this->name = strjoin(strjoin(stringof(this->class), "."),
+	    stringof(this->method));
+	@calls[pid, "method", this->name] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[pid, "syscall", probefunc] = count();
+}
+
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,135 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_syscolors.d - trace Java method flow plus syscalls, in color.
+ *                 Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_syscolors.d 58 2007-10-01 13:36:29Z brendan $
+ *
+ * This traces Java methods if the hotspot provider exists (1.6.0) and
+ * the flag "+ExtendedDTraceProbes" is used. eg,
+ * java -XX:+ExtendedDTraceProbes classfile
+ *
+ * USAGE: j_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Java method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Java method or syscall name
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* increasing bufsize can reduce drops */
+#pragma D option bufsize=32m
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth[int];
+
+dtrace:::BEGIN
+{
+        color_java = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%3s %6s/%-5s %9s %-8s -- %s\n", "C", "PID", "TID", "DELTA(us)",
+	    "TYPE", "NAME");
+}
+
+hotspot$target:::method-entry,
+hotspot$target:::method-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+hotspot$target:::method-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	printf("%s%3d %6d/%-5d %9d %-8s %*s-> %s.%s%s\n", color_java, cpu,
+	    pid, tid, this->delta, "method", self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method), color_off);
+	self->depth[arg0]++;
+	self->depthlast = self->depth[arg0];
+	self->last = timestamp;
+}
+
+hotspot$target:::method-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->class = (char *)copyin(arg1, arg2 + 1);
+	this->class[arg2] = '\0';
+	this->method = (char *)copyin(arg3, arg4 + 1);
+	this->method[arg4] = '\0';
+
+	self->depth[arg0] -= self->depth[arg0] > 0 ? 1 : 0;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s<- %s.%s%s\n", color_java, cpu,
+	    pid, tid, this->delta, "method", self->depth[arg0] * 2, "",
+	    stringof(this->class), stringof(this->method), color_off);
+	self->depthlast = self->depth[arg0];
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d/%-5d %9d %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_thread.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_thread.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_thread.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,64 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_thread.d - snoop Java thread execution using DTrace.
+                Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_thread.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_thread.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		TIME		Time string
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		THREAD		Thread name
+ *
+ * LEGEND:
+ *		=>		thread start
+ *		<=		thread end
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+dtrace:::BEGIN
+{
+	printf("%-20s  %6s/%-5s -- %s\n", "TIME", "PID", "TID", "THREAD");
+}
+
+hotspot*:::thread-start
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	printf("%-20Y  %6d/%-5d => %s\n", walltimestamp, pid, tid,
+	    stringof(this->thread));
+}
+
+hotspot*:::thread-stop
+{
+	this->thread = (char *)copyin(arg0, arg1 + 1);
+	this->thread[arg1] = '\0';
+	printf("%-20Y  %6d/%-5d <= %s\n", walltimestamp, pid, tid,
+	    stringof(this->thread));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_thread.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Java/j_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Java/j_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Java/j_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,58 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * j_who.d - trace Java calls by process using DTrace.
+ *           Written for the Java hotspot DTrace provider.
+ *
+ * $Id: j_who.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This traces activity from all Java processes on the system with hotspot
+ * provider support (1.6.0).
+ *
+ * USAGE: j_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Java
+ *		UID		User ID of the owner
+ *		CALLS		Number of calls made (a measure of activity)
+ *		ARGS		Process name and arguments
+ *
+ * The argument list is truncated at 55 characters (up to 80 is easily
+ * available). To easily read the full argument list, use other system tools;
+ * on Solaris use "pargs PID".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+hotspot*:::Call*-entry
+{
+	@calls[pid, uid, curpsinfo->pr_psargs] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %-55s\n", "PID", "UID", "CALLS", "ARGS");
+	printa("   %6d %6d %@6d %-55.55s\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Java/j_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+JavaScript - DTracing JavaScript
+
+   There scripts trace the JavaScript programming language, and require a
+   browser to be built with the DTrace JavaScript provider.
+
+   The DTrace JavaScript provider was originally written by Brendan Gregg,
+   and later developed as part of a Mozilla DTrace provider suite by
+   engineers from both Sun and Mozilla. It currently exists as patches
+   to the Mozilla source tree and requires building from source to get
+   working; it may be integrated into Solaris builds by default in the
+   future. To download the current patches and instructions, visit,
+
+	http://www.opensolaris.org/os/project/mozilla-dtrace/
+
+   A rough guide for the process is,
+
+	1. Download the Mozilla source
+		http://developer.mozilla.org/en/docs/Mozilla_Source_Code_Via_CVS
+	2. Download the Mozilla DTrace framework patch, and apply
+		https://bugzilla.mozilla.org/show_bug.cgi?id=370906
+	3. Download the JavaScript DTrace provider patch, and apply
+		https://bugzilla.mozilla.org/show_bug.cgi?id=388564
+	4. Create a .mozconfig file (needed for compilation).
+	5. Setup various compilation environment vars (CC/CFLAGS/CXX/...)
+	6. autoconf
+	7. ./configure --enable-dtrace
+	8. gmake
+
+   See John Rice's instructions linked from the OpenSolaris page above
+   for details on steps 4-8.
+
+   Since the DTrace JavaScript provider may be developed further, there is a
+   chance that it has changed slightly by the time you are reading this,
+   causing these scripts to either break or behave oddly. Firstly, check for
+   newer versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider javascript {
+	    probe function-entry(file, class, func)
+	    probe function-info(file, class, func, lineno, runfile, runlineno)
+	    probe function-args(file, class, func, argc, argv, argv0, argv1,
+		argv2, argv3, argv4)
+	    probe function-rval(file, class, func, lineno, rval, rval0)
+	    probe function-return(file, class, func)
+	    probe object-create-start(file, class)
+	    probe object-create(file, class, *object, rlineno)
+	    probe object-create-done(file, class)
+	    probe object-finalize(NULL, class, *object)
+	    probe execute-start(file, lineno)
+	    probe execute-done(file, lineno)
+	};
+

Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calldist.d - measure JavaScript elapsed times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calldist.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_calldist.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the JavaScript program
+ *		2		Type of call (func/obj-new)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types[this->file, "obj-new", this->name] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,76 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calls.d - count JavaScript calls using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calls.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/...)
+ *		NAME		Descriptive name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	this->name = copyinstr(arg2);
+        @calls[basename(copyinstr(arg0)), "func", this->name] = count();
+}
+
+javascript*:::execute-start
+{
+	this->filename = basename(copyinstr(arg0));
+        @calls[this->filename, "exec", "."] = count();
+}
+
+javascript*:::object-create-start
+{
+	this->name = copyinstr(arg1);
+	this->filename = basename(copyinstr(arg0));
+        @calls[this->filename, "obj-new", this->name] = count();
+}
+
+javascript*:::object-finalize
+{
+	this->name = copyinstr(arg1);
+        @calls["<null>", "obj-free", this->name] = count();
+}
+
+dtrace:::END
+{
+        printf(" %-24s %-10s %-30s %8s\n", "FILE", "TYPE", "NAME", "CALLS");
+        printa(" %-24s %-10s %-30s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,115 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_calltime.d - measure JavaScript elapsed times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_calltime.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_cpudist.d - measure JavaScript on-CPU times for types of operation.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_cpudist.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_cpudist.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the JavaScript program
+ *		2		Type of call (func/obj-new)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types[this->file, "obj-new", this->name] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,115 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_cputime.d - measure JavaScript on-CPU times for types of operation.
+ *                Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_cputime.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers running on the system with
+ * JavaScript provider support.
+ *
+ * USAGE: js_cputime.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		TYPE		Type of call (func/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+javascript*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg2);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+javascript*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20.20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_execs.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_execs.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_execs.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_execs.d - JavaScript execute snoop using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_execs.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_execs.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		TIME		Time of event
+ *		FILE		Filename of the JavaScript program
+ *		LINENO		Line number in filename
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+dtrace:::BEGIN
+{
+	printf("%-20s  %32s:%s\n", "TIME", "FILE", "LINENO");
+}
+
+javascript*:::execute-start
+{
+	printf("%-20Y  %32s:%d\n", walltimestamp, basename(copyinstr(arg0)),
+	    arg1);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_execs.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,69 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flow.d - snoop JavaScript execution showing function flow using DTrace.
+ *             Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flow.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flow.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-22s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+javascript*:::function-entry
+{
+	printf("%3d %-16d %-22s %*s-> %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg2));
+	self->depth++;
+}
+
+javascript*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-22s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg2));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flowinfo.d - JavaScript function flow with info using DTrace.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flowinfo.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the JavScript program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "FUNC");
+}
+
+javascript*:::function-info,
+javascript*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+javascript*:::function-info
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg4)), arg5, "func",
+	    self->depth * 2, "", copyinstr(arg2));
+	self->depth++;
+	self->last = timestamp;
+}
+
+javascript*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "func", self->depth * 2,
+	    "", copyinstr(arg2));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,84 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_flowtime.d - JavaScript function flow with delta times using DTrace.
+ *                 Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_flowtime.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all browsers on the system that are running
+ * with JavaScript provider support.
+ *
+ * USAGE: js_flowtime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-18s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+javascript*:::function-entry,
+javascript*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+javascript*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-18s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg2));
+	self->depth++;
+	self->last = timestamp;
+}
+
+javascript*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-18s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg2));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objcpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objcpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objcpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objcpu.d - measure JavaScript object creation on-CPU time using DTrace.
+ *               Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objcpu.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers running on the system
+ * with JavaScript provider support.
+ *
+ * USAGE: js_objcpu.d	 	# hit Ctrl-C to end
+ *
+ * Class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create-start
+{
+	self->vstart = vtimestamp;
+}
+
+javascript*:::object-create-done
+/self->vstart/
+{
+	this->oncpu = vtimestamp - self->vstart;
+	@total = sum(this->oncpu);
+	@dist[copyinstr(arg1)] = quantize(this->oncpu / 1000);
+	self->vstart = 0;
+}
+
+dtrace:::END
+{
+	normalize(@total, 1000000);
+	printa("Total object creation on-CPU time (ms): %@d\n\n", @total);
+	printf("Object creation on-CPU time distributions (us),\n");
+	printa(@dist);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objcpu.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objgc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objgc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objgc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objgc.d - trace JavaScript Object GC using DTrace.
+ *              Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objgc.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all running browers on the system
+ * which support the JavaScript DTrace provider.
+ *
+ * USAGE: js_objgc.d		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename that contained the function
+ *		CLASS		Class to which this new object belongs
+ *		TOTAL		Object entropy (positive == uncollected)
+ *
+ * This script provides information on which objects are not being garbage
+ * collected, an issue which causes the browser to steadily leak memory.
+ * 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. 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.
+ *
+ * NOTES:
+ * - it is possible that you will see negative entropy. That happens
+ * when you begin tracing after some objects have already been created,
+ * and then trace their destruction.
+ * - there are other Things that GC handles, other than Objects; extra
+ * probes can be added to trace them, should the need arise.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+/* if you get dynvardrops, increase this, */
+#pragma D option dynvarsize=32m
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create
+/arg2/
+{
+	this->file = basename(copyinstr(arg0));
+	@objs[this->file, copyinstr(arg1)] = sum(1);
+	filename[arg2] = this->file;
+}
+
+javascript*:::object-finalize
+/filename[arg2] == NULL/
+{
+	@objs["<missed>", copyinstr(arg1)] = sum(-1);
+}
+
+javascript*:::object-finalize
+/filename[arg2] != NULL/
+{
+	@objs[filename[arg2], copyinstr(arg1)] = sum(-1);
+	filename[arg2] = 0;
+}
+
+profile:::tick-1sec,
+dtrace:::END
+{
+	printf("\n %-24s %8s %-20s %23Y\n", "FILE", "TOTAL", "CLASS",
+	    walltimestamp);
+	printa(" %-24.24s %@8d %s\n", @objs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objgc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objnew.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objnew.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objnew.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_objnew.d - count JavaScript object creation using DTrace.
+ *               Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_objnew.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers running on the system
+ * with JavaScript provider support.
+ *
+ * USAGE: js_objnew.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the JavaScript program
+ *		CLASS		Class of new object
+ *		COUNT		Number of object creations during tracing
+ *
+ * Filename and class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::object-create-done
+{
+	@objs[basename(copyinstr(arg0)), copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-24s %-36s %8s\n", "FILE", "CLASS", "COUNT");
+	printa(" %-24.24s %-36s %@8d\n", @objs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_objnew.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_stat.d - JavaScript operation stats using DTrace.
+ *             Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_stat.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		JavaScript programs executed per second
+ *		FUNCS/s		Functions called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed (finalize), per second
+ *
+ * The numbers are counts for the interval specified. The default interval
+ * is 1 second.
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = funcs = objnew = objfree = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s\n", "TIME", "EXEC/s", "FUNC/s",
+	    "OBJNEW/s", "OBJFRE/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+javascript*:::execute-start
+{
+	execs++;
+}
+
+javascript*:::function-entry
+{
+	funcs++;
+}
+
+javascript*:::object-create-start
+{
+	objnew++;
+}
+
+javascript*:::object-finalize
+{
+	objfree++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d\n", walltimestamp, execs / interval,
+	    funcs / interval, objnew / interval, objfree / interval);
+	execs = funcs = objnew = objfree = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_stat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/JavaScript/js_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/JavaScript/js_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * js_who.d - trace JavaScript function execution by process using DTrace.
+ *            Written for the JavaScript DTrace provider.
+ *
+ * $Id: js_who.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces JavaScript activity from all browsers on the system that are
+ * running with JavaScript provider support.
+ *
+ * USAGE: js_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of JavaScript
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the JavaScript program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+javascript*:::function-entry
+{
+	@funcs[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @funcs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/JavaScript/js_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+Kernel - Kernel based analysis
+
+   These are scripts to monitor kernel activity.

Added: trunk/cddl/contrib/dtracetoolkit/Kernel/cpudists
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/cpudists	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/cpudists	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,184 @@
+#!/usr/bin/sh
+#
+# cpudists - print CPU time distributions by Kernel/Idle/Processes.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: cpudists 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	cpudists [-ahV] [-t top] [interval [count]]
+#
+#		-a              # print all processes
+#		-V              # don't print timestamps
+#		-t num          # print top num  only
+#  eg,
+#		cpudists 1      # print every 1 second
+#		cpudists -a 10  # print all processes every 10 secs
+#
+#
+# FIELDS: 
+#		value           The following or the process name,
+#		IDLE            Idle time - CPU running idle thread
+#		KERNEL          Kernel time - Kernel servicing interrupts, ...
+#		PROCESS         Process time - PIDs running on the system
+#		count           Number of occurances at least this duration (ns)
+#
+# NOTES:
+# * This takes into account multiple CPU servers, the total 
+# seconds consumed will be a multiple of the CPU count and interval.
+#
+# SEE ALSO: cputimes
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 22-Sep-2005	   "      "	Fixed key corruption bug.
+# 22-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_all=0; opt_time=1; opt_top=0; top=0; interval=1; count=1
+
+while getopts aht:V name
+do
+        case $name in
+        a)      opt_all=1 ;;
+        V)      opt_time=0 ;;
+        t)      opt_top=1; top=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: cpudists [-ahV] [-t top] [interval [count]]
+		       cpudists                # default output
+		               -a              # print all processes
+		               -V              # don't print times
+		               -t num          # print top num only
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+	count=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_all    = '$opt_all';
+ inline int OPT_time   = '$opt_time';
+ inline int OPT_top    = '$opt_top';
+ inline int TOP        = '$top';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+
+ /* Initialise variables */
+ dtrace:::BEGIN
+ {
+	cpustart[cpu] = 0;
+	counts = COUNTER;
+	secs = INTERVAL;
+ }
+
+ /* Flag this thread as idle */
+ sysinfo:unix:idle_enter:idlethread
+ {
+	idle[cpu] = 1;
+ }
+
+ /* Save kernel time between running threads */
+ sched:::on-cpu 
+ /cpustart[cpu]/
+ {
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs["KERNEL"] = quantize(this->elapsed);
+ }
+
+ /* Save the elapsed time of a thread */
+ sched:::off-cpu,
+ sched:::remain-cpu,
+ profile:::profile-1sec
+ /cpustart[cpu]/
+ {
+	/* determine the name for this thread */
+	program[cpu] = pid == 0 ? idle[cpu] ? "IDLE" : "KERNEL" :
+	    OPT_all ? execname : "PROCESS";
+
+	/* save elapsed */
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs[program[cpu]] = quantize(this->elapsed);
+	cpustart[cpu] = timestamp;
+ }
+
+ /* Record the start time of a thread */
+ sched:::on-cpu,
+ sched:::remain-cpu
+ {
+	idle[cpu] = 0;
+	cpustart[cpu] = timestamp;
+ }
+
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /* Print time */
+ profile:::tick-1sec 
+ /secs == 0 && OPT_time/ 
+ { 
+	printf("%Y,\n", walltimestamp);
+ }
+
+ /* Print report */
+ profile:::tick-1sec 
+ /secs == 0/ 
+ { 
+	OPT_top ? trunc(@Procs, TOP) : 1;
+	printa("%16s %@16d\n", @Procs);
+	trunc(@Procs);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /* End of program */
+ profile:::tick-1sec 
+ /counts == 0/ 
+ {
+	exit(0);
+ }
+
+ /* cleanup for Ctrl-C */
+ dtrace:::END
+ {
+	trunc(@Procs);
+ }
+'
+

Added: trunk/cddl/contrib/dtracetoolkit/Kernel/cputimes
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/cputimes	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/cputimes	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,203 @@
+#!/usr/bin/sh
+#
+# cputimes - print CPU time consumed by Kernel/Idle/Processes.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# $Id: cputimes 3 2007-08-01 10:50:08Z brendan $
+#
+# This program accurately measures time consumed by the kernel, but in
+# doing so creates extra kernel load of it's own. The extra kernel
+# activity can be measured by running one cputimes and then another, and
+# comparing the difference in kernel consumed time. This method can be
+# used to estimate the load created by other DTrace scripts.
+#
+# USAGE:	cputimes [-ahTV] [-t top] [interval [count]]
+#
+#		-a                # print all processes
+#		-T                # print totals
+#		-V                # don't print timestamps
+#		-t num            # print top num lines only
+#  eg,
+#		cputimes 1        # print every 1 second
+#		cputimes -a 10    # print all processes every 10 secs
+#		cputimes -at 8 5  # print top 8 lines every 5 secs
+#
+#
+# FIELDS: 
+#		THREADS         The following or the process name,
+#		IDLE            Idle time - CPU running idle thread
+#		KERNEL          Kernel time - Kernel servicing interrupts, ...
+#		PROCESS         Process time - PIDs running on the system
+#		TIME (ns)       Sum of the CPU time, ns (nanoseconds)
+#
+# NOTES:
+# * This takes into account multiple CPU servers, the total 
+# seconds consumed will be a multiple of the CPU count and interval.
+#
+# SEE ALSO: cpudists
+#           Heisenberg's uncertainty principle.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 22-Sep-2005      "      "	Fixed a key corruption bug.
+# 22-Sep-2005      "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+opt_all=0; opt_time=1; opt_top=0; opt_totals=0
+top=0; interval=1; count=1
+
+while getopts aht:TV name
+do
+        case $name in
+        a)      opt_all=1 ;;
+        T)      opt_totals=1 ;;
+        V)      opt_time=0 ;;
+        t)      opt_top=1; top=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: cputimes [-ahTV] [-t top] [interval [count]]
+		       cputimes                  # default output
+		               -a                # print all processes
+		               -T                # print totals
+		               -V                # don't print times
+		               -t num            # print top num lines only
+		          eg,
+		               cputimes 1        # print every 1 second
+		               cputimes -a 10    # all processes per 10 sec
+		               cputimes -at 8 5  # top 8 lines every 5 secs
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+	count=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_all    = '$opt_all';
+ inline int OPT_time   = '$opt_time';
+ inline int OPT_totals = '$opt_totals';
+ inline int OPT_top    = '$opt_top';
+ inline int TOP        = '$top';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+
+ /* Initialise variables */
+ dtrace:::BEGIN
+ {
+	cpustart[cpu] = 0;
+	counts = COUNTER;
+	secs = INTERVAL;
+ }
+
+ /* Flag this thread as idle */
+ sysinfo:unix:idle_enter:idlethread
+ {
+	idle[cpu] = 1;
+ }
+
+ /* Save kernel time between running threads */
+ sched:::on-cpu 
+ /cpustart[cpu]/
+ {
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs["KERNEL"] = sum(this->elapsed);
+ }
+
+ /* Save the elapsed time of a thread */
+ sched:::off-cpu,
+ sched:::remain-cpu,
+ profile:::profile-1sec
+ /cpustart[cpu]/
+ {
+	/* determine the name for this thread */
+	program[cpu] = pid == 0 ? idle[cpu] ? "IDLE" : "KERNEL" :
+	    OPT_all ? execname : "PROCESS";
+
+	/* save elapsed */
+	this->elapsed = timestamp - cpustart[cpu];
+	@Procs[program[cpu]] = sum(this->elapsed);
+	cpustart[cpu] = timestamp;
+ }
+
+ /* Record the start time of a thread */
+ sched:::on-cpu,
+ sched:::remain-cpu
+ {
+	idle[cpu] = 0;
+	cpustart[cpu] = timestamp;
+ }
+
+
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /* Print time */
+ profile:::tick-1sec 
+ /secs == 0/
+ { 
+	OPT_time ? printf("%Y,\n", walltimestamp) : 1;
+	printf("%16s %16s\n", "THREADS", "TIME (ns)");
+ }
+
+ /* Print report */
+ profile:::tick-1sec 
+ /secs == 0/ 
+ { 
+	OPT_top ? trunc(@Procs, TOP) : 1;
+	printa("%16s %@16d\n", @Procs);
+	trunc(@Procs);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /* End of program */
+ profile:::tick-1sec 
+ /counts == 0/ 
+ {
+	exit(0);
+ }
+
+ /* cleanup for Ctrl-C */
+ dtrace:::END
+ {
+	trunc(@Procs);
+ }
+'
+

Added: trunk/cddl/contrib/dtracetoolkit/Kernel/cswstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/cswstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/cswstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,74 @@
+#!/usr/sbin/dtrace -s
+/*
+ * cswstat.d - context switch time stat.
+ *	       Uses DTrace (Solaris 10 03/05)
+ *
+ * This prints a context switch count and consumed time for context
+ * switching every second.
+ *
+ * $Id: cswstat.d 15 2007-09-11 09:09:25Z brendan $
+ *
+ * USAGE:	cswstat.d
+ *
+ * FIELDS:
+ *		TIME		Current time
+ *		NUM		Number of context switches
+ *		CSWTIME(us)	Time consumed context switching, us
+ *		AVGTIME(us)	Average context switch time, us
+ *
+ * THANKS: Toomas Soome
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 17-May-2005  Brendan Gregg   Created this.
+ * 03-Nov-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	/* print header */
+	printf("%-20s  %8s %12s %12s\n", "TIME", "NUM", "CSWTIME(us)",
+	    "AVGTIME(us)");
+	times = 0;
+	num = 0;
+}
+
+sched:::off-cpu
+{
+	/* csw start */
+	num++;
+	start[cpu] = timestamp;
+}
+
+sched:::on-cpu
+/start[cpu]/
+{
+	/* csw end */
+	times += timestamp - start[cpu];
+	start[cpu] = 0;
+}
+
+profile:::tick-1sec
+{
+	/* print output */
+	printf("%20Y  %8d %12d %12d\n", walltimestamp, num, times/1000,
+	    num == 0 ? 0 : times/(1000 * num));
+	times = 0;
+	num = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/cswstat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcps.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcps.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcps.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dnlcps.d - DNLC stats by process.
+ *            Written in DTrace (Solaris 10 3/05).
+ *
+ * The DNLC is the Directory Name Lookup Cache. Filename lookups often
+ * return a hit from here, before needing to traverse the regular file
+ * system cache or go to disk.
+ *
+ * dnlcps.d prints DNLC statistics by process.
+ *
+ * $Id: dnlcps.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	dnlcps.d        # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID             Process ID
+ *		CMD          	Command name
+ *		value        	0 == miss, 1 == hit
+ *		count        	number of occurrences
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Mar-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this a lot.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * DNLC return
+ */
+fbt:genunix:dnlc_lookup:return
+{
+	this->code = arg1 == 0 ? 0 : 1;
+	@Result[execname, pid] = lquantize(this->code, 0, 1, 1);
+}
+
+/*
+ * Print report
+ */
+dtrace:::END
+{
+	printa(" CMD: %-16s PID: %d\n%@d\n", @Result);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcps.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcsnoop.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcsnoop.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcsnoop.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,92 @@
+#!/usr/sbin/dtrace -s
+/*
+ * dnlcsnoop.d - snoop DNLC activity.
+ *               Written in DTrace (Solaris 10 3/05).
+ *
+ * The DNLC is the Directory Name Lookup Cache. Filename lookups often
+ * return a hit from here, before needing to traverse the regular file
+ * system cache or go to disk.
+ *
+ * $Id: dnlcsnoop.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	dnlcsnoop.d     # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID             Process ID
+ *		CMD          	Command name
+ *		TIME         	Elapsed time for lookup, us
+ *		HIT          	DNLC hit Y/N
+ *		PATH         	Path for DNLC lookup
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 27-Mar-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this a lot.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("%6s %-12s %5s %3s %s\n",
+	    "PID", "CMD", "TIME", "HIT", "PATH");
+}
+
+/*
+ * DNLC lookup
+ */
+fbt:genunix:dnlc_lookup:entry
+{
+	/* store path */
+	self->path = stringof(args[0]->v_path);
+
+	/* check for trailing "/" */
+	this->len = strlen(self->path);
+	self->join = *(char *)(args[0]->v_path + this->len - 1) == '/' ?
+	    "" : "/";
+
+	/* store lookup name */
+	self->name = stringof(arg1);
+
+	/* store start time */
+	self->start = timestamp;
+}
+
+/*
+ * DNLC return
+ */
+fbt:genunix:dnlc_lookup:return
+/self->start/
+{
+	/* calculate elapsed time */
+	this->elapsed = (timestamp - self->start) / 1000;
+
+	/* print output */
+	printf("%6d %-12.12s %5d %3s %s%s%s\n",
+	    pid, execname, this->elapsed, arg1 == 0 ? "N" : "Y",
+	    self->path, self->join, self->name);
+
+	/* clear variables */
+	self->path = 0;
+	self->join = 0;
+	self->name = 0;
+	self->start = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcsnoop.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/dnlcstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,162 @@
+#!/usr/bin/sh
+#
+# dnlcstat - DNLC statistics.
+#            Written in DTrace (Solaris 10 3/05).
+#
+# The DNLC is the Directory Name Lookup Cache. Filename lookups often
+# return a hit from here, before needing to traverse the regular file
+# system cache or go to disk.
+#
+# $Id: dnlcstat 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	dnlcstat [interval [count]]
+#
+# FIELDS:
+#
+#		%hit	hit percentage for this sample
+#		hit	number of DNLC hits in this sample
+#		miss	number of DNLC misses in this sample
+#
+# SEE ALSO: 	CacheKit, http://www.brendangregg.com/cachekit.html
+#		(contains a dnlcstat written in Perl, which uses less CPU)
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 27-Mar-2004	Brendan Gregg	Created this.
+# 14-Jun-2005	   "      "  	Updated style.
+# 14-Jun-2005	   "      "  	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default values
+interval=1; count=-1
+
+### check arguments
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END >&2
+	USAGE: dnlcstat [interval [count]]
+	       dnlcstat          # 1 second samples, infinite
+	  eg,
+	       dnlcstat 1        # print every 1 second
+	       dnlcstat 5 6      # print every 5 seconds, 6 times
+	END
+        exit 1
+fi
+
+### argument logic
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+        count=$1; shift
+fi
+if [ $interval -eq 0 ]; then
+        interval=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN = 21;
+
+ int hits;			/* hits */
+ int misses;			/* misses */
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	lines = SCREEN + 1;
+	counts = COUNTER;
+	secs = INTERVAL;
+	first = 1;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ tick-1sec
+ /first || (secs == 0 && lines > SCREEN)/
+ { 
+	printf("%10s %8s %8s\n","dnlc  %hit","hit","miss");
+	lines = 0;
+	first = 0;
+ }
+
+ /*
+  * Probe DNLC lookups
+  */
+ fbt:genunix:dnlc_lookup:return
+ {
+	hits   += arg1 == 0 ? 0 : 1;
+	misses += arg1 == 0 ? 1 : 0;
+ }
+
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+
+ /*
+  * Print output line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* calculate hit percent */
+	this->divide = misses + hits == 0 ? 1 : misses + hits;
+	ratio = hits * 100 / this->divide;
+
+	/* print output */
+	printf("%10d %8d %8d\n",ratio,hits,misses);
+
+	/* clear counters */
+	hits = 0;
+	misses = 0;
+
+        /* process counts */
+        secs = INTERVAL;
+        counts--;
+        lines++;
+
+ }
+
+ /*
+  * End
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+        exit(0);
+ }
+'
+

Added: trunk/cddl/contrib/dtracetoolkit/Kernel/kstat_types.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/kstat_types.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/kstat_types.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * kstat_types.d - Trace kstat reads with type info.
+ *                 Written using DTrace (Solaris 10 3/05)
+ *
+ * kstat is the Kernel Statistics framework, which is used by tools
+ * such as vmstat, iostat, mpstat and sar. Try running vmstat while
+ * kstat_types.d is tracing - you should see details of the kstat
+ * reads performed.
+ *
+ * $Id: kstat_types.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	kstat_types.d	(early release, check for updates)
+ *
+ * FIELDS:
+ *		CMD		command name
+ *		CLASS		kstat class (ks_class)
+ *		TYPE		kstat type as a string (ks_type)
+ *		MOD:INS:NAME	kstat module:instance:name
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Feb-2006	Brendan Gregg	Created this.
+ * 11-Feb-2006	   "      "	Last update.
+ */
+
+#include <sys/isa_defs.h>
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("%-16s %-16s %-6s %s\n",
+	    "CMD", "CLASS", "TYPE", "MOD:INS:NAME");
+}
+
+fbt::read_kstat_data:entry
+{
+#ifdef _MULTI_DATAMODEL
+	self->uk = (kstat32_t *)copyin((uintptr_t)arg1, sizeof (kstat32_t));
+#else
+	self->uk = (kstat_t *)copyin((uintptr_t)arg1, sizeof (kstat_t));
+#endif
+	printf("%-16s %-16s %-6s %s:%d:%s\n", execname,
+	    self->uk->ks_class == "" ? "." : self->uk->ks_class,
+	    self->uk->ks_type == 0 ? "raw"
+	    :  self->uk->ks_type == 1 ? "named"
+	    :  self->uk->ks_type == 2 ? "intr"
+	    :  self->uk->ks_type == 3 ? "io"
+	    :  self->uk->ks_type == 4 ? "timer" : "?",
+	    self->uk->ks_module, self->uk->ks_instance, self->uk->ks_name);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/kstat_types.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/modcalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/modcalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/modcalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * modcalls.d - kernel function calls by module. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: modcalls.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+fbt:::entry { @calls[probemod] = count(); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/modcalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/priclass.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/priclass.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/priclass.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,67 @@
+#!/usr/sbin/dtrace -s
+/*
+ * priclass.d - priority distribution by scheduling class.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that samples at 1000 Hz the current
+ * thread's scheduling class and priority. A distribution plot is printed.
+ *
+ * With priorities, the higher the priority the better chance the thread
+ * has of being scheduled.
+ *
+ * This idea came from the script /usr/demo/dtrace/pri.d, which
+ * produces similar output for priority changes, not samples.
+ *
+ * $Id: priclass.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       priclass.d      # hit Ctrl-C to end sampling
+ *
+ * FIELDS:
+ *              value           process priority
+ *              count           number of samples of at least this priority
+ *
+ * Also printed is the scheduling class,
+ *
+ *		TS		time sharing
+ *		IA		interactive
+ *		RT		real time
+ *		SYS		system
+ *		FSS		fair share schedular
+ *
+ * BASED ON: /usr/demo/dtrace/pri.d
+ *
+ * SEE ALSO: DTrace Guide "profile Provider" chapter (docs.sun.com)
+ *           dispadmin(1M)
+ *
+ * PORTIONS: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Feb-2006	Brendan Gregg	Created this.
+ * 22-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@count[stringof(curlwpsinfo->pr_clname)]
+	    = lquantize(curlwpsinfo->pr_pri, 0, 170, 10);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/priclass.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/pridist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/pridist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/pridist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pridist.d - process priority distribution.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that samples at 1000 Hz which process
+ * is on the CPUs, and what the priority is. A distribution plot is printed.
+ *
+ * With priorities, the higher the priority the better chance the process
+ * (actually, thread) has of being scheduled.
+ *
+ * This idea came from the script /usr/demo/dtrace/profpri.d, which
+ * produces similar output for one particular PID.
+ *
+ * $Id: pridist.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       pridist.d       # hit Ctrl-C to end sampling
+ *
+ * FIELDS:
+ *              CMD             process name
+ *              PID             process ID
+ *              value           process priority
+ *              count           number of samples of at least this priority
+ *
+ * BASED ON: /usr/demo/dtrace/profpri.d
+ *
+ * SEE ALSO:
+ *           DTrace Guide "profile Provider" chapter (docs.sun.com)
+ *           dispadmin(1M)
+ *
+ * PORTIONS: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 13-Jun-2005	Brendan Gregg	Created this.
+ * 22-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Sampling... Hit Ctrl-C to end.\n");
+}
+
+profile:::profile-1000hz
+{
+	@Count[execname, pid] = lquantize(curlwpsinfo->pr_pri, 0, 170, 5);
+}
+
+dtrace:::END
+{
+	printa(" CMD: %-16s PID: %d\n%@d\n", @Count);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/pridist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/putnexts.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/putnexts.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/putnexts.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,38 @@
+#!/usr/sbin/dtrace -s
+/*
+ * putnexts.d - stream putnext() tracing with stacks. Solaris, DTrace.
+ *
+ * This shows who is calling putnext() to who, by listing the destination
+ * queue and the calling stack, by frequency count. This is especially useful
+ * for understanding streams based frameworks, such as areas of the Solaris
+ * TCP/IP stack.
+ *
+ * $Id: putnexts.d 14 2007-09-11 08:03:35Z brendan $
+ *
+ * USAGE:	putnext.d
+ *
+ * BASED ON: /usr/demo/dtrace/putnext.d
+ *
+ * PORTIONS: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005  Brendan Gregg   Created this.
+ */
+
+fbt::putnext:entry
+{
+	@[stringof(args[0]->q_qinfo->qi_minfo->mi_idname), stack(5)] = count();
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/putnexts.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Kernel/whatexec.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Kernel/whatexec.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Kernel/whatexec.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -s
+/*
+ * whatexec.d - Examine the type of files exec'd.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This prints the first four chacacters of files that are executed.
+ * This traces the kernel function findexec_by_hdr(), which checks for
+ * a known magic number in the file's header.
+ *
+ * The idea came from a demo I heard about from the UK, where a
+ * "blue screen of death" was displayed for "MZ" files (although I
+ * haven't seen the script or the demo).
+ *
+ * $Id: whatexec.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	whatexec.d	(early release, check for updates)
+ *
+ * FIELDS:
+ *		PEXEC		parent command name
+ *		EXEC		pathname to file exec'd
+ *		OK		is type runnable, Y/N
+ *		TYPE		first four characters from file
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Feb-2006  Brendan Gregg   Created this.
+ * 25-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+this char *buf;
+
+dtrace:::BEGIN
+{
+	printf("%-16s %-38s %2s %s\n", "PEXEC", "EXEC", "OK", "TYPE");
+}
+
+fbt::gexec:entry
+{
+	self->file = cleanpath((*(struct vnode **)arg0)->v_path);
+	self->ok = 1;
+}
+
+fbt::findexec_by_hdr:entry
+/self->ok/
+{
+	bcopy(args[0], this->buf = alloca(5), 4);
+	this->buf[4] = '\0';
+	self->hdr = stringof(this->buf);
+}
+
+fbt::findexec_by_hdr:return
+/self->ok/
+{
+	printf("%-16s %-38s %2s %S\n", execname, self->file,
+	    arg1 == NULL ? "N" : "Y", self->hdr);
+	self->hdr = 0;
+}
+
+fbt::gexec:return
+{
+	self->file = 0;
+	self->ok = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Kernel/whatexec.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/License
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/License	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/License	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link Docs/cddl1.txt
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/License
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Locks/lockbydist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Locks/lockbydist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Locks/lockbydist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * lockbydist.d - lock distrib. by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: lockbydist.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+lockstat:::adaptive-block { @time[execname] = quantize(arg1); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Locks/lockbydist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Locks/lockbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Locks/lockbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Locks/lockbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * lockbyproc.d - lock time by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: lockbyproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+lockstat:::adaptive-block { @time[execname] = sum(arg1); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Locks/lockbyproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Man/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,40 @@
+Man - Man pages
+
+   There are a number of ways you can read these man pages. Either,
+
+   1. Add this directory to your MANPATH,
+
+	cd Man
+	MANPATH=$MANPATH:$PWD
+	man iosnoop
+
+   2. If the DTraceToolkit has been installed, and that dir to your MANPATH,
+
+	MANPATH=$MANPATH:/opt/DTT/Man
+	man iosnoop
+
+   3. Set MANPATH to "." every time you read a script,
+
+	cd Man
+	MANPATH=. man iosnoop
+
+   4. Use the -M option to "man", if your OS has it,
+
+	man -M Man iosnoop
+
+   5. Prentend that you are /usr/bin/man, if your OS has nroff,
+
+	nroff -man Man/man1m/iosnoop.1m | more
+
+   6. Pretend that you are /usr/bin/nroff,
+
+	more Man/man1m/iosnoop.1m
+
+   7. Pretend that you have no pagers installed,
+
+	while read line; do echo $line; done < Man/man1m/iosnoop.1m
+
+   8. Pretend that you can read hex,
+
+	od -x Man/man1m/iosnoop.1m
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/anonpgpid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/anonpgpid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/anonpgpid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH anonpgpid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+anonpgpid.d \- anonymous memory paging info by PID on CPU. Uses DTrace.
+.SH SYNOPSIS
+.B anonpgpid.d
+.SH DESCRIPTION
+This scripts may help identify which processes are affected by a system
+with low memory, which is paging to the physical swap device. A report
+of the process on the CPU when paging occured is printed.
+
+This program is currently an approximation  - often the process when writing
+pages to swap will be "pageout" the pageout scanner, or "rcapd" the
+resource capping daemon.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print report after Ctrl-C is hit,
+# 
+.B anonpgpid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command name for the process
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total bytes during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+anonpgpid.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/bitesize.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/bitesize.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/bitesize.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+.TH bitesize.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+bitesize.d \- analyse disk I/O size by process. Uses DTrace.
+.SH SYNOPSIS
+.B bitesize.d
+.SH DESCRIPTION
+This produces a report for the size of disk events caused by
+processes. These are the disk events sent by the block I/O driver.
+
+If applications must use the disks, we generally prefer they do so
+sequentially with large I/O sizes, or larger "bites".
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B bitesize.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command and argument list
+.TP
+value
+size in bytes
+.TP
+count
+number of I/O operations
+.PP
+.SH NOTES
+The application may be requesting smaller sized operations, which
+are being rounded up to the nearest sector size or UFS block size.
+
+To analyse what the application is requesting, DTraceToolkit programs
+such as Proc/fddist may help.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+bitesize.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), seeksize(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/connections.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/connections.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/connections.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,77 @@
+.TH connections 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+connections \- print inbound TCP connections by process. Uses DTrace.
+.SH SYNOPSIS
+.B connections
+[\-htvZ]
+.SH DESCRIPTION
+This displays the PID and command name of the processes accepting
+connections, along with the source IP address and destination port number
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-t
+print timestamps, us
+.TP
+\-v
+print timestamps, string
+.TP
+\-Z
+print zonename
+.PP
+.SH EXAMPLES
+.TP
+snoop inbound connections
+# 
+.B connections
+.TP
+snoop connections with time
+#
+.B connections
+\-v
+.PP
+.SH FIELDS
+.TP
+UID
+user ID of the server
+.TP
+PID
+process ID of the server
+.TP
+CMD
+server command name
+.TP
+TIME
+timestamp, us
+.TP
+TIMESTR
+timestamp, string
+.TP
+PORT
+server port
+.TP
+IP_SOURCE
+source IP of the client, written in IPv4 style
+.TP
+ZONE
+zonename
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+connections will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), snoop(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpudists.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpudists.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpudists.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,86 @@
+.TH cpudists 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+cpudists \- CPU distrib. by Kernel/Idle/Process. Uses DTrace.
+.SH SYNOPSIS
+.B cpudists
+[\-ahV] [\-t top] [interval [count]]
+.SH DESCRIPTION
+cpudists prints the CPU time distributions consumed by the Kernel, 
+Idle threads and by Processes. 
+
+This program is a variant on cputimes, and creates extra kernel load as
+described in cputimes(1M). cpudists prints out a distribution report
+(a quantize aggregation), such that the number of occurrences and 
+duration of each thread using the CPUs can be identified. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo and sched providers.
+.SH OPTIONS
+.TP
+\-a
+print all processes
+.TP
+\-T
+print totals
+.TP
+\-V
+don't print timestamps
+.TP
+\-t num
+print top num lines only
+.SH EXAMPLES
+.TP
+Default, print Kernel/Idle/Process time, 1 x 1 second sample,
+# 
+.B cpudists
+.PP
+.TP
+Print every 1 second,
+# 
+.B cpudists
+1
+.PP
+.TP
+Print all processes every 10 seconds,
+#
+.B cpudists
+\-a 10
+.PP
+.TP
+Print top 8 lines every 5 seconds,
+#
+.B cpudists
+\-at 8 5
+.PP
+.SH FIELDS
+.TP
+IDLE
+Idle time - CPU running idle thread
+.TP
+KERNEL
+Kernel time - Kernel servicing interrupts, ...
+.TP
+PROCESS
+Process time - PIDs running on the system
+.TP
+value
+Time in nanoseconds
+.TP
+count
+Number of occurrences that were at least this duration (ns)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cpudists will run once, unless a count is specified.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputimes.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputimes.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputimes.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,87 @@
+.TH cputimes 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+cputimes \- print time by Kernel/Idle/Process. Uses DTrace.
+.SH SYNOPSIS
+.B cputimes
+[\-ahTV] [\-t top] [interval [count]]
+.SH DESCRIPTION
+cputimes prints the CPU time consumed by the Kernel, Idle threads and
+by Processes. 
+
+This program accurately measures time consumed by the kernel, but in
+doing so creates extra kernel load of it's own. This extra kernel
+activity can be measured by running one cputimes and then another, and
+comparing the difference in kernel consumed time. This method can be
+used to estimate the load caused by other DTrace scripts.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo and sched providers.
+.SH OPTIONS
+.TP
+\-a
+print all processes
+.TP
+\-T
+print totals
+.TP
+\-V
+don't print timestamps
+.TP
+\-t num
+print top num lines only
+.SH EXAMPLES
+.TP
+Default, print Kernel/Idle/Process time, 1 x 1 second sample,
+# 
+.B cputimes
+.PP
+.TP
+Print every 1 second,
+# 
+.B cputimes
+1
+.PP
+.TP
+Print all processes every 10 seconds,
+#
+.B cputimes
+\-a 10
+.PP
+.TP
+Print top 8 lines every 5 seconds,
+#
+.B cputimes
+\-at 8 5
+.PP
+.SH FIELDS
+.TP
+THREADS
+Either KERNEL, IDLE, PROCESS or process name.
+.TP
+IDLE
+Idle time - CPU running idle thread
+.TP
+KERNEL
+Kernel time - Kernel servicing interrupts, ...
+.TP
+PROCESS
+Process time - PIDs running on the system
+.TP
+TIME (ns)
+Sum of the CPU time, ns (nanoseconds)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cputimes will run once, unless a count is specified.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputypes.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputypes.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/cputypes.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH cputypes.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+cputypes.d \- list CPU types. Uses DTrace.
+.SH SYNOPSIS
+.B cputypes.d
+.SH DESCRIPTION
+This program lists CPU type information for the online CPUs 
+in the system.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+List CPU types,
+# 
+.B cputypes.d
+.PP
+.SH FIELDS
+.TP
+CPU
+CPU ID
+.TP
+CHIP
+chip ID
+.TP
+PSET
+processor set ID
+.TP
+LGRP
+latency group ID
+.TP
+CLOCK
+clock speed, MHz
+.TP
+TYPE
+CPU type
+.TP
+FPU
+floating point identifier type
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+psrinfo(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpuwalk.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpuwalk.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/cpuwalk.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+.TH cpuwalk.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+cpuwalk.d \- Measure which CPUs a process runs on. Uses DTrace.
+.SH SYNOPSIS
+.B cpuwalk.d [duration]
+.SH DESCRIPTION
+This program is for multi-CPU servers, and can help identify if a process
+is running on multiple CPUs concurrently or not.
+
+A duration may be specified in seconds.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+this runs until Ctrl\-C is hit,
+# 
+.B cpuwalk.d
+.PP
+.TP
+run for 5 seconds,
+#
+.B cpuwalk.d
+5
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+value
+CPU id
+.TP
+count
+number of samples (sample at 100 hz)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cpuwalk.d will run until Ctrl\-C is hit, or the duration specified
+is reached.
+.SH SEE ALSO
+threaded.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/crash.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/crash.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/crash.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,81 @@
+.TH crash.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+crash.d \- Crashed Application info. Uses DTrace.
+.SH SYNOPSIS
+.B crash.d
+.SH DESCRIPTION
+crash.d monitors for applications that crash. 
+When a crash via a SIGSEGV or SIGBUS is detected, a report of the
+process state is printed out.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider, and uses /usr/bin/prun.
+.SH FIELDS
+.TP
+Type
+signal type
+.TP
+Program
+execname of process
+.TP
+Args
+argument listing of process
+.TP
+PID
+process ID
+.TP
+TID
+thread ID
+.TP
+LWPs
+number of Light Weight Processes
+.TP
+PPID
+parent process ID
+.TP
+UID
+user ID
+.TP
+TaskID
+task ID
+.TP
+ProjID
+project ID
+.TP
+PoolID
+pool ID
+.TP
+ZoneID
+zone ID
+.TP
+zone
+zone name
+.TP
+CWD
+current working directory
+.TP
+errno
+error number of last syscall
+.PP
+.SH EXAMPLES
+.TP
+Monitor for crashing applications.
+# 
+.B crash.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+crash.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/creatbyproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/creatbyproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/creatbyproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+.TH creatbyproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+creatbyproc.d \- snoop creat()s by process name. Uses DTrace.
+.SH SYNOPSIS
+.B creatbyproc.d
+.SH DESCRIPTION
+creatbyproc.d is a DTrace OneLiner to print file creations as it 
+occurs, including the name of the process calling the open.
+
+This matches file creates from the creat() system call; not all 
+file creation occurs in this way, sometimes it is through open()
+with a O_CREAT flag, this script will not monitor that activity.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This prints process names and new pathnames until Ctrl\-C is hit.
+# 
+.B creatbyproc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+The CPU that recieved the event
+.TP
+ID
+A DTrace probe ID for the event
+.TP
+FUNCTION:NAME
+The DTrace probe name for the event
+.TP
+remaining fields
+The first is the name of the process, the second is the file pathname.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+creatbyproc.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/cswstat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/cswstat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/cswstat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH cswstat.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+cswstat.d \- context switch time stats. Uses DTrace.
+.SH SYNOPSIS
+.B cswstat.d
+.SH DESCRIPTION
+cswstat.d is a DTrace program to print context switch time
+statistics.
+
+This program measures the time consumed during context switching,
+and prints it with the number of context switches and the average
+time.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sched provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B cswstat.d
+.PP
+.SH FIELDS
+.TP
+TIME
+The current time
+.TP
+NUM
+Number of context switches in this sample
+.TP
+CSWTIME
+Total time consumed context switching, us
+.TP
+AVGTIME
+Average time for each context switch, us
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+cswstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+mpstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dappprof.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dappprof.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dappprof.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,98 @@
+.TH dappprof 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dappprof \- profile user and lib function usage. Uses DTrace.
+.SH SYNOPSIS
+.B dappprof
+[\-acehoTU] [\-u lib] { \-p PID | command }
+.SH DESCRIPTION
+dappprof prints details on user and library call times for processes
+as a summary style aggragation. By default the user fuctions are
+traced, options can be used to trace library activity. Output can
+include function counts, elapsed times and on cpu times.
+
+The elapsed times are interesting, to help identify functions
+that take some time to complete (during which the process may
+have slept). CPU time helps us identify syscalls that
+are consuming CPU cycles to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the pid provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-c
+print function counts
+.TP
+\-e
+print elapsed times, ns
+.TP
+\-o
+print CPU times, ns
+.TP
+\-T
+print totals
+.TP
+\-p PID
+examine this PID
+.TP
+\-u lib
+trace this library instead
+.TP
+\-U
+trace all library and user functions
+.PP
+.SH EXAMPLES
+.TP
+run and examine the "df \-h" command,
+# 
+.B dappprof
+df \-h
+.PP
+.TP
+print elapsed times, on-cpu times and counts for "df \-h",
+#
+.B dappprof
+-ceo df \-h
+.TP
+print elapsed times for PID 1871,
+# 
+.B dappprof
+\-p 1871
+.PP
+.TP
+print all data for PID 1871,
+#
+.B dappprof
+\-ap 1871
+.PP
+.SH FIELDS
+.TP
+CALL
+Function call name
+.TP
+ELAPSED
+Total elapsed time, nanoseconds
+.TP
+CPU
+Total on-cpu time, nanoseconds
+.TP
+COUNT
+Number of occurrences
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dappprof will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dapptrace(1M), dtrace(1M), apptrace(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dapptrace.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dapptrace.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dapptrace.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,112 @@
+.TH dapptrace 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dapptrace \- trace user and library function usage. Uses DTrace.
+.SH SYNOPSIS
+.B dapptrace
+[\-acdeFlhoU] [\-u lib] { \-p PID | command }
+.SH DESCRIPTION
+dapptrace prints details on user and library function calls. By
+default it traces user functions only, options can be used to
+trace library activity.
+
+Of particular interest is the elapsed times and on cpu times, which
+can identify both function calls that are slow to complete, and those
+which are consuming CPU cycles.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the pid provider.
+.SH OPTIONS
+.TP
+\-a
+print all details
+.TP
+\-b bufsize
+dynamic variable buffer size. Increase this if you notice dynamic
+variable drop errors. The default is "4m" for 4 megabytes per CPU.
+.TP
+\-c
+print function call counts
+.TP
+\-d
+print relative timestamps, us
+.TP
+\-e
+print elapsed times, us
+.TP
+\-F
+print flow indentation
+.TP
+\-l
+force printing of pid/lwpid per line
+.TP
+\-o
+print on-cpu times, us
+.TP
+\-p PID
+examine this PID
+.TP
+\-u lib
+trace this library instead
+.TP
+\-U
+trace all library and user functions
+.PP
+.SH EXAMPLES
+.TP
+run and examine the "df -h" command,
+# 
+.B dapptrace 
+df -h
+.PP
+.TP
+examine PID 1871,
+# 
+.B dapptrace
+\-p 1871 
+.PP
+.TP
+print using flow indents,
+#
+.B dapptrace
+\-Fp 1871
+.PP
+.TP
+print elapsed and CPU times,
+#
+.B dapptrace
+\-eop 1871
+.PP
+.SH FIELDS
+.TP
+PID/LWPID
+Process ID / Lightweight Process ID
+.TP
+RELATIVE
+relative timestamps to the start of the thread, us (microseconds)
+.TP
+ELAPSD
+elapsed time for this system call, us
+.TP
+CPU
+on-cpu time for this system call, us
+.TP
+CALL(args)
+function call name, with some arguments in hexadecimal
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dapptrace will run forever until Ctrl\-C is hit, or if a command was
+executed dapptrace will finish when the command ends.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dappprof(1M), dtrace(1M), apptrace(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dexplorer.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dexplorer.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dexplorer.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,64 @@
+.TH dexplorer 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dexplorer \- run a series of scripts and archive output. Uses DTrace.
+.SH SYNOPSIS
+.B dexplorer
+.SH DESCRIPTION
+This program automatically runs a collection of DTrace scripts to examine
+many areas of the system, and places the output in a meaningful directory
+structure that is tar'd and gzip'd.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-q
+quiet mode
+.TP
+\-y
+"yes", don't prompt for confirmation
+.TP
+\-D
+don't delete output dir
+.TP
+\-T
+don't create output tar.gz
+.TP
+\-d outputdir
+output directory
+.TP
+\-i interval
+interval for each sample
+.PP
+.SH EXAMPLES
+.TP
+Create output file in current directory,
+# 
+.B dexplorer
+.TP
+Don't prompt
+#
+.B dexplorer
+\-y
+.TP
+Leave expanded directories, don't archive and compress,
+#
+.B dexplorer
+\-DT
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/diskhits.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/diskhits.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/diskhits.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH diskhits 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+diskhits \- disk access by file offset. Uses DTrace.
+.SH SYNOPSIS
+.B diskhits pathname
+.SH DESCRIPTION
+This prints how a file was accessed, the locations on a distribution plot.
+This is for the cache misses only - the file activity that resulted in
+disk events.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample /var/adm/messages disk activity,
+# 
+.B diskhits /var/adm/messages
+.PP
+.SH FIELDS
+.TP
+Location (KB)
+the file offset of the disk activity, Kbytes
+.TP
+Size (KB)
+size of the disk activity, Kbytes
+.TP
+Total RW
+Total disk activity, reads + writes
+.PP
+.SH BASED ON
+/usr/demo/dtrace/applicat.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "io Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+diskhits will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dispqlen.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dispqlen.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dispqlen.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,36 @@
+.TH dispqlen.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dispqlen.d \- dispatcher queue length by CPU. Uses DTrace.
+.SH SYNOPSIS
+.B dispqlen.d
+.SH DESCRIPTION
+The dispatcher queue length is an indication of CPU saturation.
+It is not an indicatior of utilisation - the CPUs may or may not be
+utilised when the dispatcher queue reports a length of zero.
+
+This script measures this activity by sampling at 1000 Hertz per CPU.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - walks private kernel structs.
+.SH EXAMPLES
+.TP
+Print dispatcher queue length by CPU.
+# 
+.B dispqlen.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dispqlen.d will sample until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+uptime(1), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcps.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcps.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcps.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH dnlcps.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dnlcps.d \- DNLC stats by process. Uses DTrace.
+.SH SYNOPSIS
+.B dnlcps.d
+.SH DESCRIPTION
+The DNLC is the Directory Name Lookup Cache. Filename lookups often
+return a hit from here, before needing to traverse the regular file
+system cache or go to disk.
+
+dnlcps.d prints DNLC statistics by process.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B dnlcps.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+value
+0 == miss, 1 == hit
+.TP
+count
+number of occurrences
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dnlcps.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcsnoop.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcsnoop.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcsnoop.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,52 @@
+.TH dnlcsnoop.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dnlcsnoop.d \- snoop DNLC activity. Uses DTrace.
+.SH SYNOPSIS
+.B dnlcsnoop.d
+.SH DESCRIPTION
+The DNLC is the Directory Name Lookup Cache. Filename lookups often
+return a hit from here, before needing to traverse the regular file
+system cache or go to disk.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B dnlcsnoop.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+TIME
+Elapsed time for lookup, us
+.TP
+HIT
+DNLC hit Y/N
+.TP
+PATH
+Path for DNLC lookup
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dnlcsnoop.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcstat.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcstat.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dnlcstat.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+.TH dnlcstat 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dnlcstat \- DNLC statistics. Uses DTrace.
+.SH SYNOPSIS
+.B dnlcstat
+[interval [count]]
+.SH DESCRIPTION
+The DNLC is the Directory Name Lookup Cache. Filename lookups often
+return a hit from here, before needing to traverse the regular file
+system cache or go to disk.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print DNLC statistics every second,
+# 
+.B dnlcstat
+.TP
+Print every 5 seconds, 6 times,
+#
+.B dnlcstat
+5 6
+.PP
+.SH FIELDS
+.TP
+%hit
+hit percentage for this sample
+.TP
+hit
+number of DNLC hits in this sample
+.TP
+miss
+number of DNLC misses in this sample
+.PP
+.SH NOTES
+See the CacheKit, http://www.brendangregg.com/cachekit.html for a version
+of dnlcstat written in Perl (Kstat) that uses much less CPU.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dnlcstat will run until Ctrl\-C is hit, or until the count argument
+has been satisfied.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dtruss.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dtruss.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dtruss.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,123 @@
+.TH dtruss 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dtruss \- process syscall details. Uses DTrace.
+.SH SYNOPSIS
+.B dtruss
+[\-acdeflhoLs] [\-t syscall] { \-p PID | \-n name | command }
+.SH DESCRIPTION
+dtruss prints details on process system calls. It is like a DTrace
+version of truss, and has been designed to be less intrusive than
+truss.
+
+Of particular interest is the elapsed times and on cpu times, which
+can identify both system calls that are slow to complete, and those
+which are consuming CPU cycles.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all details
+.TP
+\-b bufsize
+dynamic variable buffer size. Increase this if you notice dynamic
+variable drop errors. The default is "4m" for 4 megabytes per CPU.
+.TP
+\-c
+print system call counts
+.TP
+\-d
+print relative timestamps, us
+.TP
+\-e
+print elapsed times, us
+.TP
+\-f
+follow children as they are forked
+.TP
+\-l
+force printing of pid/lwpid per line
+.TP
+\-L
+don't print pid/lwpid per line
+.TP
+\-n name
+examine processes with this name
+.TP
+\-o
+print on-cpu times, us
+.TP
+\-s
+print stack backtraces
+.TP
+\-p PID
+examine this PID
+.TP
+\-t syscall
+examine this syscall only
+.PP
+.SH EXAMPLES
+.TP
+run and examine the "df -h" command
+# 
+.B dtruss 
+df -h
+.PP
+.TP
+examine PID 1871
+# 
+.B dtruss
+\-p 1871 
+.PP
+.TP
+examine all processes called "tar"
+#
+.B dtruss
+\-n tar
+.PP
+.TP
+run test.sh and follow children
+#
+.B dtruss
+\-f test.sh
+.TP
+run the "date" command and print elapsed and on cpu times,
+#
+.B dtruss
+\-eo date
+.PP
+.SH FIELDS
+.TP
+PID/LWPID
+Process ID / Lightweight Process ID
+.TP
+RELATIVE
+relative timestamps to the start of the thread, us (microseconds)
+.TP
+ELAPSD
+elapsed time for this system call, us
+.TP
+CPU
+on-cpu time for this system call, us
+.TP
+SYSCALL(args)
+system call name, with arguments (some may be evaluated)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dtruss will run forever until Ctrl\-C is hit, or if a command was
+executed dtruss will finish when the command ends.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/dvmstat.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/dvmstat.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/dvmstat.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,93 @@
+.TH dvmstat 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+dvmstat \- vmstat by PID/name/command. Uses DTrace.
+.SH SYNOPSIS
+.B dvmstat
+{ \-p PID | \-n name | command }
+.SH DESCRIPTION
+This program provides vmstat like data for one particular PID, a
+process name, or when running a command. It prints statistics
+every second.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH OPTIONS
+.TP
+\-p PID
+examine this Process ID
+.TP
+\-n name
+examine processes with this name
+.PP
+.SH EXAMPLES
+.TP
+examine PID 1871,
+# 
+.B dvmstat
+\-p 1871
+.TP
+examine processes called "tar",
+#
+.B dvmstat
+\-n tar
+.TP
+run and examine "df -h",
+#
+.B dvmstat
+df -h
+.PP
+.SH FIELDS
+.TP
+re
+page reclaims, Kbytes
+.TP
+maj
+major faults, Kbytes
+.TP
+mf
+minor faults, Kbytes
+.TP
+fr
+page frees, Kbytes
+.TP
+epi
+executable page ins, Kbytes
+.TP
+epo
+executable page outs, Kbytes
+.TP
+api
+anonymous page ins, Kbytes
+.TP
+apo
+anonymous page outs, Kbytes
+.TP
+fpi
+filesystem page ins, Kbytes
+.TP
+fpo
+filesystem page outs, Kbytes
+.TP
+sy
+system calls, number
+.PP
+.SH NOTES
+Most of the statistics are in units of kilobytes, unlike the
+original vmstat command which sometimes uses pages.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+dvmstat will run until Ctrl\-C is hit, or the command it is
+examining ends.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/errinfo.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/errinfo.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/errinfo.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,85 @@
+.TH errinfo 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+errinfo \- print errno for syscall fails. Uses DTrace.
+.SH SYNOPSIS
+.B errinfo
+[\-a|\-A|\-hsvZ] [\-c command]
+.SH DESCRIPTION
+errinfo snoops syscall failures and prints the errno value and
+description of the error number.
+
+This program can help determine if applications are silently
+failing, providing some details on the cause. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-c
+counts - print an aggregate style report containing a 
+frequency count of errors
+.TP
+\-p PID
+examine this PID only
+.TP
+\-n name
+examine processes with ths name only (eg, "ls")
+.SH EXAMPLES
+.TP
+Default output, print errors as they occur,
+# 
+.B errinfo
+.PP
+.TP
+Print a frequency count report,
+# 
+.B errinfo
+\-c 
+.PP
+.TP
+Snoop errors as they occur for "ssh" processes,
+#
+.B errinfo
+\-n ssh
+PP
+.TP
+Snoop errors for PID 81 only,
+#
+.B errinfo
+\-p 81
+.PP
+.SH FIELDS
+.TP
+EXEC
+Program name (truncated)
+.TP
+SYSCALL
+System call name
+.TP
+ERR
+Value of errno
+.TP
+DESC
+Description of errno message
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+errinfo will run forever until Ctrl\-C is hit. 
+.SH FILES
+.TP
+/usr/include/sys/errno.h
+Contains the full descriptions for the error numbers.
+.PP
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/execsnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/execsnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/execsnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,108 @@
+.TH execsnoop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+execsnoop \- snoop new process execution. Uses DTrace.
+.SH SYNOPSIS
+.B execsnoop
+[\-a|\-A|\-ejhsvZ] [\-c command]
+.SH DESCRIPTION
+execsnoop prints details of new processes as they are executed.
+Details such as UID, PID and argument listing are printed out.
+
+This program is very useful to examine short lived processes that would
+not normally appear in a prstat or "ps -ef" listing. Sometimes 
+applications will run hundreds of short lived processes in their 
+normal startup cycle, a behaviour that is easily monitored with execsnoop.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-e
+safe output, parseable. This prevents the ARGS field containing "\\n"s,
+to assist postprocessing.
+.TP
+\-j
+print project ID
+.TP
+\-s
+print start time, us
+.TP
+\-v
+print start time, string
+.TP
+\-Z
+print zonename
+.TP
+\-c command
+command name to snoop
+.SH EXAMPLES
+.TP
+Default output, print processes as they are executed,
+# 
+.B execsnoop
+.TP
+Print human readable timestamps,
+# 
+.B execsnoop
+\-v 
+.TP
+Print zonename,
+#
+.B execsnoop
+\-Z
+.TP
+Snoop this command only,
+#
+.B execsnoop
+\-f ls
+.PP
+.SH FIELDS
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+ZONE
+zonename
+.TP
+PROJ
+project ID
+.TP
+TIME
+timestamp for the exec event, us
+.TP
+STRTIME
+timestamp for the exec event, string
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+execsnoop will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/fddist.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/fddist.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/fddist.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+.TH fddist 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+fddist \- file descriptor usage distributions. Uses DTrace.
+.SH SYNOPSIS
+.B fddist [\-r|\-w]
+.SH DESCRIPTION
+This prints distributions for read and write events by file descriptor,
+by process. This can be used to determine which file descriptor a
+process is doing the most I/O with.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-r
+reads only
+.TP
+\-w
+writes only
+.PP
+.SH EXAMPLES
+.TP
+Sample both read and write activity,
+# 
+.B fddist
+.TP
+Sample reads only,
+#
+.B fddist
+\-r
+.PP
+.SH FIELDS
+.TP
+EXEC
+process name
+.TP
+PID
+process ID
+.TP
+value
+file descriptor
+.TP
+count
+number of events
+.PP
+.SH BASED ON
+/usr/demo/dtrace/lquantize.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "Aggregations" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+fddist will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/filebyproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/filebyproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/filebyproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+.TH filebyproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+filebyproc.d \- snoop opens by process name. Uses DTrace.
+.SH SYNOPSIS
+.B filebyproc.d
+.SH DESCRIPTION
+filebyproc.d is a DTrace OneLiner to print file pathnames as they are
+opened, including the name of the process calling the open.
+A line will be printed regardless of whether the open is actually
+successful or not.
+
+This is useful to learn which files applications are attempting to
+open, such as config files, database files, log files, etc.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This prints new process name and pathnames until Ctrl\-C is hit.
+# 
+.B filebyproc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+The CPU that recieved the event
+.TP
+ID
+A DTrace probe ID for the event
+.TP
+FUNCTION:NAME
+The DTrace probe name for the event
+.TP
+remaining fields
+The first is the name of the process, the second is the file pathname.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+filebyproc.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+opensnoop(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/fspaging.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/fspaging.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/fspaging.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,88 @@
+.TH fspaging.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+fspaging.d \- file system read/write and paging tracing. Uses DTrace.
+.SH SYNOPSIS
+.B fspaging.d
+.SH DESCRIPTION
+This traces file related activity: system call reads and writes,
+vnode logical read and writes (fop), vnode putpage and getpage activity,
+and disk I/O. It can be used to examine the behaviour of each I/O
+layer, from the syscall interface to what the disk is doing. Behaviour
+such as read-ahead, and max I/O size breakup can be observed.
+
+This is a verbose version of fsrw.d, as this also traces paging activity.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace file system read/write/paging events,
+# 
+.B fspaging.d
+.PP
+.SH FIELDS
+.TP
+Event
+traced event (see EVENTS below)
+.TP
+Device
+device, for disk I/O
+.TP
+RW
+either Read or Write
+.TP
+Size
+size of I/O in bytes
+.TP
+Offset
+offset of I/O in kilobytes
+.TP
+Path
+path to file on disk
+.PP
+.SH EVENTS
+.TP
+sc-read
+system call read
+.TP
+sc-write
+system call write
+.TP
+fop_read
+logical read
+.TP
+fop_write
+logical write
+.TP
+fop_getpage
+logical get page
+.TP
+fop_putpage
+logical put page
+.TP
+disk_io
+physical disk I/O
+.TP
+disk_ra
+physical disk I/O, read ahead
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+fspaging.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+fsrw.d(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/fsrw.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/fsrw.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/fsrw.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,80 @@
+.TH fsrw.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+fsrw.d \- file system read/write event tracing. Uses DTrace.
+.SH SYNOPSIS
+.B fsrw.d
+.SH DESCRIPTION
+This traces file related activity: system call reads and writes,
+vnode logical read and writes (fop), and disk I/O. It can be used
+to examine the behaviour of each I/O layer, from the syscall
+interface to what the disk is doing. Behaviour such as read-ahead, and
+max I/O size breakup can be observed.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace file system read/write events,
+# 
+.B fsrw.d
+.PP
+.SH FIELDS
+.TP
+Event
+traced event (see EVENTS below)
+.TP
+Device
+device, for disk I/O
+.TP
+RW
+either Read or Write
+.TP
+Size
+size of I/O in bytes
+.TP
+Offset
+offset of I/O in kilobytes
+.TP
+Path
+path to file on disk
+.PP
+.SH EVENTS
+.TP
+sc-read
+system call read
+.TP
+sc-write
+system call write
+.TP
+fop_read
+logical read
+.TP
+fop_write
+logical write
+.TP
+disk_io
+physical disk I/O
+.TP
+disk_ra
+physical disk I/O, read ahead
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+fsrw.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+fspaging.d(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/guess.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/guess.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/guess.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,37 @@
+.TH guess.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+guess.d \- guessing game. Uses DTrace.
+.SH SYNOPSIS
+.B guess.d
+.SH DESCRIPTION
+This is written to demonstrate this language versus the same program
+written in other languages.
+
+See http://www.brendangregg.com/guessinggame.html
+
+It exists in the DTraceToolkit as a curiosity, rather than something
+actually useful.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Play the game,
+# 
+.B guess.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+guess.d will only exit when you win the game.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotkernel.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotkernel.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotkernel.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+.TH hotkernel 1m   "$Date:: 2007-09-24 #$" "USER COMMANDS"
+.SH NAME
+hotkernel - sample on-CPU kernel-level functions and modules.
+.SH SYNOPSIS
+.B hotkernel
+[\-hm]
+.SH DESCRIPTION
+This samples the on-CPU function at 1001 Hertz, for a simple yet
+effective kernel-level profiling tool for sampling exclusive function time.
+The output will identify which function is on the CPU the most - which is
+the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+exclusive time.
+.SH OS
+Solaris
+.SH STABILITY
+stable - Written using Perl and DTrace (Solaris 10 03/05)
+.SH EXAMPLES
+.TP
+Sample kernel functions,
+# 
+.B hotkernel
+.PP
+.TP
+Sample kernel modules,
+#
+.B hotkernel
+\-m
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+hotkernel will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M), hotuser(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotspot.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotspot.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotspot.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH hotspot.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+hotspot.d \- print disk event by location. Uses DTrace.
+.SH SYNOPSIS
+.B hotspot.d
+.SH DESCRIPTION
+hotspot.d is a simple DTrace script to determine if disk activity is 
+occuring in the one place - a "hotspot". This helps us understand the 
+system's usage of a disk, it does not imply that the existance or not 
+of a hotspot is good or bad (often may be good, less seeking).
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B hotspot.d
+.PP
+.SH FIELDS
+.TP
+Disk
+disk instance name
+.TP
+Major
+driver major number
+.TP
+Minor
+driver minor number
+.TP
+value
+location of disk event, megabytes
+.TP
+count
+number of events
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+hotspot.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotuser.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotuser.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/hotuser.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,44 @@
+.TH hotuser 1m   "$Date:: 2007-09-24 #$" "USER COMMANDS"
+.SH NAME
+hotuser - sample on-CPU user-level functions and libraries.
+.SH SYNOPSIS
+.B hotuser
+[\-hl] { \-c command | \-p PID }
+.SH DESCRIPTION
+This samples the on-CPU function at 1001 Hertz, for a simple yet
+effective user-level profiling tool for sampling exclusive function time.
+The output will identify which function is on the CPU the most - which
+is the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+exclusive time.
+.SH OS
+Solaris
+.SH STABILITY
+stable - Written using Perl and DTrace (Solaris 10 03/05)
+.SH EXAMPLES
+.TP
+Sample user functions from PID 81,
+# 
+.B hotuser
+\-p 81
+.TP
+Sample user libraries from PID 81,
+#
+.B hotuser
+\-lp 81
+.TP
+Sample Xorg,
+#
+.B hotuser
+`pgrep \-n Xorg`
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+hotuser will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M), hotkernel(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/httpdstat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/httpdstat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/httpdstat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,67 @@
+.TH httpdstat.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+httpdstat.d \- realtime httpd statistics. Uses DTrace.
+.SH SYNOPSIS
+.B httpdstat.d
+[interval [count]]
+.SH DESCRIPTION
+This prints connection statistics for "httpd" processes, such as those
+from an Apache web server.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B httpdstat.d
+.TP
+Print every 5 seconds, 6 times,
+#
+.B httpdstat.d
+5 6
+.PP
+.SH FIELDS
+.TP
+TIME
+time, string
+.TP
+NUM
+number of connections
+.TP
+GET
+number of GETs
+.TP
+POST
+number of POSTs
+.TP
+HEAD
+number of HEADs
+.TP
+TRACE
+number of TRACEs
+.PP
+.SH NOTES
+All statistics are printed as a value per interval.
+
+This version does not process subsequent operations on keepalives.
+.PP
+.SH IDEA
+Ryan Matteson
+(who first wrote a solution to this).
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+httpdstat.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/icmpstat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/icmpstat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/icmpstat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH icmpstat.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+icmpstat.d \- print ICMP statistics. Uses DTrace.
+.SH SYNOPSIS
+.B icmpstat.d
+.SH DESCRIPTION
+icmpstat.d is a DTrace program to print ICMP statistics every second,
+retrieved from the MIB provider. This is a simple script to demonstrate the 
+ability to trace ICMP events.
+
+The ICMP statistics are documented in the mib2_icmp struct
+in /usr/include/inet/mib2.h; and also in the mib provider
+chapter of the DTrace Guide, found at 
+http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the mib provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B icmpstat.d
+.PP
+.SH FIELDS
+.TP
+STATISTIC
+ICMP statistic name
+.TP
+VALUE
+total of statistic during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+icmpstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/intbycpu.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/intbycpu.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/intbycpu.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+.TH intbycpu.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+intbycpu.d \- interrupts by CPU. Uses DTrace.
+.SH SYNOPSIS
+.B intbycpu.d
+.SH DESCRIPTION
+intbycpu.d is based on a DTrace OneLiner to a report of the number of 
+interrupts by CPU.
+
+The intrstat(1M) command can be used for further analysis
+of interrputs.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sdt provider interrupt probes.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B intbycpu.d
+.PP
+.SH FIELDS
+.TP
+CPU
+This is the CPU id.
+.TP
+INTERRUPTS
+This is the number of interrputs received in the sample.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+intbycpu.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+intrstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/intoncpu.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/intoncpu.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/intoncpu.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,42 @@
+.TH intoncpu.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+intoncpu.d \- print interrput on-cpu usage. Uses DTrace.
+.SH SYNOPSIS
+.B intoncpu.d
+.SH DESCRIPTION
+This prints a distribution of the on-cpu time for interrput threads.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sdt provider interrupt probes.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B intoncpu.d
+.PP
+.SH FIELDS
+.TP
+value
+Time interrupt thread was on-cpu, ns
+.TP
+count
+Number of occurrences of at least this time
+.PP
+.SH BASED ON
+/usr/demo/dtrace/intr.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "sdt Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+intoncpu.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+intrstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/inttimes.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/inttimes.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/inttimes.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,43 @@
+.TH inttimes.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+inttimes.d \- print interrput on-cpu time total. Uses DTrace.
+.SH SYNOPSIS
+.B inttimes.d
+.SH DESCRIPTION
+This prints the total time each driver instance has spent servicing
+interrupts.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sdt provider interrupt probes.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B inttimes.d
+.PP
+.SH FIELDS
+.TP
+DEVICE
+instance name of the device driver
+.TP
+TIME (ns)
+sum of time spent servicing interrupt (nanoseconds)
+.PP
+.SH BASED ON
+/usr/demo/dtrace/intr.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "sdt Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+inttimes.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+intrstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofile.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofile.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofile.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH iofile.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+iofile.d \- I/O wait time by file and process. Uses DTrace.
+.SH SYNOPSIS
+.B iofile.d
+.SH DESCRIPTION
+This prints the total I/O wait times for each filename by process.
+This can help determine why an application is performing poorly by
+identifying which file they are waiting on, and the total times.
+Both disk and NFS I/O are measured.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B iofile.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+TIME
+total wait time for disk events, us
+.TP
+FILE
+file pathname
+.PP
+.SH BASED ON
+/usr/demo/dtrace/iocpu.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iofile.d will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+iosnoop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofileb.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofileb.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/iofileb.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH iofileb.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+iofileb.d \- I/O bytes by file and process. Uses DTrace.
+.SH SYNOPSIS
+.B iofileb.d
+.SH DESCRIPTION
+This prints a summary of requested disk activity by pathname,
+providing totals of the I/O events in bytes. It is a companion to the
+iofile.d script - which prints in terms of I/O wait time, not bytes.
+I/O wait time is a better metric for understanding performance issues.
+Both disk and NFS I/O are measured.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B iofileb.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+KB
+kilobytes of disk I/O
+.TP
+FILE
+file pathname
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iofileb.d will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+iofile.d(1M), iosnoop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopattern.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopattern.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopattern.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,112 @@
+.TH iopattern 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+iopattern \- print disk I/O pattern. Uses DTrace.
+.SH SYNOPSIS
+.B iopattern
+[\-v] [\-d device] [\-f filename] [\-m mount_point] [interval [count]]
+.SH DESCRIPTION
+This prints details on the I/O access pattern for the disks, such as
+percentage of events that were of a random or sequential nature.
+By default totals for all disks are printed.
+
+An event is considered random when the heads seek. This program prints
+the percentage of events that are random. The size of the seek is not
+measured - it's either random or not.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-v
+print timestamp, string
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.SH EXAMPLES
+.TP
+Default output, print I/O summary every 1 second,
+# 
+.B iopattern
+.PP
+.TP
+Print 10 second samples,
+# 
+.B iopattern
+10
+.PP
+.TP
+Print 12 x 5 second samples,
+#
+.B iopattern
+5 12
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iopattern
+\-m /
+.PP
+.SH FIELDS
+.TP
+%RAN
+percentage of events of a random nature
+.TP
+%SEQ
+percentage of events of a sequential nature
+.TP
+COUNT
+number of I/O events
+.TP
+MIN
+minimum I/O event size
+.TP
+MAX
+maximum I/O event size
+.TP
+AVG
+average I/O event size
+.TP
+KR
+total kilobytes read during sample
+.TP
+KW
+total kilobytes written during sample
+.TP
+DEVICE
+device name
+.TP
+MOUNT
+mount point
+.TP
+FILE
+filename (basename) for I/O operation
+.TP
+TIME
+timestamp, string
+.PP
+.SH IDEA
+Ryan Matteson
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iopattern will run forever until Ctrl\-C is hit, or the
+specified count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), iotop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopending.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopending.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/iopending.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+.TH iopending 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+iopending \- plot number of pending disk events. Uses DTrace.
+.SH SYNOPSIS
+.B iopending
+[\-c] [\-d device] [\-f filename] [\-m mount_point] [interval [count]]
+.SH DESCRIPTION
+This samples the number of disk events that are pending and plots a
+distribution graph. By doing this the
+"serialness" or "parallelness" of disk behaviour can be distinguished.
+A high occurance of a pending value of more than 1 is an indication of
+saturation.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-c
+clear screen
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.SH EXAMPLES
+.TP
+Default output, print I/O summary every 1 second,
+# 
+.B iopending
+.PP
+.TP
+Print 10 second samples,
+# 
+.B iopending
+10
+.PP
+.TP
+Print 12 x 5 second samples,
+#
+.B iopending
+5 12
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iopending
+\-m /
+.PP
+.SH FIELDS
+.TP
+value
+number of pending events, 0 == idle
+.TP
+count
+number of samples @ 1000 Hz
+.TP
+load
+1 min load average
+.TP
+disk_r
+total disk read Kb for sample
+.TP
+disk_w
+total disk write Kb for sample
+.PP
+.SH IDEA
+Dr Rex di Bona
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iopending will run forever until Ctrl\-C is hit, or the
+specified count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), iotop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/iosnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/iosnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/iosnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,167 @@
+.TH iosnoop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+iosnoop \- snoop I/O events as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B iosnoop
+[\-a|\-A|\-Deghinostv] [\-d device] [\-f filename] [\-m mount_point]
+[\-n name] [\-p PID]
+.SH DESCRIPTION
+iosnoop prints I/O events as they happen, with useful details such
+as UID, PID, block number, size, filename, etc.
+
+This is useful to determine the process responsible for 
+using the disks, as well as details on what activity the process
+is requesting. Behaviour such as random or sequential I/O can
+be observed by reading the block numbers.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-D
+print time delta, us (elapsed)
+.TP
+\-e
+print device name
+.TP
+\-i
+print device instance
+.TP
+\-n
+print major and minor numbers
+.TP
+\-o
+print disk delta time, us
+.TP
+\-s
+print start time, us
+.TP
+\-t
+print completion time, us
+.TP
+\-v
+print completion time, string
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.TP
+\-n name
+process name
+.TP
+\-p PID
+process ID
+.PP
+.SH EXAMPLES
+.TP
+Default output, print I/O activity as it occurs,
+# 
+.B iosnoop
+.PP
+.TP
+Print human readable timestamps,
+# 
+.B iosnoop
+\-v 
+.PP
+.TP
+Print major and minor numbers,
+#
+.B iosnoop
+\-n
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iosnoop
+\-m /
+.PP
+.SH FIELDS
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+SIZE
+size of the operation, bytes
+.TP
+BLOCK
+disk block for the operation (location. relative to this filesystem.
+more useful with the -n option to print major and minor numbers)
+.TP
+STIME
+timestamp for the disk request, us
+.TP
+TIME
+timestamp for the disk completion, us
+.TP
+DELTA
+elapsed time from request to completion, us (this is the elapsed 
+time from the disk request (strategy) to the disk completion (iodone))
+.TP
+DTIME
+time for disk to complete request, us (this is the time for the 
+disk to complete that event since it's last event (time between iodones),
+or, the time to the strategy if the disk had been idle)
+.TP
+STRTIME
+timestamp for the disk completion, string
+.TP
+DEVICE
+device name
+.TP
+INS
+device instance number
+.TP
+D
+direction, Read or Write
+.TP
+MOUNT
+mount point
+.TP
+FILE
+filename (basename) for I/O operation
+.PP
+.SH NOTES
+When filtering on PID or process name, be aware that poor disk event
+times may be due to events that have been filtered away, for example
+another process that may be seeking the disk heads elsewhere.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iosnoop will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iotop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/iotop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/iotop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/iotop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,154 @@
+.TH iotop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+iotop \- display top disk I/O events by process. Uses DTrace.
+.SH SYNOPSIS
+.B iotop
+[\-C] [\-D|\-o|\-P] [\-j|\-Z] [\-d device] [\-f filename]
+[\-m mount_point] [\-t top] [interval [count]]
+.SH DESCRIPTION
+iotop tracks disk I/O by process, and prints a summary report that
+is refreshed every interval.
+
+This is measuring disk events that have made it past system caches.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-D
+print delta times - elapsed, us
+.TP
+\-j
+print project ID
+.TP
+\-o
+print disk delta times, us
+.TP
+\-P
+print %I/O (disk delta times)
+.TP
+\-Z
+print zone ID
+.TP
+\-d device
+instance name to snoop (eg, dad0)
+.TP
+\-f filename
+full pathname of file to snoop
+.TP
+\-m mount_point
+mountpoint for filesystem to snoop
+.TP
+\-t top
+print top number only
+.PP
+.SH EXAMPLES
+.TP
+Default output, print summary every 5 seconds
+# 
+.B iotop
+.PP
+.TP
+One second samples,
+# 
+.B iotop
+1
+.PP
+.TP
+print %I/O (time based),
+#
+.B iotop
+\-P
+.PP
+.TP
+Snoop events on the root filesystem only,
+#
+.B iotop
+\-m /
+.TP
+Print top 20 lines only,
+#
+.B iotop
+\-t 20
+.TP
+Print 12 x 5 second samples, scrolling,
+#
+.B iotop
+\-C 5 12
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+PROJ
+project ID
+.TP
+ZONE
+zone ID
+.TP
+CMD
+command name for the process
+.TP
+DEVICE
+device name
+.TP
+MAJ
+device major number
+.TP
+MIN
+device minor number
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total size of operations, bytes
+.TP
+ELAPSED
+total elapsed times from request to completion, us (this is the elapsed 
+time from the disk request (strategy) to the disk completion (iodone))
+.TP
+DISKTIME
+total times for disk to complete request, us (this is the time for the 
+disk to complete that event since it's last event (time between iodones),
+or, the time to the strategy if the disk had been idle)
+.TP
+%I/O
+percent disk I/O, based on time (DISKTIME)
+.TP
+load
+1 minute load average
+.TP
+disk_r
+total disk read Kb for sample
+.TP
+disk_w
+total disk write Kb for sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+iotop will run forever until Ctrl\-C is hit, or the specified
+interval is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+.TH j_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_calldist.d - measure Java elapsed times for different types of operation.
+.SH SYNOPSIS
+.B j_calldist.d
+[top]	
+.SH DESCRIPTION
+This traces activity 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
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (method/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+.TH j_calls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_calls.d - count Java calls (method/...) using DTrace.
+.SH SYNOPSIS
+.B j_calls.d
+
+.SH DESCRIPTION
+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
+
+TYPEs:
+cload		class load
+method		method call
+mcompile	method compile
+mload		compiled method load
+oalloc		object alloc
+thread		thread start
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_calls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (see below)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH j_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_calltime.d - measure Java elapsed times for different types of operation.
+.SH SYNOPSIS
+.B j_calltime.d
+[top]	
+.SH DESCRIPTION
+This traces activity 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
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_calltime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_classflow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_classflow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_classflow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+.TH j_classflow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_classflow.d - trace a Java class method flow using DTrace.
+.SH SYNOPSIS
+.B j_classflow.d
+classname	
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_classflow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+CLASS.METHOD
+Java class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_classflow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+.TH j_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_cpudist.d - measure Java on-CPU times for different types of operation.
+.SH SYNOPSIS
+.B j_cpudist.d
+[top]	
+.SH DESCRIPTION
+This traces activity 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
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (method/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH j_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_cputime.d - measure Java on-CPU times for different types of operation.
+.SH SYNOPSIS
+.B j_cputime.d
+[top]	
+.SH DESCRIPTION
+This traces activity 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
+
+The "top" optional argument will truncate the output for each report
+section to that many lines, with a default of 10.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_cputime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_events.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_events.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_events.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH j_events.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_events.d - count Java events using DTrace.
+.SH SYNOPSIS
+.B j_events.d
+
+.SH DESCRIPTION
+This traces activity 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
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_events.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+EVENT
+Event name (DTrace probe name)
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_events.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+.TH j_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_flow.d - snoop Java execution showing method flow using DTrace.
+.SH SYNOPSIS
+.B j_flow.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+CLASS.METHOD
+Java class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,69 @@
+.TH j_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_flowtime.d - snoop Java execution with method flow and delta times.
+.SH SYNOPSIS
+.B j_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+TIME(us)
+Time since boot (us)
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+CLASS.METHOD
+Java class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_methodcalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_methodcalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_methodcalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,45 @@
+.TH j_methodcalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_methodcalls.d - count Java method calls DTrace.
+.SH SYNOPSIS
+.B j_methodcalls.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_methodcalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+COUNT
+Number of calls during sample
+.TP
+CLASS.METHOD
+Java class and method name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_methodcalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_objnew.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_objnew.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_objnew.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,45 @@
+.TH j_objnew.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_objnew.d - report Java object allocation using DTrace.
+.SH SYNOPSIS
+.B j_objnew.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0) and the flag "+ExtendedDTraceProbes". eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_objnew.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+OBJS
+Number of objects created
+.TP
+CLASS.METHOD
+Java class and method name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_objnew.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_package.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_package.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_package.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,44 @@
+.TH j_package.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_package.d - count Java class loads by package using DTrace.
+.SH SYNOPSIS
+.B j_package.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0).
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_package.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+LOADS
+Class loads during trace
+.TP
+PACKAGE
+Package name from class
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_package.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_profile.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_profile.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_profile.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,52 @@
+.TH j_profile.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_profile.d - sample stack traces with Java translations using DTrace.
+.SH SYNOPSIS
+.SH DESCRIPTION
+This samples stack traces for the process specified. This stack trace
+will cross the JVM and system libraries, and insert translations for Java
+stack frames where appropriate. This is best explained with an example
+stack frame output,
+
+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_pnMmethodHan
+libjvm.so`__1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmetho
+libjvm.so`__1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJ
+libjvm.so`__1cRjni_invoke_static6FpnHJNIEnv__pnJJavaValue_pnI_j
+libjvm.so`jni_CallStaticVoidMethod+0x15d
+java`JavaMain+0xd30
+libc.so.1`_thr_setup+0x52
+libc.so.1`_lwp_start
+101
+
+The lines at the top are Java frames, followed by the JVM (libjvm.so).
+The JVM symbols may be translated by passing the output through c++filt.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_profile.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_profile.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_stat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_stat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_stat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH j_stat.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_stat.d - Java operation stats using DTrace.
+.SH SYNOPSIS
+.B j_stat.d
+[interval [count]]
+.SH DESCRIPTION
+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
+
+The numbers are 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".
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Java programs executed per second, including
+those without Java provider support
+.TP
+METHOD/s
+Methods called, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+CLOAD/s
+Class loads, per second
+.TP
+EXCP/s
+Exceptions raised, per second
+.TP
+RESC/s
+Rescues, per second
+.TP
+GC/s
+Garbage collects, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+.TH j_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_syscalls.d - count Java methods and syscalls using DTrace.
+.SH SYNOPSIS
+.B j_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces Java methods if the hotspot provider exists (1.6.0) and
+the flag "+ExtendedDTraceProbes" is used. eg,
+java -XX:+ExtendedDTraceProbes classfile
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_syscalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,65 @@
+.TH j_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_syscolors.d - trace Java method flow plus syscalls, in color.
+.SH SYNOPSIS
+.B j_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces Java methods if the hotspot provider exists (1.6.0) and
+the flag "+ExtendedDTraceProbes" is used. eg,
+java -XX:+ExtendedDTraceProbes classfile
+
+This watches Java method entries and returns, and indents child
+method calls.
+
+If the flow appears to jump, check the TID column - the JVM may have
+switched to another thread.
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Java method or syscall name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_thread.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_thread.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_thread.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH j_thread.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_thread.d - snoop Java thread execution using DTrace.
+.SH SYNOPSIS
+.B j_thread.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0).
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_thread.d
+.PP
+.SH FIELDS
+.TP
+TIME
+Time string
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+THREAD
+Thread name
+.SH LEGEND
+.TP
+=>
+thread start
+.TP
+<=
+thread end
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_thread.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/j_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH j_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+j_who.d - trace Java calls by process using DTrace.
+.SH SYNOPSIS
+.B j_who.d
+
+.SH DESCRIPTION
+This traces activity from all Java processes on the system with hotspot
+provider support (1.6.0).
+
+The argument list is truncated at 55 characters (up to 80 is easily
+available). To easily read the full argument list, use other system tools;
+on Solaris use "pargs PID".
+.SH OS
+Solaris
+.SH STABILITY
+Evolving - uses the DTrace hotspot provider, which may change 
+as additional features are introduced. Check Java/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B j_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Java
+.TP
+UID
+User ID of the owner
+.TP
+CALLS
+Number of calls made (a measure of activity)
+.TP
+ARGS
+Process name and arguments
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+j_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH js_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_calldist.d - measure JavaScript elapsed times for types of operation.
+.SH SYNOPSIS
+.B js_calldist.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the JavaScript program
+.TP
+2
+Type of call (func/obj-new)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH js_calls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_calls.d - count JavaScript calls using DTrace.
+.SH SYNOPSIS
+.B js_calls.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are
+running with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_calls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+TYPE
+Type of call (func/obj-new/...)
+.TP
+NAME
+Descriptive name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH js_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_calltime.d - measure JavaScript elapsed times for types of operation.
+.SH SYNOPSIS
+.B js_calltime.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+TYPE
+Type of call (func/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH js_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_cpudist.d - measure JavaScript on-CPU times for types of operation.
+.SH SYNOPSIS
+.B js_cpudist.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the JavaScript program
+.TP
+2
+Type of call (func/obj-new)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH js_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_cputime.d - measure JavaScript on-CPU times for types of operation.
+.SH SYNOPSIS
+.B js_cputime.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system with
+JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+TYPE
+Type of call (func/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_execs.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_execs.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_execs.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH js_execs.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_execs.d - JavaScript execute snoop using DTrace.
+.SH SYNOPSIS
+.B js_execs.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are
+running with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_execs.d
+.PP
+.SH FIELDS
+.TP
+TIME
+Time of event
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+LINENO
+Line number in filename
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_execs.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,59 @@
+.TH js_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_flow.d - snoop JavaScript execution showing function flow using DTrace.
+.SH SYNOPSIS
+.B js_flow.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are running
+with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH js_flowinfo.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_flowinfo.d - JavaScript function flow with info using DTrace.
+.SH SYNOPSIS
+.B js_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are running
+with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the JavScript program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func)
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,62 @@
+.TH js_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_flowtime.d - JavaScript function flow with delta times using DTrace.
+.SH SYNOPSIS
+.B js_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are running
+with JavaScript provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objcpu.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objcpu.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objcpu.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,36 @@
+.TH js_objcpu.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_objcpu.d - measure JavaScript object creation on-CPU time using DTrace.
+.SH SYNOPSIS
+.B js_objcpu.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system
+with JavaScript provider support.
+
+Class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_objcpu.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_objcpu.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objgc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objgc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objgc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+.TH js_objgc.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_objgc.d - trace JavaScript Object GC using DTrace.
+.SH SYNOPSIS
+.B js_objgc.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all running browers on the system
+which support the JavaScript DTrace provider.
+
+This script provides information on which objects are not being garbage
+collected, an issue which causes the browser to steadily leak memory.
+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. 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.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_objgc.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename that contained the function
+.TP
+CLASS
+Class to which this new object belongs
+.TP
+TOTAL
+Object entropy (positive == uncollected)
+.SH NOTES
+
+\- it is possible that you will see negative entropy. That happens
+when you begin tracing after some objects have already been created,
+and then trace their destruction.
+\- there are other Things that GC handles, other than Objects; extra
+probes can be added to trace them, should the need arise.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_objgc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objnew.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objnew.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_objnew.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH js_objnew.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_objnew.d - count JavaScript object creation using DTrace.
+.SH SYNOPSIS
+.B js_objnew.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers running on the system
+with JavaScript provider support.
+
+Filename and class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_objnew.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the JavaScript program
+.TP
+CLASS
+Class of new object
+.TP
+COUNT
+Number of object creations during tracing
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_objnew.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_stat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_stat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_stat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,52 @@
+.TH js_stat.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_stat.d - JavaScript operation stats using DTrace.
+.SH SYNOPSIS
+.B js_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all browsers on the system that are
+running with JavaScript provider support.
+
+The numbers are counts for the interval specified. The default interval
+is 1 second.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+JavaScript programs executed per second
+.TP
+FUNCS/s
+Functions called, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+OBJFRE/s
+Objects freed (finalize), per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/js_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH js_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+js_who.d - trace JavaScript function execution by process using DTrace.
+.SH SYNOPSIS
+.B js_who.d
+
+.SH DESCRIPTION
+This traces JavaScript activity from all browsers on the system that are
+running with JavaScript provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace JavaScript provider, which may change 
+as additional features are introduced. Check JavaScript/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B js_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of JavaScript
+.TP
+UID
+User ID of the owner
+.TP
+FUNCS
+Number of function calls
+.TP
+FILE
+Pathname of the JavaScript program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+js_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/kill.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/kill.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/kill.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+.TH kill.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+kill.d \- snoop process signals as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B kill.d
+.SH DESCRIPTION
+kill.d is a simple DTrace program to print details of process 
+signals as they are sent, such as the PID source and destination, 
+signal number and result.
+
+This program can be used to determine which process is sending
+signals to which other process.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Default output, print process signals as they are sent.
+# 
+.B kill.d
+.PP
+.SH FIELDS
+.TP
+FROM
+source PID
+.TP
+COMMAND
+source command name
+.TP
+TO
+destination PID
+.TP
+SIG
+destination signal ("9" for a kill -9)
+.TP
+RESULT
+result of signal (-1 is for failure)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+kill.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/kstat_types.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/kstat_types.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/kstat_types.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH kstat_types.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+kstat_types.d \- Trace kstat reads with type info. Uses DTrace.
+.SH SYNOPSIS
+.B kstat_types.d
+.SH DESCRIPTION
+kstat is the Kernel Statistics framework, which is used by tools
+such as vmstat, iostat, mpstat and sar. Try running vmstat while
+kstat_types.d is tracing - you should see details of the kstat
+reads performed.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace kstat reads as they occur,
+# 
+.B kstat_types.d
+.PP
+.SH FIELDS
+.TP
+CMD
+command name
+.TP
+CLASS
+kstat class (ks_class)
+.TP
+TYPE
+kstat type as a string (ks_type)
+.TP
+MOD:INS:NAME
+kstat module:instance:name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+kstat_types.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), kstat(1M), kstat(3KSTAT)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/lastwords.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/lastwords.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/lastwords.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+.TH lastwords 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+lastwords \- print syscalls before exit. Uses DTrace.
+.SH SYNOPSIS
+.B lastwords command
+.SH DESCRIPTION
+This prints the last few system calls for processes matching
+the given name, when they exit. This makes use of a ring buffer
+so that the impact on the system is minimised.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and proc providers.
+.SH EXAMPLES
+.TP
+Catch last few syscalls for dying netscape processes,
+# 
+.B lastwords netscape
+.PP
+.SH FIELDS
+.TP
+TIME
+time of syscall return, ns
+.TP
+PID
+process ID
+.TP
+EXEC
+process name (execname)
+.TP
+SYSCALL
+system call
+.TP
+RETURN
+return value for the system call
+.TP
+ERR
+errno for the system call
+.PP
+.SH BASED ON
+/usr/demo/dtrace/ring.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "Buffers and Buffering" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+lastwords will sample until a command with that name exits. 
+.SH SEE ALSO
+dtruss(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/loads.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/loads.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/loads.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,38 @@
+.TH loads.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+loads.d \- print load averages. Uses DTrace.
+.SH SYNOPSIS
+.B loads.d
+.SH DESCRIPTION
+These are the same load averages that the "uptime" command prints.
+The purpose of this script is to demonstrate fetching these values
+from the DTrace language.
+
+The first field is the 1 minute average, the second is the 5 minute,
+and the third is the 15 minute average. The value represents the average
+number of runnable threads in the system, a value higher than your
+CPU (core/hwthread) count may be a sign of CPU saturation.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses kernel symbols, which may change for a future version
+of this OS.
+.SH EXAMPLES
+.TP
+Print load averages,
+# 
+.B loads.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+uptime(1), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbydist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbydist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbydist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH lockbydist.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+lockbydist.d \- lock distrib. by process name. Uses DTrace.
+.SH SYNOPSIS
+.B lockbydist.d
+.SH DESCRIPTION
+lockbydist.d is a DTrace OneLiner to a report the time threads have
+spent blocked on adaptive mutexes, by process name. 
+
+A distribution is printed to illustrate the number of blocks at 
+different lengths in time. This helps us identify if there are many
+short blocks, or fewer large blocks.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the lockstat provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B lockbydist.d
+.PP
+.SH FIELDS
+.TP
+process name
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+value
+The blocked time in nanoseconds
+.TP
+count
+The number of occurrences that were at least this size 
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+lockbydist.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+lockstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbyproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbyproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/lockbyproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH lockbyproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+lockbyproc.d \- lock time by process name. Uses DTrace.
+.SH SYNOPSIS
+.B lockbyproc.d
+.SH DESCRIPTION
+lockbyproc.d is a DTrace OneLiner to a report the total time threads
+have spent blocked on adaptive mutexes, by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the lockstat provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B lockbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the total length of time blocked, in nanoseconds.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+lockbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+lockstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH minfbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+minfbypid.d \- minor faults by process name. Uses DTrace.
+.SH SYNOPSIS
+.B minfbypid.d
+.SH DESCRIPTION
+minfbypid.d is a DTrace OneLiner to a report the number of minor
+faults by process name.
+
+This is based on a script from DExplorer.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B minfbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+MINFAULTS
+number of minor faults in this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+minfbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbyproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbyproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/minfbyproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH minfbyproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+minfbyproc.d \- minor faults by process name. Uses DTrace.
+.SH SYNOPSIS
+.B minfbyproc.d
+.SH DESCRIPTION
+minfbyproc.d is a DTrace OneLiner to a report the number of minor
+faults by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B minfbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+The number minor faults
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+minfbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/mmapfiles.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/mmapfiles.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/mmapfiles.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,42 @@
+.TH mmapfiles.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+mmapfiles.d \- mmap'd files by process. Uses DTrace.
+.SH SYNOPSIS
+.B mmapfiles.d
+.SH DESCRIPTION
+This prints statistics on the pathnames that were mmap'd by processes.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B mmapfiles.d
+.PP
+.SH FIELDS
+.TP
+MMAPS
+number of mmaps
+.TP
+CMD
+process name
+.TP
+PATHNAME
+pathname of mmap'd file
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+mmapfiles.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/modcalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/modcalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/modcalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH modcalls.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+modcalls.d \- kernel function calls by module. Uses DTrace.
+.SH SYNOPSIS
+.B modcalls.d
+.SH DESCRIPTION
+modcalls.d is a DTrace OneLiner to a report of the number of 
+kernel function calls by module.
+
+This script may be useful to determine whether drivers are "thinking" when
+troubleshooting driver issues.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable - while this script uses the unstable fbt provider, it does so
+in a stable way.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B modcalls.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the module name, or kernel driver name. if a name is
+unfamiliar to you there may be a man page to explain what it is.
+.TP
+second field
+This is the number of function calls by this module.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+modcalls.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/newproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/newproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/newproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH newproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+newproc.d \- snoop new processes. Uses DTrace.
+.SH SYNOPSIS
+.B newproc.d
+.SH DESCRIPTION
+newproc.d is a DTrace OneLiner to snoop new processes as they are run.
+The argument listing is printed.
+
+This is useful to identify short lived processes that are usually
+difficult to spot using traditional tools.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider.
+.SH EXAMPLES
+.TP
+This prints new processes until Ctrl\-C is hit.
+# 
+.B newproc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+The CPU that recieved the event
+.TP
+ID
+A DTrace probe ID for the event
+.TP
+FUNCTION:NAME
+The DTrace probe name for the event
+.TP
+remaining fields
+These contains the argument listing for the new process
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+newproc.d will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+execsnoop(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/nfswizard.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/nfswizard.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/nfswizard.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,36 @@
+.TH nfswizard.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+nfswizard.d \- nfs client activity wizard. Uses DTrace.
+.SH SYNOPSIS
+.B nfswizard.d
+.SH DESCRIPTION
+This examines activity caused by NFS client processes on the same server
+that you are running this script on. A detailed report is generated
+to explain various details of NFS client activity, including response
+times and file access.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.PP
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample NFS client activity, then print a report after Ctrl\-C,
+# 
+.B nfswizard.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+nfswizard.d will sample activity until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/opensnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/opensnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/opensnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,139 @@
+.TH opensnoop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+opensnoop \- snoop file opens as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B opensnoop
+[\-a|\-A|\-ceghsvxZ] [\-f pathname] [\-n name] [\-p PID]
+.SH DESCRIPTION
+opensnoop tracks file opens. As a process issues a file open, details
+such as UID, PID and pathname are printed out. 
+
+The returned file descriptor is printed,
+a value of -1 indicates an error. This can be useful
+for troubleshooting to determine if appliacions are attempting to
+open files that do not exist. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-c
+print current working directory of process
+.TP
+\-e
+print errno value
+.TP
+\-g
+print full command arguments
+.TP
+\-s
+print start time, us
+.TP
+\-v
+print start time, string
+.TP
+\-x
+only print failed opens
+.TP
+\-Z
+print zonename
+.TP
+\-f pathname
+file pathname to snoop
+.TP
+\-n name
+process name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, print file opens by process as they occur,
+# 
+.B opensnoop
+.PP
+.TP
+Print human readable timestamps,
+# 
+.B opensnoop
+\-v 
+.PP
+.TP
+See error codes,
+#
+.B opensnoop
+\-e
+.PP
+.TP
+Snoop this file only,
+#
+.B opensnoop
+\-f /etc/passwd
+.PP
+.SH FIELDS
+.TP
+ZONE
+Zone name
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+FD
+File Descriptor (-1 is error)
+.TP
+ERR
+errno value (see /usr/include/sys/errno.h)
+.TP
+CWD
+current working directory of process
+.TP
+PATH
+pathname for file open
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+TIME
+timestamp for the open event, us
+.TP
+STRTIME
+timestamp for the open event, string
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+opensnoop will run forever until Ctrl\-C is hit. 
+.SH BUGS
+occasionally the pathname for the file open cannot be read
+and the following error will be seen,
+
+dtrace: error on enabled probe ID 6 (...): invalid address
+
+this is normal behaviour.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pathopens.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pathopens.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pathopens.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,38 @@
+.TH pathopens.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+pathopens.d \- full pathnames opened ok count. Uses DTrace.
+.SH SYNOPSIS
+.B pathopens.d
+.SH DESCRIPTION
+This program prints a count of the number of times files have been
+successfully opened. This is somewhat special in that the full pathname
+is calculated, even if the file open referred to a relative pathname.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pathopens.d
+.PP
+.SH FIELDS
+.TP
+PATHNAME
+full pathname
+.TP
+COUNT
+number of successful opens
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pathopens.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+opensnoop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pfilestat.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pfilestat.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pfilestat.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,87 @@
+.TH pfilestat 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+pfilestat \- show I/O latency break down by FD. Uses DTrace.
+.SH SYNOPSIS
+.B pfilestat [\-r|\-w] pid
+.SH DESCRIPTION
+This prints I/O statistics for each file descriptor within a process.
+In particular, the time break down during read() and write() events is
+measured.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-r
+reads only
+.TP
+\-w
+writes only
+.TP
+pid
+process ID to examine
+.PP
+.SH EXAMPLES
+.TP
+Sample both read and write activity for PID 81,
+# 
+.B pfilestat 81
+.TP
+Sample reads only for PID 81,
+#
+.B pfilestat
+\-r 81
+.PP
+.SH FIELDS
+.TP
+STATE
+microstate. see STATES below.
+.TP
+FDUM
+file Descriptor ID
+.TP
+Time
+percentage of wallclock time in each STATE
+.TP
+File
+Name of file, if known
+.PP
+.SH STATES
+.TP
+read
+Time spent during the execution of the read() syscall.
+.TP
+write
+Time spent during the execution of the write() syscall.
+.TP
+waitcpu
+Latency spent waiting to be scheduled after becoming runnable.
+.TP
+running
+Process running user-mode code.
+.TP
+sleep-r
+Process sleeping on reads.
+.TP
+sleep-w
+Process sleeping on writes.
+.PP
+.SH DOCUMENTATION
+pfilestat is discussed and demonstrated in Solaris Internals 2nd edition,
+volume 2. 
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pfilestat will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Richard McDougall
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH pgpginbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+pgpginbypid.d \- pages paged in by PID. Uses DTrace.
+.SH SYNOPSIS
+.B pgpginbypid.d
+.SH DESCRIPTION
+pgpginbypid.d reports the rumber of pages paged in from the disks
+by process ID. This is an indicator that processes are reading
+from the disks.
+
+This is based on a script from DExplorer.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pgpginbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+PAGES
+number of pages paged in
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pgpginbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1m), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbyproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbyproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pgpginbyproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH pgpginbyproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+pgpginbyproc.d \- pages pagedin by process name. Uses DTrace.
+.SH SYNOPSIS
+.B pgpginbyproc.d
+.SH DESCRIPTION
+pgpginbyproc.d is a DTrace OneLiner to a report the number of pages
+paged in by process name.
+
+This may be one way to help identify the process responsible for
+causing heavy read traffic to the disks.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pgpginbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+The number of pages paged in
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pgpginbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1m), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH php_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_calldist.d - measure PHP elapsed times for functions.
+.SH SYNOPSIS
+.B php_calldist.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+This script prints distribution plots of elapsed time for PHP
+operations. Use php_calltime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the PHP program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH php_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_calltime.d - measure PHP elapsed times for functions.
+.SH SYNOPSIS
+.B php_calltime.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the PHP program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH php_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_cpudist.d - measure PHP on-CPU times for functions.
+.SH SYNOPSIS
+.B php_cpudist.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+This script prints distribution plots of elapsed time for PHP
+operations. Use php_cputime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the PHP program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH php_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_cputime.d - measure PHP on-CPU times for functions.
+.SH SYNOPSIS
+.B php_cputime.d
+
+.SH DESCRIPTION
+This traces PHP activity from all programs running on the system with
+PHP provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the PHP program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call (function name)
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+.TH php_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_flow.d - snoop PHP execution showing function flow.
+.SH SYNOPSIS
+.B php_flow.d
+
+.SH DESCRIPTION
+This traces PHP activity from all PHP programs on the system
+running with PHP provider support.
+
+This watches PHP function entries and returns, and indents child
+function calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH php_flowinfo.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_flowinfo.d - snoop PHP function flow with info using DTrace.
+.SH SYNOPSIS
+.B php_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all PHP programs on the system that are
+running with PHP provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the PHP program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func)
+.TP
+FUNC
+PHP function
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,65 @@
+.TH php_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_flowtime.d - snoop PHP functions with flow and delta times.
+.SH SYNOPSIS
+.B php_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from PHP programs on the system that are
+running with PHP provider support.
+
+This watches PHP function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FUNC
+PHP function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_funccalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_funccalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_funccalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,43 @@
+.TH php_funccalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_funccalls.d - measure PHP function calls using DTrace.
+.SH SYNOPSIS
+.B php_funccalls.d
+
+.SH DESCRIPTION
+This traces PHP activity from all running programs on the system
+which support the PHP DTrace provider.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_funccalls.d
+.PP
+.SH FIELDS
+.TP
+FUNC
+PHP function name
+.TP
+CALLS
+Function calls during this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_funccalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_malloc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_malloc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_malloc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+.TH php_malloc.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_malloc.d - PHP libc malloc analysis.
+.SH SYNOPSIS
+.B php_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This is an expiremental script to identify who is calling malloc() for
+memory allocation, and to print distribution plots of the requested bytes.
+If a malloc() occured while in a PHP function, then that function is
+identified as responsible; else the caller of malloc() is identified as
+responsible - which will be a function from the PHP engine.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_malloc.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH php_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_syscalls.d - count PHP function calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B php_syscalls.d
+
+.SH DESCRIPTION
+This traces syscalls that occured during a PHP function call.
+
+Filename and function names are printed if available.
+The filename for syscalls may be printed as "php", if the program
+was invoked using the form "php filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_syscalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+FILE
+Filename of the PHP program
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+.TH php_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_syscolors.d - trace PHP function flow plus syscalls, in color.
+.SH SYNOPSIS
+.B php_syscolors.d
+
+.SH DESCRIPTION
+This watches PHP function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the PHP program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+PHP function or syscall name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/php_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH php_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+php_who.d - trace PHP function execution by process using DTrace.
+.SH SYNOPSIS
+.B php_who.d
+
+.SH DESCRIPTION
+This traces PHP activity from all PHP programs on the system that are
+running with PHP provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Php provider, which may change 
+as additional features are introduced. Check Php/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B php_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of PHP
+.TP
+UID
+User ID of the owner
+.TP
+FUNCS
+Number of function calls
+.TP
+FILE
+Pathname of the PHP program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+php_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pidpersec.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pidpersec.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pidpersec.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,42 @@
+.TH pidpersec.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+pidpersec.d \- print new PIDs per sec. Uses DTrace.
+.SH SYNOPSIS
+.B pidpersec.d
+.SH DESCRIPTION
+This script prints the number of new processes created per second.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider.
+.SH EXAMPLES
+.TP
+Print PID statistics per second,
+# 
+.B pidpersec.d
+.PP
+.SH FIELDS
+.TP
+TIME
+time, as a string
+.TP
+LASTPID
+last PID created
+.TP
+PID/s
+Number of processes created per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pidpersec.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+execsnoop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH pl_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_calldist.d - measure Perl elapsed times for subroutines.
+.SH SYNOPSIS
+.B pl_calldist.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+This script prints distribution plots of elapsed time for Perl subroutines.
+Use pl_calltime.d for summary reports.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Perl program
+.TP
+2
+Type of call (sub)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH pl_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_calltime.d - measure Perl elapsed times for subroutines.
+.SH SYNOPSIS
+.B pl_calltime.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Perl program
+.TP
+TYPE
+Type of call (sub/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH pl_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_cpudist.d - measure Perl on-CPU times for subroutines.
+.SH SYNOPSIS
+.B pl_cpudist.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+This script prints distribution plots of elapsed time for Perl subrotines.
+Use pl_cputime.d for summary reports.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Perl program
+.TP
+2
+Type of call (sub)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH pl_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_cputime.d - measure Perl on-CPU times for subroutines.
+.SH SYNOPSIS
+.B pl_cputime.d
+
+.SH DESCRIPTION
+This traces Perl activity from all programs running on the system with
+Perl provider support.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Perl program
+.TP
+TYPE
+Type of call (sub/total)
+.TP
+NAME
+Name of call (subroutine name)
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+.TH pl_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_flow.d - snoop Perl execution showing subroutine flow.
+.SH SYNOPSIS
+.B pl_flow.d
+
+.SH DESCRIPTION
+This traces Perl activity from all Perl programs on the system
+running with Perl provider support.
+
+This watches Perl subroutine entries and returns, and indents child
+subroutine calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this subroutine belongs to
+.TP
+SUB
+Subroutine name
+.SH LEGEND
+.TP
+\->
+subroutine entry
+.TP
+<\-
+subroutine return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH pl_flowinfo.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_flowinfo.d - snoop Perl subroutine flow with info using DTrace.
+.SH SYNOPSIS
+.B pl_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all Perl programs on the system that are
+running with Perl provider support.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Perl program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (sub)
+.TP
+SUB
+Perl subroutine
+.SH LEGEND
+.TP
+\->
+subroutine entry
+.TP
+<\-
+subroutine return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,65 @@
+.TH pl_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_flowtime.d - snoop Perl subroutines with flow and delta times.
+.SH SYNOPSIS
+.B pl_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from Perl programs on the system that are
+running with Perl provider support.
+
+This watches Perl subroutine entries and returns, and indents child
+subroutine calls.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this subroutine belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+SUB
+Perl subroutine name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_malloc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_malloc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_malloc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+.TH pl_malloc.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_malloc.d - Perl libc malloc analysis.
+.SH SYNOPSIS
+.B pl_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This is an expiremental script to identify who is calling malloc() for
+memory allocation, and to print distribution plots of the requested bytes.
+If a malloc() occured while in a Perl subroutine, then that subroutine is
+identified as responsible; else the caller of malloc() is identified as
+responsible - which will be a function from the Perl engine.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_malloc.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_subcalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_subcalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_subcalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,43 @@
+.TH pl_subcalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_subcalls.d - measure Perl subroutine calls using DTrace.
+.SH SYNOPSIS
+.B pl_subcalls.d
+
+.SH DESCRIPTION
+This traces Perl activity from all running programs on the system
+which support the Perl DTrace provider.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_subcalls.d
+.PP
+.SH FIELDS
+.TP
+SUB
+Perl subroutine name
+.TP
+CALLS
+Subroutine calls during this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_subcalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH pl_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_syscalls.d - count Perl subroutine calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B pl_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and subroutine names are printed if available.
+The filename for syscalls may be printed as "perl", if the program
+was invoked using the form "perl filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Perl program
+.TP
+TYPE
+Type of call (sub/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+.TH pl_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_syscolors.d - trace Perl subroutine flow plus syscalls, in color.
+.SH SYNOPSIS
+.B pl_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches Perl subroutine entries and returns, and indents child
+subroutine calls.
+
+Filename and subroutine names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Perl program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (sub/syscall)
+.TP
+NAME
+Perl subroutine or syscall name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pl_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH pl_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+pl_who.d - trace Perl subroutine execution by process using DTrace.
+.SH SYNOPSIS
+.B pl_who.d
+
+.SH DESCRIPTION
+This traces Perl activity from all Perl programs on the system that are
+running with Perl provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Perl provider, which may change 
+as additional features are introduced. Check Perl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B pl_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Perl
+.TP
+UID
+User ID of the owner
+.TP
+SUBS
+Number of subroutine calls
+.TP
+FILE
+Pathname of the Perl program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+pl_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/priclass.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/priclass.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/priclass.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+.TH priclass.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+priclass.d \- priority distribution by scheduling class. Uses DTrace.
+.SH SYNOPSIS
+.B priclass.d
+.SH DESCRIPTION
+This is a simple DTrace script that samples at 1000 Hz the current
+thread's scheduling class and priority. A distribution plot is printed.
+
+With priorities, the higher the priority the better chance the thread
+has of being scheduled.
+
+This idea came from the script /usr/demo/dtrace/pri.d, which
+produces similar output for priority changes, not samples.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B priclass.d
+.PP
+.SH FIELDS
+.TP
+value
+process priority
+.TP
+count
+number of samples of at least this priority
+.PP
+.SH SCHEDULING CLASSES
+.TP
+TS
+time sharing
+.TP
+IA
+interactive
+.TP
+RT
+real time
+.TP
+SYS
+system
+.TP
+FSS
+fair share scheduler
+.PP
+.SH BASED ON
+/usr/demo/dtrace/pri.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "profile Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+priclass.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+pridist.d(1M), dispadmin(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/pridist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/pridist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/pridist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+.TH pridist.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+pridist.d \- process priority distribution. Uses DTrace.
+.SH SYNOPSIS
+.B pridist.d
+.SH DESCRIPTION
+This is a simple DTrace script that samples at 1000 Hz which process
+is on the CPUs, and what the priority is. A distribution plot is printed.
+
+With priorities, the higher the priority the better chance the process
+(actually, thread) has of being scheduled.
+
+This idea came from the script /usr/demo/dtrace/profpri.d, which
+produces similar output for one particular PID.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B pridist.d
+.PP
+.SH FIELDS
+.TP
+CMD
+process name
+.TP
+PID
+process ID
+.TP
+value
+process priority
+.TP
+count
+number of samples of at least this priority
+.PP
+.SH BASED ON
+/usr/demo/dtrace/profpri.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "profile Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+pridist.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+dispadmin(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/procsystime.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/procsystime.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/procsystime.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,108 @@
+.TH procsystime 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+procsystime \- analyse system call times. Uses DTrace.
+.SH SYNOPSIS
+.B procsystime
+[\-acehoT] [ -p PID | -n name | command ]
+.SH DESCRIPTION
+procsystime prints details on system call times for processes,
+both the elapsed times and on-cpu times can be printed.
+
+The elapsed times are interesting, to help identify syscalls
+that take some time to complete (during which the process may
+have slept). CPU time helps us identify syscalls that
+are consuming CPU cycles to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-c
+print syscall counts
+.TP
+\-e
+print elapsed times, ns
+.TP
+\-o
+print CPU times, ns
+.TP
+\-T
+print totals
+.TP
+\-p PID
+examine this PID
+.TP
+\-n name
+examine processes which have this name
+.SH EXAMPLES
+.TP
+Print elapsed times for PID 1871,
+# 
+.B procsystime
+\-p 1871
+.PP
+.TP
+Print elapsed times for processes called "tar",
+# 
+.B procsystime
+\-n tar 
+.PP
+.TP
+Print CPU times for "tar" processes,
+#
+.B procsystime
+\-on tar
+.PP
+.TP
+Print syscall counts for "tar" processes,
+#
+.B procsystime
+\-cn tar
+.PP
+.TP
+Print elapsed and CPU times for "tar" processes,
+#
+.B procsystime
+\-eon tar
+.PP
+.TP
+print all details for "bash" processes,
+#
+.B procsystime
+\-aTn bash
+.PP
+.TP
+run and print details for "df -h",
+#
+.B procsystime
+df \-h
+.PP
+.SH FIELDS
+.TP
+SYSCALL
+System call name
+.TP
+TIME (ns)
+Total time, nanoseconds
+.TP
+COUNT
+Number of occurrences
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+procsystime will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtruss(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/putnexts.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/putnexts.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/putnexts.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,27 @@
+.TH putnexts.d 1m   "$Date:: 2007-09-12 #$" "USER COMMANDS"
+.SH NAME
+putnexts.d - 
+.SH SYNOPSIS
+.SH DESCRIPTION
+
+.SH OS
+Solaris
+.SH STABILITY
+stable - 
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B putnexts.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+putnexts.d will run until Ctrl-C is hit.
+.SH AUTHOR
+
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH py_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_calldist.d - measure Python elapsed times for functions.
+.SH SYNOPSIS
+.B py_calldist.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+This script prints distribution plots of elapsed time for Python
+operations. Use py_calltime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Python program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH py_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_calltime.d - measure Python elapsed times for functions.
+.SH SYNOPSIS
+.B py_calltime.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Python program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH py_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_cpudist.d - measure Python on-CPU times for functions.
+.SH SYNOPSIS
+.B py_cpudist.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+This script prints distribution plots of elapsed time for Python
+operations. Use py_cputime.d for summary reports.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Python program
+.TP
+2
+Type of call (func)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH py_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_cputime.d - measure Python on-CPU times for functions.
+.SH SYNOPSIS
+.B py_cputime.d
+
+.SH DESCRIPTION
+This traces Python activity from all programs running on the system with
+Python provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Python program
+.TP
+TYPE
+Type of call (func/total)
+.TP
+NAME
+Name of call (function name)
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+.TH py_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_flow.d - snoop Python execution showing function flow.
+.SH SYNOPSIS
+.B py_flow.d
+
+.SH DESCRIPTION
+This traces Python activity from all Python programs on the system
+running with Python provider support.
+
+This watches Python function entries and returns, and indents child
+function calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+FUNC
+Function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH py_flowinfo.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_flowinfo.d - snoop Python function flow with info using DTrace.
+.SH SYNOPSIS
+.B py_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all Python programs on the system that are
+running with Python provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Python program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func)
+.TP
+FUNC
+Python function
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,65 @@
+.TH py_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_flowtime.d - snoop Python functions with flow and delta times.
+.SH SYNOPSIS
+.B py_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from Python programs on the system that are
+running with Python provider support.
+
+This watches Python function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FUNC
+Python function name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_funccalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_funccalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_funccalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,43 @@
+.TH py_funccalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_funccalls.d - measure Python function calls using DTrace.
+.SH SYNOPSIS
+.B py_funccalls.d
+
+.SH DESCRIPTION
+This traces Python activity from all running programs on the system
+which support the Python DTrace provider.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_funccalls.d
+.PP
+.SH FIELDS
+.TP
+FUNC
+Python function name
+.TP
+CALLS
+Function calls during this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_funccalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_malloc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_malloc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_malloc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+.TH py_malloc.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_malloc.d - Python libc malloc analysis.
+.SH SYNOPSIS
+.B py_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This is an expiremental script to identify who is calling malloc() for
+memory allocation, and to print distribution plots of the requested bytes.
+If a malloc() occured while in a Python function, then that function is
+identified as responsible; else the caller of malloc() is identified as
+responsible - which will be a function from the Python engine.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_malloc.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_mallocstk.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_mallocstk.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_mallocstk.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,33 @@
+.TH py_mallocstk.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_mallocstk.d - Python libc malloc analysis with full stack traces.
+.SH SYNOPSIS
+.B py_mallocstk.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_mallocstk.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_mallocstk.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_profile.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_profile.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_profile.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH py_profile.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_profile.d - sample stack traces with Python translations using DTrace.
+.SH SYNOPSIS
+.B py_profile.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+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. This is best
+explained with an example stack frame output,
+
+libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+[ ./func_loop.py:5 (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_loop.py:11 (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_loop.py:14 (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_loop.py:16 (?) ]
+
+The lines in square brackets are the native Python frames, the rest
+are the Python engine.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_profile.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_profile.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH py_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_syscalls.d - count Python function calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B py_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and function names are printed if available.
+The filename for syscalls may be printed as "python", if the program
+was invoked using the form "python filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Python program
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+.TH py_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_syscolors.d - trace Python function flow plus syscalls, in color.
+.SH SYNOPSIS
+.B py_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches Python function entries and returns, and indents child
+function calls.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Python program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/syscall)
+.TP
+NAME
+Python function or syscall name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/py_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH py_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+py_who.d - trace Python function execution by process using DTrace.
+.SH SYNOPSIS
+.B py_who.d
+
+.SH DESCRIPTION
+This traces Python activity from all Python programs on the system that are
+running with Python provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Python provider, which may change 
+as additional features are introduced. Check Python/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B py_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Python
+.TP
+UID
+User ID of the owner
+.TP
+FUNCS
+Number of function calls
+.TP
+FILE
+Pathname of the Python program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+py_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_calldist.d - measure Ruby elapsed times for types of operation.
+.SH SYNOPSIS
+.B rb_calldist.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+This script prints distribution plots of elapsed time for Ruby
+operations. Use rb_calltime.d for summary reports.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Ruby program
+.TP
+2
+Type of call (method/obj-new/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_calls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_calls.d - count Ruby calls using DTrace.
+.SH SYNOPSIS
+.B rb_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_calls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/obj-new/...)
+.TP
+NAME
+Descriptive name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_calltime.d - measure Ruby elapsed times for types of operation.
+.SH SYNOPSIS
+.B rb_calltime.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_cpudist.d - measure Ruby on-CPU times for types of operation.
+.SH SYNOPSIS
+.B rb_cpudist.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+This script prints distribution plots of elapsed time for Ruby
+operations. Use rb_cputime.d for summary reports.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Ruby program
+.TP
+2
+Type of call (method/obj-new/gc)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_cputime.d - measure Ruby on-CPU times for types of operation.
+.SH SYNOPSIS
+.B rb_cputime.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/obj-new/gc/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,59 @@
+.TH rb_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_flow.d - snoop Ruby execution showing method flow using DTrace.
+.SH SYNOPSIS
+.B rb_flow.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this method belongs to
+.TP
+CLASS::METHOD
+Ruby classname and method
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH rb_flowinfo.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_flowinfo.d - snoop Ruby function (method) flow with info using DTrace.
+.SH SYNOPSIS
+.B rb_flowinfo.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Ruby program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (method)
+.TP
+NAME
+Ruby class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,62 @@
+.TH rb_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_flowtime.d - snoop Ruby function (method) flow using DTrace.
+.SH SYNOPSIS
+.B rb_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this method belongs to
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+CLASS::METHOD
+Ruby class and method name
+.SH LEGEND
+.TP
+\->
+method entry
+.TP
+<\-
+method return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_funccalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_funccalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_funccalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH rb_funccalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_funccalls.d - count Ruby function (method) calls using DTrace.
+.SH SYNOPSIS
+.B rb_funccalls.d
+
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_funccalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+METHOD
+Method name
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_funccalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_lines.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_lines.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_lines.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH rb_lines.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_lines.d - trace Ruby line execution by process using DTrace.
+.SH SYNOPSIS
+.B rb_who.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_lines.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+LINE
+Line number
+.TP
+COUNT
+Number of times a line was executed
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_lines.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_malloc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_malloc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_malloc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH rb_malloc.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_malloc.d - Ruby operations and libc malloc statistics.
+.SH SYNOPSIS
+.B rb_malloc.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_malloc.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the Ruby program
+.TP
+2
+Type of operation (method/objnew/startup)
+.TP
+3
+Name of operation
+.SH WARNING
+This script is not 100% accurate; This prints libc malloc() byte
+distributions by "recent" Ruby operation, which we hope will be usually
+relevant. This is an experimental script that may be improved over time.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_malloc.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objcpu.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objcpu.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objcpu.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,36 @@
+.TH rb_objcpu.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_objcpu.d - measure Ruby object creation on-CPU time using DTrace.
+.SH SYNOPSIS
+.B rb_objcpu.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_objcpu.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_objcpu.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objnew.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objnew.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_objnew.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH rb_objnew.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_objnew.d - count Ruby object creation using DTrace.
+.SH SYNOPSIS
+.B rb_objnew.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all programs running on the system with
+Ruby provider support.
+
+Filename and class names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_objnew.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+CLASS
+Class of new object
+.TP
+COUNT
+Number of object creations during tracing
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_objnew.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_stat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_stat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_stat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+.TH rb_stat.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_stat.d - Ruby operation stats using DTrace.
+.SH SYNOPSIS
+.B rb_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+The numbers are 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
+Ruby software is probably not running with the DTrace Ruby provider.
+See Ruby/Readme.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Ruby programs executed per second, including
+those without Ruby provider support
+.TP
+METHOD/s
+Methods called, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+OBJFRE/s
+Objects freed, per second
+.TP
+RAIS/s
+Raises, per second
+.TP
+RESC/s
+Rescues, per second
+.TP
+GC/s
+Garbage collects, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_syscalls.d - count Ruby calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B rb_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and method names are printed if available.
+The filename for syscalls may be printed as "ruby", if the program
+was invoked using the form "ruby filename" rather than running the
+program with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the Ruby program
+.TP
+TYPE
+Type of call (method/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+.TH rb_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_syscolors.d - trace Ruby method flow plus syscalls, in color.
+.SH SYNOPSIS
+.B rb_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches Ruby method entries and returns, and indents child
+function calls.
+
+Filename and method names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the Ruby program
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (method/line/syscall)
+.TP
+NAME
+Ruby method or syscall name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rb_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH rb_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+rb_who.d - trace Ruby line execution by process using DTrace.
+.SH SYNOPSIS
+.B rb_who.d
+
+.SH DESCRIPTION
+This traces Ruby activity from all Ruby programs on the system that are
+running with Ruby provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Ruby provider, which may change 
+as additional features are introduced. Check Ruby/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rb_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Ruby
+.TP
+UID
+User ID of the owner
+.TP
+LINES
+Number of times a line was executed
+.TP
+FILE
+Pathname of the Ruby program
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+rb_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/readbytes.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/readbytes.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/readbytes.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH readbytes.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+readbytes.d \- read bytes by process name. Uses DTrace.
+.SH SYNOPSIS
+.B readbytes.d
+.SH DESCRIPTION
+readbytes.d is a DTrace OneLiner to a report of the number of 
+bytes read by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B readbytes.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the number of bytes read.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+readbytes.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/readdist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/readdist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/readdist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH readdist.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+readdist.d \- read distrib. by process name. Uses DTrace.
+.SH SYNOPSIS
+.B readdist.d
+.SH DESCRIPTION
+readdist.d is a DTrace OneLiner to a report the read size and
+number of occurrences as a frequency distribution by process name.
+
+This can be useful to identify the behaviour of processes
+that are doing reads. Are they using many small reads, or 
+fewer large reads.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B readdist.d
+.PP
+.SH FIELDS
+.TP
+process name
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+value
+The size in bytes
+.TP
+count
+The number of occurrences that were at least this size 
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+readdist.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfileio.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfileio.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfileio.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,41 @@
+.TH rfileio.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rfileio.d \- read file I/O stats, with cache miss rate. Uses DTrace.
+.SH SYNOPSIS
+.B rfileio.d
+.SH DESCRIPTION
+This script provides statistics on the number of reads and the bytes
+read from filesystems (logical), and the number of bytes read from
+disk (physical). A summary is printed every five seconds by file.
+
+A total miss-rate is also provided for the file system cache.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print a summary of activity every five seconds.
+# 
+.B rfileio.d
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rfileio.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rfsio.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfsio.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfsio.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rfsio.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,41 @@
+.TH rfsio.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rfsio.d \- read FS I/O stats, with cache miss rate. Uses DTrace.
+.SH SYNOPSIS
+.B rfsio.d
+.SH DESCRIPTION
+This script provides statistics on the number of reads and the bytes
+read from filesystems (logical), and the number of bytes read from
+disk (physical). A summary is printed every five seconds by filesystem.
+
+A total miss-rate is also provided for the file system cache.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Print a summary of activity every five seconds.
+# 
+.B rfsio.d
+.PP
+.SH IDEA
+Richard McDougall, Solaris Internals 2nd Ed, FS Chapter.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rfsio.d will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rfileio.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/runocc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/runocc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/runocc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH runocc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+runocc.d \- run queue occupancy by CPU. Uses DTrace.
+.SH SYNOPSIS
+.B runocc.d
+.SH DESCRIPTION
+This prints the dispatcher run queue occupancy by CPU each second.
+A consistant run queue occupancy is a sign of CPU saturation.
+
+The value is similar to that seen in "sar -q", however this is
+calculated in a more accurate manner - sampling at 1000 Hertz.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+Print %runocc by CPU every second,
+# 
+.B runocc.d
+.PP
+.SH FIELDS
+.TP
+CPU
+cpu ID
+.TP
+%runocc
+percent run queue occupancy, sampled at 1000 Hertz
+.PP
+.SH SEE ALSO
+Solaris Internals 2nd Ed, vol 2, CPU chapter
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+runocc.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+.TH rwbbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rwbbypid.d \- read/write bytes by PID. Uses DTrace.
+.SH SYNOPSIS
+.B rwbbypid.d
+.SH DESCRIPTION
+This script tracks the bytes read and written at the syscall level
+by processes, printing the totals in a report. This is tracking the
+successful number of bytes read or written.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B rwbbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+DIR
+direction, Read or Write
+.TP
+BYTES
+total bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwbbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwbypid.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+.TH rwbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rwbypid.d \- read/write calls by PID. Uses DTrace.
+.SH SYNOPSIS
+.B rwbypid.d
+.SH DESCRIPTION
+This script tracks the number of reads and writes at the syscall level
+by processes, printing the totals in a report. This matches reads
+and writes whether they succeed or not.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B rwbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+DIR
+direction, Read or Write
+.TP
+COUNT
+total calls
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwbbypid.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbytype.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbytype.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwbytype.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH rwbytype.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rwbytype.d \- read/write bytes by vnode type. Uses DTrace.
+.SH SYNOPSIS
+.B rwbytype.d
+.SH DESCRIPTION
+This program identifies the vnode type of read/write activity - whether
+that is for regular files, sockets, character special devices, etc. This
+is measuring at the application level, so file activity may well be 
+cached by the system.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B rwbytype.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+VNODE
+vnode type (describes I/O type)
+.TP
+DIR
+direction, Read or Write
+.TP
+BYTES
+total bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwbytype.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwbypid.d(1M), rwbbypid.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwsnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwsnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwsnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,104 @@
+.TH rwsnoop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rwsnoop \- snoop read/write events. Uses DTrace.
+.SH SYNOPSIS
+.B rwsnoop
+[\-jPtvZ] [\-n name] [\-p PID]
+.SH DESCRIPTION
+This is measuring reads and writes at the application level. This
+matches the syscalls read, write, pread and pwrite.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-j
+print project ID
+.TP
+\-P
+print parent process ID
+.TP
+\-t
+print timestamp, us
+.TP
+\-v
+print time, string
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+process name to track
+.TP
+\-p PID
+PID to track
+.PP
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B rwsnoop
+.TP
+Print zone ID,
+# 
+.B rwsnoop
+-\Z
+.TP
+Monitor processes named "bash",
+#
+.B rwsnoop
+\-n bash
+.PP
+.SH FIELDS
+.TP
+TIME
+timestamp, us
+.TP
+TIMESTR
+time, string
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+CMD
+command name for the process
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total bytes during sample
+.TP
+FILE
+filename, if file based. 
+Reads and writes that are not file based, for example with sockets, will
+print "<unknown>" as the filename.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwsnoop will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+rwtop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwtop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwtop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/rwtop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,115 @@
+.TH rwtop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+rwtop \- display top read/write bytes process. Uses DTrace.
+.SH SYNOPSIS
+.B rwtop
+[\-Cc] [\-j|\-Z] [\-n name] [\-p PID]
+[\-t top] [interval [count]]
+.SH DESCRIPTION
+This is measuring reads and writes at the application level. 
+This matches read and write system calls.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-c
+print counts
+.TP
+\-j
+print project ID
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+process name to track
+.TP
+\-p PID
+PID to track
+.TP
+\-t top
+print top number only
+.PP
+.SH EXAMPLES
+.TP
+Default output, print summary every 5 seconds
+# 
+.B rwtop
+.PP
+.TP
+One second samples,
+# 
+.B rwtop
+1
+.TP
+Print top 10 lines only,
+#
+.B rwtop
+\-t 10
+.TP
+Monitor processes named "bash",
+#
+.B rwtop
+\-n bash
+.TP
+Print 12 x 5 second samples, scrolling,
+#
+.B rwtop
+\-C 5 12
+.PP
+.SH FIELDS
+.TP
+PROJ
+project ID
+.TP
+ZONE
+zone ID
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+CMD
+command name for the process
+.TP
+D
+direction, Read or Write
+.TP
+BYTES
+total bytes during sample
+.TP
+load
+1 minute load average
+.TP
+app_r
+total read Kb for sample
+.TP
+app_w
+total write Kb for sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+rwtop will run forever until Ctrl\-C is hit, or the specified
+interval is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iotop(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sampleproc.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sampleproc.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sampleproc.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+.TH sampleproc 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+sampleproc \- sample processes on the CPUs. Uses DTrace.
+.SH SYNOPSIS
+.B sampleproc [hertz]
+.SH DESCRIPTION
+This program samples which process is on each CPU, at a particular
+configurable rate. This can be used as an estimate for which process
+is consuming the most CPU time.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses the ncpus_online kernel symbol.
+.SH EXAMPLES
+.TP
+Sample at 100 hertz,
+# 
+.B sampleproc 
+.TP
+Sample at 400 hertz,
+# 
+.B sampleproc
+400
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+COMMAND
+command name
+.TP
+COUNT
+number of samples
+.TP
+PERCENT
+percent of CPU usage
+.PP
+.SH BASED ON
+/usr/demo/dtrace/prof.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "profile Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sampleproc will sample until Ctrl\-C is hit. 
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sar-c.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sar-c.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sar-c.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,62 @@
+.TH sar\-c.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+sar\-c.d \- sar \-c demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B sar\-c.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching the same data as sar \-c
+from DTrace. This program is intended as a starting point for other
+DTrace scripts, by beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and sysinfo providers.
+.SH EXAMPLES
+.TP
+Print system call counts every second,
+# 
+.B sar\-c.d
+.PP
+.SH FIELDS
+.TP
+scall/s
+System calls
+.TP
+sread/s
+reads
+.TP
+swrit/s
+writes
+.TP
+fork/s
+forks
+.TP
+exec/s
+execs
+.TP
+rchar/s
+read characters
+.TP
+wchar/s
+write characters
+.PP
+.SH IDEA
+David Rubio, who also wrote the original.
+.PP
+.SH NOTES
+As this program does not use Kstat, there is no summary since boot line.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sar\-c.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+sar(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/seeksize.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/seeksize.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/seeksize.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,51 @@
+.TH seeksize.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+seeksize.d \- print disk event seek report. Uses DTrace.
+.SH SYNOPSIS
+.B seeksize.d
+.SH DESCRIPTION
+seeksize.d is a simple DTrace program to print a report of disk
+event seeks by process. 
+
+This can be used to identify whether processes are accessing the
+disks in a "random" or "sequential" manner. Sequential is often
+desirable, indicated by mostly zero length seeks.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the io provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B seeksize.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command and argument list
+.TP
+value
+distance in disk blocks (sectors)
+.TP
+count
+number of I/O operations
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+seeksize.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+iosnoop(1M), bitesize.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/setuids.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/setuids.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/setuids.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+.TH setuids.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+setuids.d \- snoop setuid calls as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B setuids.d
+.SH DESCRIPTION
+setuids.d is a simple DTrace program to print details of setuid
+calls, where a process assumes a different UID. These are usually
+related to login events.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+Default output, print setuids as they occur,
+# 
+.B setuids.d
+.PP
+.SH FIELDS
+.TP
+UID
+user ID (from)
+.TP
+SUID
+set user ID (to)
+.TP
+PPID
+parent process ID
+.TP
+PID
+process ID
+.TP
+PCMD
+parent command
+.TP
+CMD
+command (with arguments)
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+setuids.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), bsmconv(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_calldist.d - measure Bourne shell elapsed times for types of operation.
+.SH SYNOPSIS
+.B sh_calldist.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This script prints distribution plots of elapsed time for shell
+operations. Use sh_calltime.d for summary reports.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the shell or shellscript
+.TP
+2
+Type of call (func/builtin/cmd)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_calls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_calls.d - count Bourne calls (func/builtin/cmd/subsh) using DTrace.
+.SH SYNOPSIS
+.B sh_calls.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_calls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/subsh)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_calltime.d - measure Bourne shell elapsed times for types of operation.
+.SH SYNOPSIS
+.B sh_calltime.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_calltime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_cpudist.d - measure Bourne shell on-CPU times for types of operation.
+.SH SYNOPSIS
+.B sh_cpudist.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This script prints distribution plots of on-CPU time for shell
+operations. Use sh_cputime.d for summary reports.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Filename of the shell or shellscript
+.TP
+2
+Type of call (func/builtin/cmd)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_cputime.d - measure Bourne shell on-CPU times for types of operation.
+.SH SYNOPSIS
+.B sh_cputime.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_cputime.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+.TH sh_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_flow.d - snoop Bourne shell execution showing function flow using DTrace.
+.SH SYNOPSIS
+.B sh_flow.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins are also printed.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+NAME
+Shell function, builtin or command name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.TP
+>
+builtin
+.TP
+|
+external command
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,62 @@
+.TH sh_flowinfo.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_flowinfo.d - snoop Bourne shell flow with additional info.
+.SH SYNOPSIS
+.B sh_flowinfo.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins and external commands are also printed.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_flowinfo.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the shell script
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/builtin/cmd/subsh)
+.TP
+NAME
+Shell function, builtin or command name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_flowinfo.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,76 @@
+.TH sh_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_flowtime.d - snoop Bourne shell execution with flow and delta times.
+.SH SYNOPSIS
+.B sh_flowtime.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins are also printed.
+
+DELTAs:
+->		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
+
+See sh_flowinfo.d for more verbose and more straightforward delta times.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+FILE
+Filename that this function belongs to
+.TP
+NAME
+Shell function or builtin name
+.SH LEGEND
+.TP
+\->
+function entry
+.TP
+<\-
+function return
+.TP
+>
+builtin
+.TP
+|
+external command
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_lines.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_lines.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_lines.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH sh_lines.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_lines.d - trace Bourne shell line execution using DTrace.
+.SH SYNOPSIS
+.B sh_lines.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_lines.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+LINE
+Line number
+.TP
+COUNT
+Number of times a line was executed
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_lines.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_pidcolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_pidcolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_pidcolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,70 @@
+.TH sh_pidcolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_pidcolors.d - Demonstration of deeper DTrace Bourne shell analysis.
+.SH SYNOPSIS
+.B sh_pidcolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This extends sh_syscolors.d by including some "pid" provider tracing
+as a starting point for deeper analysis. Currently 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. Customise it to whichever
+parts of /usr/bin/sh or the system libraries you are interested in.
+
+The filename for syscalls may be printed as the shell name, if the
+script was invoked using the form "shell filename" rather than running
+the script with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_pidcolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the shell script
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/builtin/cmd/line/shell)
+.TP
+NAME
+Shell function, builtin or command name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_pidcolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_stat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_stat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_stat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,59 @@
+.TH sh_stat.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_stat.d - Bourne shell operation stats using DTrace.
+.SH SYNOPSIS
+.B sh_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all sh processes on the system that are running
+with sh provider support.
+
+The numbers are 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 sh
+scripts may be running without the DTrace sh provider. See Shell/Readme.
+
+Filename and function names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Bourne shells executed per second, including
+those without sh provider support
+.TP
+FUNC/s
+Functions called, per second
+.TP
+BLTIN/s
+Builtins called, per second
+.TP
+SUB-SH/s
+Sub-shells called, per second
+.TP
+CMD/s
+External commands called, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_syscalls.d - count Bourne calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B sh_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+Filename and function names are printed if available.
+The filename for syscalls may be printed as the shell name, if the
+script was invoked using the form "shell filename" rather than running
+the script with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_syscalls.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+TYPE
+Type of call (func/builtin/cmd/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+.TH sh_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_syscolors.d - trace Bourne shell flow plus syscalls, in color.
+.SH SYNOPSIS
+.B sh_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This watches shell function entries and returns, and indents child
+function calls. Shell builtins, commands and lines are also printed.
+
+The filename for syscalls may be printed as the shell name, if the
+script was invoked using the form "shell filename" rather than running
+the script with an interpreter line.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+FILE
+Filename of the shell script
+.TP
+LINE
+Line number of filename
+.TP
+TYPE
+Type of call (func/builtin/cmd/line/shell)
+.TP
+NAME
+Shell function, builtin or command name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_wasted.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_wasted.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_wasted.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_wasted.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_wasted.d - measure Bourne shell elapsed times for "wasted" commands.
+.SH SYNOPSIS
+.B sh_wasted.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This script measures "wasted" commands - those which are called externally
+but are in fact builtins to the shell. Ever seen a script which calls
+/usr/bin/echo needlessly? This script measures that cost.
+
+Filename and call names are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_wasted.d
+.PP
+.SH FIELDS
+.TP
+FILE
+Filename of the shell or shellscript
+.TP
+NAME
+Name of call
+.TP
+TIME
+Total elapsed time for calls (us)
+.SH IDEA
+Mike Shapiro
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_wasted.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sh_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+.TH sh_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+sh_who.d - trace Bourne shell line execution by process using DTrace.
+.SH SYNOPSIS
+.B sh_who.d
+
+.SH DESCRIPTION
+This traces shell activity from all Bourne shells on the system that are
+running with sh provider support.
+
+Filenames are printed if available.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Shell provider, which may change 
+as additional features are introduced. Check Shell/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B sh_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of the shell
+.TP
+UID
+User ID of the owner
+.TP
+LINES
+Number of times a line was executed
+.TP
+FILE
+Pathname of the shell or shellscript
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+sh_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/shellsnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/shellsnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/shellsnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,99 @@
+.TH shellsnoop 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+shellsnoop \- snoop live shell activity. Uses DTrace.
+.SH SYNOPSIS
+.B shellsnoop
+[\-hqsv] [\-p PID] [\-u UID]
+.SH DESCRIPTION
+A program to print read/write details from shells,
+such as keystrokes and command outputs.
+
+This program sounds somewhat dangerous (snooping keystrokes), but is
+no more so than /usr/bin/truss, and both need root or dtrace privileges to
+run. In fact, less dangerous, as we only print visible text (not password
+text, for example). Having said that, it goes without saying that this
+program shouldn't be used for breeching privacy of other users.
+
+This was written as a tool to demonstrate the capabilities of DTrace.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - this script uses the syscall provider.
+.SH OPTIONS
+.TP
+\-q
+quiet, only print data
+.TP
+\-s
+include start time, us
+.TP
+\-v
+include start time, string
+.TP
+\-p PID
+PID to snoop
+.TP
+\-u UID
+user ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B shellsnoop
+.TP
+human readable timestamps,
+# 
+.B shellsnoop
+\-v
+.TP
+watch this PID only,
+#
+.B shellsnoop
+\-p 1892
+.TP
+watch this PID data only,
+#
+.B shellsnoop
+\-qp 1892
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+PPID
+parent process ID
+.TP
+COMM
+command name
+.TP
+DIR
+direction (R read, W write)
+.TP
+TEXT
+text contained in the read/write
+.TP
+TIME
+timestamp for the command, us
+.TP
+STRTIME
+timestamp for the command, string
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+shellsnoop will run forever until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/shortlived.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/shortlived.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/shortlived.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,37 @@
+.TH shortlived.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+shortlived.d \- check short lived process time. Uses DTrace.
+.SH SYNOPSIS
+.B shortlived.d
+.SH DESCRIPTION
+shortlived.d is a DTrace program to measure the time consumed by
+short lived processes. 
+
+Many short lived processes can be a burden on the system, and may be
+the cause of performance problems. This program can help identify
+that case.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and proc providers.
+.SH EXAMPLES
+.TP
+This prints a report after Ctrl\-C has been hit,
+# 
+.B shortlived.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+shortlived.d will run until Ctrl\-C is hit to end the sample. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sigdist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sigdist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sigdist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH sigdist.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+sigdist.d \- signal distribution by process. Uses DTrace.
+.SH SYNOPSIS
+.B sigdist.d
+.SH DESCRIPTION
+This is a simple DTrace script that prints the number of signals
+recieved by process and signal number. This script is also available
+as /usr/demo/dtrace/sig.d, where it originates.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B sigdist.d
+.PP
+.SH FIELDS
+.TP
+SENDER
+process name of sender
+.TP
+RECIPIENT
+process name of target
+.TP
+SIG
+signal number, see signal(3head)
+.TP
+COUNT
+number of signals sent
+.PP
+.SH BASED ON
+/usr/demo/dtrace/sig.d
+.PP
+.SH DOCUMENTATION
+DTrace Guide "proc Provider" chapter (docs.sun.com)
+
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sigdist.d will sample until Ctrl\-C is hit.
+.SH SEE ALSO
+kill.d(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/stacksize.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/stacksize.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/stacksize.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,42 @@
+.TH stacksize.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+stacksize.d \- measure stack size for running threads. Uses DTrace.
+.SH SYNOPSIS
+.B stacksize.d
+.SH DESCRIPTION
+This samples the user stack size by process name, and prints a 
+distribution plot so that the average stack size can be easily
+identified.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sched provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B stacksize.d
+.PP
+.SH FIELDS
+.TP
+value
+size of the user stack
+.TP
+count
+number of samples at this size
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+stacksize.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Jonathan Adams
+.SH SEE ALSO
+pmap(1), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/statsnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/statsnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/statsnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,140 @@
+.TH statsnoop 1m  "$Date:: 2007-09-23 #$" "USER COMMANDS"
+.SH NAME
+statsnoop \- snoop file stats as they occur. Uses DTrace.
+.SH SYNOPSIS
+.B statsnoop
+[\-a|\-A|\-ceghsvxZ] [\-f pathname] [\-n name] [\-p PID]
+.SH DESCRIPTION
+statsnoop traces the stat variety of syscalls.
+As a process issues a file stat, details
+such as UID, PID and pathname are printed out. 
+
+The returned file descriptor is printed,
+a value of -1 indicates an error. This can be useful
+for troubleshooting to determine if appliacions are attempting to
+stat files that do not exist. 
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-A
+dump all data, space delimited
+.TP
+\-c
+print current working directory of process
+.TP
+\-e
+print errno value
+.TP
+\-g
+print full command arguments
+.TP
+\-s
+print start time, us
+.TP
+\-v
+print start time, string
+.TP
+\-x
+only print failed stats
+.TP
+\-Z
+print zonename
+.TP
+\-f pathname
+file pathname to snoop
+.TP
+\-n name
+process name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, print file stats by process as they occur,
+# 
+.B statsnoop
+.PP
+.TP
+Print human readable timestamps,
+# 
+.B statsnoop
+\-v 
+.PP
+.TP
+See error codes,
+#
+.B statsnoop
+\-e
+.PP
+.TP
+Snoop this file only,
+#
+.B statsnoop
+\-f /etc/passwd
+.PP
+.SH FIELDS
+.TP
+ZONE
+Zone name
+.TP
+UID
+User ID
+.TP
+PID
+Process ID
+.TP
+PPID
+Parent Process ID
+.TP
+FD
+File Descriptor (-1 is error)
+.TP
+ERR
+errno value (see /usr/include/sys/errno.h)
+.TP
+CWD
+current working directory of process
+.TP
+PATH
+pathname for file stat
+.TP
+COMM
+command name for the process
+.TP
+ARGS
+argument listing for the process
+.TP
+TIME
+timestamp for the stat event, us
+.TP
+STRTIME
+timestamp for the stat event, string
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+statsnoop will run forever until Ctrl\-C is hit. 
+.SH BUGS
+occasionally the pathname for the file stat cannot be read
+and the following error will be seen,
+
+dtrace: error on enabled probe ID 6 (...): invalid address
+
+this is normal behaviour.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/swapinfo.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/swapinfo.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/swapinfo.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,88 @@
+.TH swapinfo.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+swapinfo.d \- print virtual memory info. Uses DTrace.
+.SH SYNOPSIS
+.B swapinfo.d
+.SH DESCRIPTION
+Prints swap usage details for RAM and disk based swap.
+
+This script is UNDER CONSTRUCTION, check for newer versions.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH FIELDS
+.TP
+RAM Total
+Total RAM installed
+.TP
+RAM Unusable
+RAM consumed by the OBP and TSBs
+.TP
+RAM Kernel
+Kernel resident in RAM (and usually locked)
+.TP
+RAM Locked
+Locked memory pages from swap (Anon)
+.TP
+RAM Used
+anon + exec + file pages used
+.TP
+RAM Free
+free memory + page cache free
+.TP
+Disk Total
+Total disk swap configured
+.TP
+Disk Resv
+Disk swap allocated + reserved
+.TP
+Disk Avail
+Disk swap available for reservation
+.TP
+Swap Total
+Total Virtual Memory usable
+.TP
+Swap Resv
+VM allocated + reserved
+.TP
+Swap Avail
+VM available for reservation
+.TP
+Swap MinFree
+VM kept free from reservations
+.PP
+.SH EXAMPLES
+.TP
+Print info,
+# 
+.B swapinfo.d
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH ADDITIONAL RESOURCES
+swapstat - K9Toolkit
+
+vmstat 1 2; swap -s; echo ::memstat | mdb -k
+
+RMCmem - The MemTool Package
+
+RICHPse - The SE Toolkit
+
+"Clearing up swap space confusion" Unix Insider, Adrian Cockcroft
+
+"Solaris Internals", Jim Mauro, Richard McDougall
+
+/usr/include/vm/anon.h, /usr/include/sys/systm.h
+
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/sysbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/sysbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/sysbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH sysbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+sysbypid.d \- system stats by PID. Uses DTrace.
+.SH SYNOPSIS
+.B sysbypid.d
+.SH DESCRIPTION
+sysbypid.d is a simple DTrace program to print System
+statistics by process.
+
+The system statistics are documented in the cpu_sysinfo struct
+in the /usr/include/sys/sysinfo.h file; and also in the sysinfo provider
+chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B sysbypid.d
+.PP
+.SH FIELDS
+.TP
+EXEC
+process name
+.TP
+PID
+process ID
+.TP
+VM
+Virtual Memory statistic
+.TP
+VALUE
+Value by which statistic was incremented
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+sysbypid.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH syscallbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+syscallbypid.d \- syscalls by process ID. Uses DTrace.
+.SH SYNOPSIS
+.B syscallbypid.d
+.SH DESCRIPTION
+This reports the number of each type of system call made by PID.
+This is useful to identify which process is causing the most 
+system calls.
+
+This is based on a script from DExplorer.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B syscallbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+SYSCALL
+system call name
+.TP
+COUNT
+number of system calls made in this sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+syscallbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbyproc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbyproc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbyproc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH syscallbyproc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+syscallbyproc.d \- syscalls by process name. Uses DTrace.
+.SH SYNOPSIS
+.B syscallbyproc.d
+.SH DESCRIPTION
+syscallbyproc.d is a DTrace OneLiner to a report of the number of 
+system calls made by process name. 
+
+This is useful to identify which process is causing the most 
+system calls.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B syscallbyproc.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the count, the number of system calls made.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+syscallbyproc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbysysc.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbysysc.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/syscallbysysc.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH syscallbysysc.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+syscallbysysc.d \- syscalls by syscall. Uses DTrace.
+.SH SYNOPSIS
+.B syscallbysysc.d
+.SH DESCRIPTION
+syscallbysysc.d is a DTrace OneLiner to a report of the number of 
+each type of system call made.
+
+This is useful to identify which system call is the most common.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable - needs the syscall provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B syscallbysysc.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the system call type. Most have man pages in section 2.
+.TP
+second field
+This is the count, the number of occurrances for this system call.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+syscallbysysc.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+procsystime(1M), dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calldist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calldist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calldist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH tcl_calldist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_calldist.d - measure Tcl elapsed time for different types of operation.
+.SH SYNOPSIS
+.B tcl_calldist.d
+[top]	
+eg,
+tcl_calldist.d	# default, truncate to 10 lines
+tcl_calldist.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calldist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (proc/cmd/total)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calldist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH tcl_calls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_calls.d - count Tcl calls (proc/cmd) using DTrace.
+.SH SYNOPSIS
+.B tcl_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+TYPEs:
+proc		procedure
+cmd		command
+
+PORTIONS: Copyright (c) 2007 Brendan Gregg.
+
+CDDL HEADER START
+
+The contents of this file are subject to the terms of the
+Common Development and Distribution License, Version 1.0 only
+(the "License").  You may not use this file except in compliance
+with the License.
+
+You can obtain a copy of the license at Docs/cddl1.txt
+or http://www.opensolaris.org/os/licensing.
+See the License for the specific language governing permissions
+and limitations under the License.
+
+CDDL HEADER END
+
+09-Sep-2007	Brendan Gregg	Created this.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (see below)
+.TP
+NAME
+Name of proc or cmd call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calltime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calltime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_calltime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH tcl_calltime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_calltime.d - measure Tcl elapsed times for different types of operation.
+.SH SYNOPSIS
+.B tcl_calltime.d
+[top]	
+eg,
+tcl_calltime.d	# default, truncate to 10 lines
+tcl_calltime.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calltime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (proc/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total elapsed time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calltime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cpudist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cpudist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cpudist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH tcl_cpudist.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_cpudist.d - measure Tcl on-CPU time for different types of operation.
+.SH SYNOPSIS
+.B tcl_cpudist.d
+[top]	
+eg,
+tcl_cpudist.d		# default, truncate to 10 lines
+tcl_cpudist.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_cpudist.d
+.PP
+.SH FIELDS
+.TP
+1
+Process ID
+.TP
+2
+Type of call (proc/cmd/total)
+.TP
+3
+Name of call
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_cpudist.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cputime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cputime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_cputime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH tcl_cputime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_cputime.d - measure Tcl on-CPU times for different types of operation.
+.SH SYNOPSIS
+.B tcl_cputime.d
+[top]	
+eg,
+tcl_cputime.d		# default, truncate to 10 lines
+tcl_cputime.d 25	# truncate each report section to 25 lines
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_cputime.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (proc/cmd/total)
+.TP
+NAME
+Name of call
+.TP
+TOTAL
+Total on-CPU time for calls (us)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_cputime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+.TH tcl_flow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_flow.d - snoop Tcl execution showing procedure flow using DTrace.
+.SH SYNOPSIS
+.B tcl_flow.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_flow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+CALL
+Tcl command or procedure name
+.SH LEGEND
+.TP
+\->
+procedure entry
+.TP
+<\-
+procedure return
+.TP
+>
+command entry
+.TP
+<
+command return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_flow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flowtime.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flowtime.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_flowtime.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,69 @@
+.TH tcl_flowtime.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_flowtime.d - snoop Tcl execution showing procedure flow and delta times.
+.SH SYNOPSIS
+.B tcl_flowtime.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_flowtime.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TIME(us)
+Time since boot, us
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+CALL
+Tcl command or procedure name
+.SH LEGEND
+.TP
+\->
+procedure entry
+.TP
+<\-
+procedure return
+.TP
+>
+command entry
+.TP
+<
+command return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_flowtime.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_ins.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_ins.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_ins.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH tcl_calls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_calls.d - count Tcl calls (method/...) using DTrace.
+.SH SYNOPSIS
+.B tcl_calls.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+TYPEs:
+inst		instruction
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_calls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (see below)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_calls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_insflow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_insflow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_insflow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,69 @@
+.TH tcl_insflow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_insflow.d - snoop Tcl execution showing procedure flow and delta times.
+.SH SYNOPSIS
+.B tcl_insflow.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_insflow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TIME(us)
+Time since boot, us
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+TYPE
+Type of call (proc/cmd/inst)
+.TP
+CALL
+Tcl command or procedure name
+.SH LEGEND
+.TP
+proc
+procedure
+.TP
+cmd
+command
+.TP
+inst
+instruction
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_insflow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_proccalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_proccalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_proccalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,44 @@
+.TH tcl_methodcalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_methodcalls.d - count Tcl method calls DTrace.
+.SH SYNOPSIS
+.B tcl_methodcalls.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_methodcalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+COUNT
+Number of calls during sample
+.TP
+PROCEDURE
+Tcl procedure name
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_methodcalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_procflow.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_procflow.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_procflow.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+.TH tcl_procflow.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_procflow.d - snoop Tcl execution showing procedure flow using DTrace.
+.SH SYNOPSIS
+.B tcl_procflow.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_procflow.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+TIME(us)
+Time since boot, us
+.TP
+PID
+Process ID
+.TP
+PROCEDURE
+Tcl procedure name
+.SH LEGEND
+.TP
+\->
+proc entry
+.TP
+<\-
+proc return
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_procflow.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_stat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_stat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_stat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+.TH tcl_stat.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_stat.d - Tcl operation stats using DTrace.
+.SH SYNOPSIS
+.B tcl_stat.d
+[interval [count]]
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+The numbers are 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 you
+may have older Tcl software that does not have the integrated DTrace
+provider (or newer software where the provider has changed).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_stat.d
+.PP
+.SH FIELDS
+.TP
+EXEC/s
+Tcl programs executed per second, including
+those without Tcl provider support
+.TP
+PROC/s
+Procedures called, per second
+.TP
+CMD/s
+Commands created, per second
+.TP
+OBJNEW/s
+Objects created, per second
+.TP
+OBJFRE/s
+Objects freed, per second
+.TP
+OP/s
+Bytecode operations, per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_stat.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscalls.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscalls.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscalls.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH tcl_syscalls.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_syscalls.d - count Tcl calls and syscalls using DTrace.
+.SH SYNOPSIS
+.B tcl_syscalls.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_syscalls.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID
+.TP
+TYPE
+Type of call (method/syscall)
+.TP
+NAME
+Name of call
+.TP
+COUNT
+Number of calls during sample
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_syscalls.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscolors.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscolors.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_syscolors.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,59 @@
+.TH tcl_syscolors.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_syscolors.d - trace Tcl program flow plus syscalls, in color.
+.SH SYNOPSIS
+.B tcl_syscolors.d
+{ \-p PID | \-c cmd }	
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+This watches Tcl method entries and returns, and indents child
+method calls.
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_syscolors.d
+.PP
+.SH FIELDS
+.TP
+C
+CPU-id
+.TP
+PID
+Process ID
+.TP
+TID
+Thread ID
+.TP
+DELTA(us)
+Elapsed time from previous line to this line
+.TP
+TYPE
+Type of call (proc/cmd/syscall)
+.TP
+NAME
+Tcl proc/cmd or syscall name
+.SH 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.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_syscolors.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_who.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_who.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcl_who.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH tcl_who.d 1m   "$Date:: 2007-10-03 #$" "USER COMMANDS"
+.SH NAME
+tcl_who.d - trace Tcl calls by process using DTrace.
+.SH SYNOPSIS
+.B tcl_who.d
+
+.SH DESCRIPTION
+This traces activity from all Tcl processes on the system with DTrace
+provider support (tcl8.4.16).
+
+Calls is a measure of activity, and is a count of the procedures and
+commands that Tcl called.
+
+The argument list is truncated at 55 characters (up to 80 is easily
+available). To easily read the full argument list, use other system tools;
+on Solaris use "pargs PID".
+.SH OS
+Any
+.SH STABILITY
+Evolving - uses the DTrace Tcl provider, which may change 
+as additional features are introduced. Check Tcl/Readme
+to see what version these scripts are based on.
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B tcl_who.d
+.PP
+.SH FIELDS
+.TP
+PID
+Process ID of Tcl
+.TP
+UID
+User ID of the owner
+.TP
+CALLS
+Number of calls made (proc + cmd)
+.TP
+ARGS
+Process name and arguments
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Examples, Notes and Docs directories. The example files may be
+especially useful as they aim to demonstrate how to interpret
+the output.
+.SH EXIT
+tcl_who.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+.TH tcpsnoop 1m  "$Date:: 2007-10-04 #$" "USER COMMANDS"
+.SH NAME
+tcpsnoop \- snoop TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcpsnoop
+[\-a|hjsvZ] [\-n name] [\-p pid]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris 10 3/05
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-j
+print project ID
+.TP
+\-s
+print time, us
+.TP
+\-v
+print time, string
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+command name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop
+.TP
+Print human readable timestamps,
+#
+.B tcpsnoop
+\-v
+.TP
+Print zonename,
+#
+.B tcpsnoop
+\-Z
+.TP
+Print sshd traffic only,
+#
+.B tcpsnoop
+\-n sshd
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.TP
+TIME
+timestamp, us
+.TP
+STRTIME
+human readable timestamp, string
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcptop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH tcpsnoop.d 1m  "$Date:: 2007-10-04 #$" "USER COMMANDS"
+.SH NAME
+tcpsnoop.d \- snoop TCP network packets by process. DTrace.
+.SH SYNOPSIS
+.B tcpsnoop.d
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+This is a DTrace only version of "tcpsnoop" - an enhanced program that 
+provides command line options.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris 10 3/05
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop.d
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop.d will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), tcptop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+.TH tcpsnoop 1m  "$Date:: 2007-10-04 #$" "USER COMMANDS"
+.SH NAME
+tcpsnoop \- snoop TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcpsnoop
+[\-a|hjsvZ] [\-n name] [\-p pid]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris Nevada / OpenSolaris, circa late 2007
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-a
+print all data
+.TP
+\-j
+print project ID
+.TP
+\-s
+print time, us
+.TP
+\-v
+print time, string
+.TP
+\-Z
+print zone ID
+.TP
+\-n name
+command name to snoop
+.TP
+\-p PID
+process ID to snoop
+.PP
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop
+.TP
+Print human readable timestamps,
+#
+.B tcpsnoop
+\-v
+.TP
+Print zonename,
+#
+.B tcpsnoop
+\-Z
+.TP
+Print sshd traffic only,
+#
+.B tcpsnoop
+\-n sshd
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.TP
+TIME
+timestamp, us
+.TP
+STRTIME
+human readable timestamp, string
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcptop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpsnoop_snv.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,68 @@
+.TH tcpsnoop.d 1m  "$Date:: 2007-10-04 #$" "USER COMMANDS"
+.SH NAME
+tcpsnoop.d \- snoop TCP network packets by process. DTrace.
+.SH SYNOPSIS
+.B tcpsnoop.d
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+This is a DTrace only version of "tcpsnoop" - an enhanced program that 
+provides command line options.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris Nevada / OpenSolaris, circa late 2007
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Default output, snoop TCP network packets with details,
+# 
+.B tcpsnoop.d
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+DR
+direction
+.TP
+SIZE
+packet size, bytes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpsnoop.d will print traffic until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), tcptop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpstat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpstat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpstat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,58 @@
+.TH tcpstat.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+tcpstat.d \- print TCP statistics. Uses DTrace.
+.SH SYNOPSIS
+.B tcpstat.d
+.SH DESCRIPTION
+tcpstat.d is a DTrace program to print TCP statistics every second,
+retrieved from the MIB provider.
+
+This program can be used to help identify how utilised the network 
+interfaces may be, as well as TCP transmission errors.
+
+The TCP statistics are documented in the mib2_tcp struct
+in /usr/include/inet/mib2.h; and also in the mib provider
+chapter of the DTrace Guide, found at 
+http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the mib provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B tcpstat.d
+.PP
+.SH FIELDS
+.TP
+TCP_out
+TCP bytes sent
+.TP
+TCP_outRe
+TCP bytes retransmitted
+.TP
+TCP_in
+TCP bytes received
+.TP
+TCP_inDup
+TCP bytes received duplicated
+.TP
+TCP_inUn
+TCP bytes received out of order
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+nicstat(1M), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,111 @@
+.TH tcptop 1m  "$Date:: 2007-10-04 #$" "USER COMMANDS"
+.SH NAME
+tcptop \- display top TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcptop
+[-Ch] [-j|-Z] [interval [count]]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris 10 3/05
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-j
+print project IDs
+.TP
+\-Z
+print zone IDs
+.TP
+interval
+sample seconds between refreshing the screen
+.TP
+count
+number of samples
+.PP
+.SH EXAMPLES
+.TP
+Print a report every 5 seconds,
+# 
+.B tcptop
+.TP
+Don't clear the screen, scrolling output,
+#
+.B tcptop
+\-C
+.TP
+Print project IDs,
+#
+.B tcptop
+\-j
+.TP
+Print zone IDs,
+#
+.B tcptop
+\-Z
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+SIZE
+packet size, bytes
+.TP
+load
+1 minute load average
+.TP
+TCPin
+total TCP inbound payload data
+.TP
+TCPout
+total TCP outbound payload data
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcptop will print reports until Ctrl\-C is hit, or the specified
+count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop_snv.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop_snv.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcptop_snv.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,111 @@
+.TH tcptop 1m  "$Date:: 2007-10-04 #$" "USER COMMANDS"
+.SH NAME
+tcptop \- display top TCP network packets by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcptop
+[-Ch] [-j|-Z] [interval [count]]
+.SH DESCRIPTION
+This analyses TCP network packets and prints the responsible PID and UID,
+plus standard details such as IP address and port. This captures traffic
+of newly created TCP connections that were established while this program
+was running. It can help identify which processes is causing TCP traffic.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris Nevada / OpenSolaris, circa late 2007
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-j
+print project IDs
+.TP
+\-Z
+print zone IDs
+.TP
+interval
+sample seconds between refreshing the screen
+.TP
+count
+number of samples
+.PP
+.SH EXAMPLES
+.TP
+Print a report every 5 seconds,
+# 
+.B tcptop
+.TP
+Don't clear the screen, scrolling output,
+#
+.B tcptop
+\-C
+.TP
+Print project IDs,
+#
+.B tcptop
+\-j
+.TP
+Print zone IDs,
+#
+.B tcptop
+\-Z
+.PP
+.SH FIELDS
+.TP
+UID
+user ID
+.TP
+PID
+process ID
+.TP
+CMD
+command name
+.TP
+LADDR
+local IP address
+.TP
+RADDR
+remote IP address
+.TP
+LPORT
+local port number
+.TP
+RPORT
+remote port number
+.TP
+SIZE
+packet size, bytes
+.TP
+load
+1 minute load average
+.TP
+TCPin
+total TCP inbound payload data
+.TP
+TCPout
+total TCP outbound payload data
+.TP
+ZONE
+zone ID
+.TP
+PROJ
+project ID
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcptop will print reports until Ctrl\-C is hit, or the specified
+count is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpwdist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpwdist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/tcpwdist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,60 @@
+.TH tcpwdist.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+tcpwdist.d \- simple TCP write dist by process. Uses DTrace.
+.SH SYNOPSIS
+.B tcpwdist.d
+.SH DESCRIPTION
+This measures the size of writes from applications to the TCP level, which
+may well be much larger than the MTU size (this is application writes not
+packet writes). It can help identify which process is creating network
+traffic, and the size of the writes by that application. It uses a simple
+probe that produces meaningful output for most protocols.
+
+Tracking TCP activity by process is complex for a number of reasons,
+the greatest is that inbound TCP traffic is asynchronous to the process.
+The easiest TCP traffic to match is writes, which this script demonstrates.
+However there are still issues - for an inbound telnet connection the
+writes are associated with the command, for example "ls -l", not something
+meaningful such as "in.telnetd".
+
+Scripts that match TCP traffic properly include tcpsnoop and tcptop.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B tcpwdist.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+command and argument list
+.TP
+value
+TCP write payload size in bytes
+.TP
+count
+number of writes
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+tcpwdist.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+tcpsnoop(1M), tcptop(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/threaded.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/threaded.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/threaded.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH threaded.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+threaded.d \- sample multi-threaded CPU usage. Uses DTrace.
+.SH SYNOPSIS
+.B threaded.d
+.SH DESCRIPTION
+This measures thread IDs as a process runs across multiple CPUs.
+It is a simple script that can help determine if a multi-threaded
+application is effectively using it's threads, or if the threads have
+serialised. See the example file in Docs/Examples/threaded_example.txt
+for a demonstration.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Any
+.SH STABILITY
+stable.
+.SH EXAMPLES
+.TP
+This runs until Ctrl\-C is hit.
+# 
+.B threaded.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+value
+thread ID
+.TP
+count
+number of samples
+.PP
+.SH SEE ALSO
+prstat \-L
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+threaded.d will run until Ctrl\-C is hit.
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsyscall.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsyscall.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsyscall.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,73 @@
+.TH topsyscall 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+topsyscall \- top syscalls by syscall name. Uses DTrace.
+.SH SYNOPSIS
+.B topsyscall
+[-Cs] [interval [count]]
+.SH DESCRIPTION
+This program continually prints a report of the top system calls,
+and refreshes the display every 1 second or as specified at the
+command line.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses the hp_avenrun kernel symbol.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-s
+print per second values
+.PP
+.SH EXAMPLES
+.TP
+Default output, 1 second updates,
+# 
+.B topsyscall
+.TP
+Print every 5 seconds,
+#
+.B topsyscall
+5
+.TP
+Print a scrolling output,
+#
+.B topsyscall
+\-C
+.PP
+.SH FIELDS
+.TP
+load avg
+load averages, see uptime(1)
+.TP
+syscalls
+total syscalls in this interval
+.TP
+syscalls/s
+syscalls per second
+.TP
+SYSCALL
+system call name
+.TP
+COUNT
+total syscalls in this interval
+.TP
+COUNT/s
+syscalls per second
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+topsyscall will run until Ctrl\-C is hit, or the specified
+interval is reached.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), prstat(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsysproc.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsysproc.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/topsysproc.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,75 @@
+.TH topsysproc 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+topsysproc \- top syscalls by process name. Uses DTrace.
+.SH SYNOPSIS
+.B topsysproc
+[-Cs] [interval [count]]
+.SH DESCRIPTION
+This program continually prints a report of the number of system calls
+by process name, and refreshes the display every 1 second or as specified
+at the command line. Similar data can be fetched with "prstat -m".
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses the hp_avenrun kernel symbol.
+.SH OPTIONS
+.TP
+\-C
+don't clear the screen
+.TP
+\-s
+print per second values
+.PP
+.SH EXAMPLES
+.TP
+Default output, 1 second updates,
+# 
+.B topsysproc
+.TP
+Print every 5 seconds,
+#
+.B topsysproc
+5
+.TP
+Print a scrolling output,
+#
+.B topsysproc
+\-C
+.PP
+.SH FIELDS
+.TP
+load avg
+load averages, see uptime(1)
+.TP
+syscalls
+total syscalls in this interval
+.TP
+syscalls/s
+syscalls per second
+.TP
+PROCESS
+process name
+.TP
+COUNT
+total syscalls in this interval
+.TP
+COUNT/s
+syscalls per second
+.PP
+.SH NOTES
+There may be several PIDs with the same process name.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+topsysproc will run until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), prstat(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/udpstat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/udpstat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/udpstat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+.TH udpstat.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+udpstat.d \- print UDP statistics. Uses DTrace.
+.SH SYNOPSIS
+.B udpstat.d
+.SH DESCRIPTION
+udpstat.d is a DTrace program to print UDP statistics every second,
+retrieved from the MIB provider.
+
+The UDP statistics are documented in the mib2_tcp struct
+in /usr/include/inet/mib2.h; and also in the mib provider
+chapter of the DTrace Guide, found at 
+http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the mib provider.
+.SH EXAMPLES
+.TP
+Print statistics every second,
+# 
+.B udpstat.d
+.PP
+.SH FIELDS
+.TP
+UDP_out
+UDP datagrams sent
+.TP
+UDP_outErr
+UDP datagrams errored on send
+.TP
+UDP_in
+UDP datagrams received
+.TP
+UDP_inErr
+UDP datagrams undeliverable
+.TP
+UDP_noPort
+UDP datagrams received to closed ports
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+udpstat.d will run forever until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/uname-a.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/uname-a.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/uname-a.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,35 @@
+.TH uname\-a.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+uname\-a.d \- "uname \-a" demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B uname\-a.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching the "uname -a" info
+from a DTrace script, which turns out to be all kernel variables.
+This is intended as a starting point for other DTrace scripts, by
+beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH EXAMPLES
+.TP
+Print system call counts every second,
+# 
+.B uname\-c.d
+.PP
+.SH FIELDS
+See uname(1) manpage for documentation.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+uname(1), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,50 @@
+.TH vmbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+vmbypid.d \- virtual memory stats by PID. Uses DTrace.
+.SH SYNOPSIS
+.B vmbypid.d
+.SH DESCRIPTION
+vmbypid.d is a simple DTrace program to print Virtual Memory
+statistics by process.
+
+The virtual memory statistics are documented in the cpu_vminfo struct
+in the /usr/include/sys/sysinfo.h file; and also in the vminfo provider
+chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the vminfo provider.
+.SH EXAMPLES
+.TP
+Sample until Ctrl\-C is hit then print report,
+# 
+.B vmbypid.d
+.PP
+.SH FIELDS
+.TP
+EXEC
+process name
+.TP
+PID
+process ID
+.TP
+VM
+Virtual Memory statistic
+.TP
+VALUE
+Value by which statistic was incremented
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vmbypid.d will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), vmstat(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat-p.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat-p.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat-p.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,85 @@
+.TH vmstat-p.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+vmstat-p.d \- vmstat -p demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B vmstat-p.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching similar data as vmstat
+from DTrace. This program is intended as a starting point for other
+DTrace scripts, by beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B vmstat-p.d
+.PP
+.SH FIELDS
+.TP
+swap
+virtual memory free, Kbytes
+.TP
+free
+free RAM, Kbytes
+.TP
+re
+page reclaims, Kbytes
+.TP
+mf
+minor faults, Kbytes
+.TP
+sr
+scan rate, pages
+.TP
+epi
+executable page ins, Kbytes
+.TP
+epo
+executable page outs, Kbytes
+.TP
+epf
+executable frees, Kbytes
+.TP
+api
+anonymous page ins, Kbytes
+.TP
+apo
+anonymous page outs, Kbytes
+.TP
+apf
+anonymous frees, Kbytes
+.TP
+fpi
+filesystem page ins, Kbytes
+.TP
+fpo
+filesystem page outs, Kbytes
+.TP
+fpf
+filesystem frees, Kbytes
+.PP
+.SH NOTES
+Most of the statistics are in units of kilobytes, unlike the
+original vmstat command which sometimes uses page counts.
+
+As this program does not use Kstat, there is no summary since boot line.
+
+Free RAM is both free free + cache free.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vmstat-p.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/vmstat.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,79 @@
+.TH vmstat.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+vmstat.d \- vmstat demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B vmstat.d
+.SH DESCRIPTION
+This has been written to demonstrate fetching the same data as vmstat
+from DTrace. This program is intended as a starting point for other
+DTrace scripts, by beginning with familiar statistics.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - uses various kernel symbols.
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B vmstat.d
+.PP
+.SH FIELDS
+.TP
+w
+swapped out light weight processes
+.TP
+swap
+virtual memory free, Kbytes
+.TP
+free
+free RAM, Kbytes
+.TP
+re
+page reclaims, Kbytes
+.TP
+mf
+minor faults, Kbytes
+.TP
+pi
+page ins, Kbytes
+.TP
+po
+page outs, Kbytes
+.TP
+fr
+pages freed, Kbytes
+.TP
+sr
+scan rate, pages
+.TP
+in
+interrupts, number
+.TP
+sy
+system calls, number
+.TP
+cs
+context switches, number
+.PP
+.SH NOTES
+Most of the statistics are in units of kilobytes, unlike the
+original vmstat command which sometimes uses page counts.
+
+As this program does not use Kstat, there is no summary since boot line.
+
+Free RAM is both free free + cache free.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vmstat.d will run until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/vopstat.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/vopstat.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/vopstat.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,77 @@
+.TH vopstat 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+vopstat \- vnode interface statistics. Uses DTrace.
+.SH SYNOPSIS
+.B vopstat [\-t] [/mountname]
+.SH DESCRIPTION
+This will either produce summary reports of vnode statistics, or
+trace activity.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH OPTIONS
+.TP
+\-t
+trace activity as it occurs
+.TP
+/mountname
+examine this FS only
+.PP
+.SH EXAMPLES
+.TP
+default output, summary each 5 secs,
+# 
+.B vopstat
+.TP
+only examine /var,
+#
+.B vopstat
+/var
+.TP
+trace activity to /var,
+#
+.B vopstat
+\-t /var
+.PP
+.SH FIELDS
+.TP
+Count
+number of calls
+.TP
+mSeconds
+total of elapsed times
+.TP
+Event
+vop call name
+.TP
+Device
+device instance name
+.TP
+Path
+full pathname to file
+.TP
+RW
+Read or Write
+.TP
+Size
+size in bytes, if available
+.TP
+Offset
+offset in bytes, if available
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+vopstat will sample until Ctrl\-C is hit. 
+.SH AUTHOR
+Richard McDougall
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/weblatency.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/weblatency.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/weblatency.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+.TH weblatency.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+weblatency.d \- website latency statistics. Uses DTrace.
+.SH SYNOPSIS
+.B weblatency.d
+.SH DESCRIPTION
+This prints statistics for hostnames that browers have set GET requests 
+for, in particular latency by hostname.
+
+The latency measured is from the browser sending the GET
+request to when the browser begins to recieve the response. It
+is an overall response time for the client, and encompasses
+connection speed delays, DNS lookups, proxy delays, and web server
+response time.
+
+This is written as an experimental tool, and may not work at all with
+your browser.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - depends on browser implementation.
+.SH EXAMPLES
+.TP
+Print report after Ctrl-C is hit,
+# 
+.B weblatency.d
+.PP
+.SH FIELDS
+.TP
+HOST
+hostname from URL
+.TP
+NUM
+number of GETs
+.TP
+AVGTIME(ms)
+Average time for response, ms
+.TP
+MAXTIME(ms)
+Maximum time for response, ms
+.PP
+.SH NOTES
+See the source code for the "BROWSER" variable, which sets the browser
+to trace (currently set to "mozilla-bin").
+.PP
+.SH IDEA
+Bryan Cantrill (who wrote an elegant version for Sol 10 update 1)
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+weblatency.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/whatexec.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/whatexec.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/whatexec.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+.TH whatexec.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+whatexec.d \- Examine the type of files exec'd. Uses DTrace.
+.SH SYNOPSIS
+.B whatexec.d
+.SH DESCRIPTION
+This prints the first four chacacters of files that are executed.
+This traces the kernel function findexec_by_hdr(), which checks for
+a known magic number in the file's header.
+
+The idea came from a demo I heard about from the UK, where a
+"blue screen of death" was displayed for "MZ" files (although I
+haven't seen the script or the demo).
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - this script uses fbt provider probes which may change for
+future updates of the OS, invalidating this script. Please read
+Docs/Notes/ALLfbt_notes.txt for further details about these fbt scripts.
+.SH EXAMPLES
+.TP
+Trace execs as they occur,
+# 
+.B whatexec.d
+.PP
+.SH FIELDS
+.TP
+PEXEC
+parent command name
+.TP
+EXEC
+pathname to file exec'd
+.TP
+OK
+is type runnable, Y/N
+.TP
+TYPE
+first four characters from file
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+whatexec.d will trace until Ctrl\-C is hit. 
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/woof.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/woof.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/woof.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH woof.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+woof.d \- Bark for new processes. Needs /dev/audio. Uses DTrace.
+.SH SYNOPSIS
+.B woof.d &
+.SH DESCRIPTION
+This is an audio alert daemon for process creation. It is a virtual dog which
+barks when it sees new processes. If many processes are being created
+quickly, it will bark a lot (and become a nuisance - not just the noise, 
+but also from consuming too much CPU).
+
+This exists in the DTraceToolkit more for entertainment than 
+practicality.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the proc provider, /usr/bin/audioplay, and bark.au.
+.SH EXAMPLES
+.TP
+Run the dog,
+# 
+.B woof.d &
+.TP
+Hear the dog,
+$ find /etc -type f -exec grep localhost {} +
+.TP
+Drive the dog crazy,
+$ find /etc -type f -exec grep localhost {} \\;
+.PP
+.SH NOTES
+Beware of the dog!
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+woof.d will exit on Ctrl-C.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+sdtaudiocontrol(1), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/wpm.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/wpm.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/wpm.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,34 @@
+.TH wpm.d 1m   "$Date:: 2007-09-12 #$" "USER COMMANDS"
+.SH NAME
+wpm.d - Measure words per minute of typing.
+.SH SYNOPSIS
+.B wpm.d
+commandname
+eg,
+wpm.d bash
+wpm.d vim
+.SH DESCRIPTION
+This script assumes that keystrokes arrive one at a time on STDIN. This
+isn't the case for all processes that read keyboard input (eg, sh).
+.SH OS
+Solaris
+.SH STABILITY
+stable - Written in DTrace (Solaris 10 3/05).
+.SH EXAMPLES
+.TP
+Default output,
+# 
+.B wpm.d
+.PP
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+wpm.d will run until Ctrl-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[CA, USA]
+.SH SEE ALSO
+dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/writebytes.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/writebytes.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/writebytes.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,47 @@
+.TH writebytes.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+writebytes.d \- write bytes by process name. Uses DTrace.
+.SH SYNOPSIS
+.B writebytes.d
+.SH DESCRIPTION
+writebytes.d is a DTrace OneLiner to a report of the number of 
+bytes write by process name.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B writebytes.d
+.PP
+.SH FIELDS
+.TP
+first field
+This is the process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+second field
+This is the number of bytes write.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+writebytes.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/writedist.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/writedist.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/writedist.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+.TH writedist.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+writedist.d \- write distrib. by process name. Uses DTrace.
+.SH SYNOPSIS
+.B writedist.d
+.SH DESCRIPTION
+writedist.d is a DTrace OneLiner to a report the write size and
+number of occurrences as a frequency distribution by process name.
+
+This can be useful to identify the behaviour of processes
+that are doing writes. Are they using many small writes, or 
+fewer large writes.
+
+Docs/oneliners.txt and Docs/Examples/oneliners_examples.txt
+in the DTraceToolkit contain this as a oneliner that can be cut-n-paste
+to run.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B writedist.d
+.PP
+.SH FIELDS
+.TP
+process name
+The process name. There may be several PIDs that have the 
+same process name, for example with numerous instances of "bash". The
+value reported will be the sum of them all.
+.TP
+value
+The size in bytes
+.TP
+count
+The number of occurrences that were at least this size 
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+writedist.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+dtrace(1M), truss(1)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/xcallsbypid.d.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/xcallsbypid.d.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/xcallsbypid.d.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+.TH xcallsbypid.d 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+xcallsbypid.d \- CPU cross calls by PID. Uses DTrace.
+.SH SYNOPSIS
+.B xcallsbypid.d
+.SH DESCRIPTION
+xcallsbypid.d reports the number of CPU cross calls by process name
+and process ID. Cross calls occur when a CPU requests another CPU to
+do work on it's behalf. A great number of these can be a burden
+on the system.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the sysinfo provider.
+.SH EXAMPLES
+.TP
+This samples until Ctrl\-C is hit.
+# 
+.B xcallsbypid.d
+.PP
+.SH FIELDS
+.TP
+PID
+process ID
+.TP
+CMD
+process name
+.TP
+XCALLS
+number cross calls
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+xcallsbypid.d will sample until Ctrl\-C is hit.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+mpstat(1m), dtrace(1M)
+

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/xvmstat.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/xvmstat.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/xvmstat.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,104 @@
+.TH xvmstat 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+xvmstat \- extended vmstat demo in DTrace. Uses DTrace.
+.SH SYNOPSIS
+.B xvmstat
+[interval [count]]
+.SH DESCRIPTION
+This has been written to demonstrate fetching similar data as vmstat
+from DTrace, with a few extra fields.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+unstable - needs various kernel symbols.
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B xvmstat
+.TP
+Print every 5 seconds, 6 times,
+#
+.B xvmstat
+5 6
+.PP
+.SH FIELDS
+.TP
+w
+swapped out LWPs, number
+.TP
+swap
+virtual memory free, Mb
+.TP
+free
+free RAM, Mb
+.TP
+re
+page reclaims, pages
+.TP
+maj
+major faults, pages
+.TP
+mf
+minor faults, pages
+.TP
+cow
+copy-on-write faults, pages
+.TP
+pro
+protection faults, pages
+sr
+scan rate, pages
+.TP
+epi
+executable page ins, pages
+.TP
+epo
+executable page outs, pages
+.TP
+epf
+executable frees, pages
+.TP
+api
+anonymous page ins, pages
+.TP
+apo
+anonymous page outs, pages
+.TP
+apf
+anonymous frees, pages
+.TP
+fpi
+filesystem page ins, pages
+.TP
+fpo
+filesystem page outs, pages
+.TP
+fpf
+filesystem frees, pages
+.PP
+.SH NOTES
+Most of the statistics are in units of pages, unlike the
+original vmstat command which sometimes uses kilobytes.
+
+All page values are per second values.
+
+As this program does not use Kstat, there is no summary since boot line.
+
+Free RAM is both free free + cache free.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+xvmstat will run until Ctrl\-C is hit, or until the count argument
+has been satisfied.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Man/man1m/zvmstat.1m
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Man/man1m/zvmstat.1m	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Man/man1m/zvmstat.1m	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+.TH zvmstat 1m  "$Date:: 2007-08-05 #$" "USER COMMANDS"
+.SH NAME
+zvmstat \- print vmstat style info per Zone. Uses DTrace.
+.SH SYNOPSIS
+.B zvmstat
+[\-t] [interval [count]]
+.SH DESCRIPTION
+This program must be run from the global zone as root.
+
+Since this uses DTrace, only the root user or users with the
+dtrace_kernel privilege can run this command.
+.SH OS
+Solaris
+.SH STABILITY
+stable - needs the syscall and vminfo providers.
+.SH OPTIONS
+.TP
+\-t
+Print timestamps, string
+.TP
+interval
+Duration for each sample, seconds. default is 1.
+.TP
+count
+Number of samples. default is 1.
+.PP
+.SH EXAMPLES
+.TP
+Print virtual memory statistics every second,
+# 
+.B zvmstat
+.TP
+Print every 5 seconds, 6 times,
+#
+.B zvmstat
+5 6
+.PP
+.SH FIELDS
+.TP
+ZONE
+zonename
+.TP
+re
+page reclaims, pages
+.TP
+mf
+minor faults, pages
+.TP
+fr
+pages freed, pages
+.TP
+sr
+scan rate, pages
+.TP
+epi
+executable page ins, pages
+.TP
+epo
+executable page outs, pages
+.TP
+epf
+executable frees, pages
+.TP
+api
+anonymous page ins, pages
+.TP
+apo
+anonymous page outs, pages
+.TP
+apf
+anonymous frees, pages
+.TP
+fpi
+filesystem page ins, pages
+.TP
+fpo
+filesystem page outs, pages
+.TP
+fpf
+filesystem frees, pages
+.PP
+.SH NOTES
+Most of the statistics are in units of pages, unlike the
+original vmstat command which sometimes uses kilobytes.
+
+All page values are a total for the sample duration.
+
+As this program does not use Kstat, there is no summary since boot line.
+.PP
+.SH DOCUMENTATION
+See the DTraceToolkit for further documentation under the 
+Docs directory. The DTraceToolkit docs may include full worked
+examples with verbose descriptions explaining the output.
+.SH EXIT
+zvmstat will run until Ctrl\-C is hit, or until the count argument
+has been satisfied.
+.SH AUTHOR
+Brendan Gregg
+[Sydney, Australia]
+.SH SEE ALSO
+vmstat(1M), dtrace(1M)

Added: trunk/cddl/contrib/dtracetoolkit/Mem/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+Mem - Memory based analysis
+
+   These scripts analyse memory and virtual memory related activity.

Added: trunk/cddl/contrib/dtracetoolkit/Mem/anonpgpid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/anonpgpid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/anonpgpid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,75 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * anonpgpid.d - anonymous memory paging info by process on CPU.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * This scripts may help identify which processes are affected by a system
+ * with low memory, which is paging to the physical swap device. A report
+ * of the process on the CPU when paging occured is printed.
+ *
+ * $Id: anonpgpid.d 8 2007-08-06 05:55:26Z brendan $
+ *
+ * USAGE:	anonpgpid.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		CMD		Process name
+ *		D		Direction, Read or Write
+ *		BYTES		Total bytes during sample
+ *
+ * NOTES:
+ *
+ * This program is currently an approximation - often the process when writing
+ * pages to swap will be "pageout" the pageout scanner, or "rcapd" the
+ * resource capping daemon.
+ *
+ * THANKS: James Dickens
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * TODO:
+ *
+ * Track processes accurately. This is a little difficult - anonpgout
+ * occurs asynchronously to the process, and events related to this don't
+ * point back to the process.
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 18-Feb-2006	   "      "	Last update.
+ */
+
+#include <sys/vnode.h>
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+fbt::pageio_setup:entry
+/((args[2]->v_flag & (VISSWAP | VSWAPLIKE)) != 0)/
+{
+	@total[pid, execname, args[3] & B_READ ? "R" : "W"] = sum(arg1);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %1s %s\n", "PID", "CMD", "D", "BYTES");
+	printa("%6d %-16s %1s %@d\n", @total);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/anonpgpid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/minfbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/minfbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/minfbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -s
+/*
+ * minfbypid.d - minor faults by PID.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This program prints a report of minor faults by PID. Minor faults are
+ * an indiction of memory consumption. This script could be used to help
+ * determine which process was consuming the most memory during the sample.
+ *
+ * $Id: minfbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	minfbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		MINFAULTS	number of minor faults
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::as_fault
+{
+	@mem[pid, execname] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+	printa("%6d %-16s %@16d\n", @mem);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/minfbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/minfbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/minfbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/minfbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * minfbyproc.d - minor faults by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: minfbyproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+vminfo:::as_fault { @mem[execname] = sum(arg0); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/minfbyproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pgpginbypid.d - pages paged in by PID.
+ *                 Writen using DTrace (Solaris 10 3/05).
+ *
+ * $Id: pgpginbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	pgpginbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ * 		CMD		process name
+ *		PAGES		number of pages paged in
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::pgpgin
+{
+	@pg[pid, execname] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+	printa("%6d %-16s %@16d\n", @pg);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pgpginbyproc.d - pages paged in by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: pgpginbyproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+vminfo:::pgpgin { @pg[execname] = sum(arg0); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/pgpginbyproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/swapinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/swapinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/swapinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,149 @@
+#!/usr/sbin/dtrace -s
+/*
+ * swapinfo.d - print virtual memory info (swap).
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * Prints swap usage details for RAM and disk based swap.
+ * This script is UNDER CONSTRUCTION, check for newer versions.
+ *
+ * $Id: swapinfo.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       swapinfo.d	(check for newer versions)
+ *
+ * FIELDS:
+ *              RAM Total       Total RAM installed
+ *              RAM Unusable    RAM consumed by the OBP and TSBs
+ *              RAM Kernel      Kernel resident in RAM (and usually locked)
+ *              RAM Locked      Locked memory pages from swap (Anon)
+ *              RAM Used        anon + exec + file pages used
+ *              RAM Free        free memory + page cache free
+ *              Disk Total      Total disk swap configured
+ *              Disk Resv       Disk swap allocated + reserved
+ *              Disk Avail      Disk swap available for reservation
+ *              Swap Total      Total Virtual Memory usable
+ *              Swap Resv       VM allocated + reserved
+ *              Swap Avail      VM available for reservation
+ *              Swap MinFree    VM kept free from reservations
+ *
+ * SEE ALSO: swapinfo - K9Toolkit, http://www.brendangregg.com/k9toolkit.html
+ *           vmstat 1 2; swap -s; echo ::memstat | mdb -k
+ *           RMCmem - The MemTool Package
+ *           RICHPse - The SE Toolkit
+ *           "Clearing up swap space confusion" Unix Insider, Adrian Cockcroft
+ *           "Solaris Internals", Jim Mauro, Richard McDougall
+ *           /usr/include/vm/anon.h, /usr/include/sys/systm.h
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "	  "	Improved disk measurements; changed terms.
+ * 24-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=16k
+
+inline int DEBUG = 0;
+
+dtrace:::BEGIN
+{
+	/* Debug stats */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_phys_resv = `k_anoninfo.ani_phys_resv;
+	this->ani_mem_resv = `k_anoninfo.ani_mem_resv;
+	this->ani_locked = `k_anoninfo.ani_locked_swap;
+	this->availrmem = `availrmem;
+
+	/* RAM stats */
+	this->ram_total = `physinstalled;
+	this->unusable  = `physinstalled - `physmem;
+	this->locked    = `pages_locked;
+	this->ram_used  = `availrmem - `freemem;
+	this->freemem   = `freemem;
+	this->kernel    = `physmem - `pages_locked - `availrmem;
+
+	/* Disk stats */
+	this->disk_total = `k_anoninfo.ani_max;
+	this->disk_resv = `k_anoninfo.ani_phys_resv;
+	this->disk_avail = this->disk_total - this->disk_resv;
+
+	/* Total Swap stats */
+	this->minfree = `swapfs_minfree;
+	this->reserve = `swapfs_reserve;
+	/* this is TOTAL_AVAILABLE_SWAP from /usr/include/vm/anon.h, */
+	this->swap_total = `k_anoninfo.ani_max +
+	    (`availrmem - `swapfs_minfree > 0 ?
+	    `availrmem - `swapfs_minfree : 0);
+	/* this is CURRENT_TOTAL_AVAILABLE_SWAP from /usr/include/vm/anon.h, */
+	this->swap_avail = `k_anoninfo.ani_max - `k_anoninfo.ani_phys_resv +
+	    (`availrmem - `swapfs_minfree > 0 ?
+	    `availrmem - `swapfs_minfree : 0);
+	this->swap_resv = this->swap_total - this->swap_avail;
+
+	/* Convert to Mbytes */
+	this->ani_phys_resv *= `_pagesize;  this->ani_phys_resv /= 1048576;
+	this->ani_mem_resv *= `_pagesize;  this->ani_mem_resv /= 1048576;
+	this->ani_locked *= `_pagesize;  this->ani_locked /= 1048576;
+	this->ani_max	*= `_pagesize;  this->ani_max	/= 1048576;
+	this->availrmem	*= `_pagesize;  this->availrmem	/= 1048576;
+	this->ram_total	*= `_pagesize;  this->ram_total	/= 1048576;
+	this->unusable	*= `_pagesize;  this->unusable	/= 1048576;
+	this->kernel	*= `_pagesize;  this->kernel	/= 1048576;
+	this->locked	*= `_pagesize;  this->locked	/= 1048576;
+	this->ram_used	*= `_pagesize;  this->ram_used	/= 1048576;
+	this->freemem	*= `_pagesize;  this->freemem	/= 1048576;
+	this->disk_total *= `_pagesize; this->disk_total /= 1048576;
+	this->disk_resv	*= `_pagesize;  this->disk_resv	/= 1048576;
+	this->disk_avail *= `_pagesize;  this->disk_avail /= 1048576;
+	this->swap_total *= `_pagesize; this->swap_total /= 1048576;
+	this->swap_avail *= `_pagesize;  this->swap_avail /= 1048576;
+	this->swap_resv	*= `_pagesize;  this->swap_resv	/= 1048576;
+	this->minfree	*= `_pagesize;  this->minfree	/= 1048576;
+	this->reserve	*= `_pagesize;  this->reserve	/= 1048576;
+
+	/* Print debug */
+	DEBUG ? printf("DEBUG   availrmem %5d MB\n", this->availrmem) : 1;
+	DEBUG ? printf("DEBUG     freemem %5d MB\n", this->freemem) : 1;
+	DEBUG ? printf("DEBUG     ani_max %5d MB\n", this->ani_max) : 1;
+	DEBUG ? printf("DEBUG ani_phys_re %5d MB\n", this->ani_phys_resv) : 1;
+	DEBUG ? printf("DEBUG  ani_mem_re %5d MB\n", this->ani_mem_resv) : 1;
+	DEBUG ? printf("DEBUG  ani_locked %5d MB\n", this->ani_locked) : 1;
+	DEBUG ? printf("DEBUG     reserve %5d MB\n", this->reserve) : 1;
+	DEBUG ? printf("\n") : 1;
+
+	/* Print report */
+	printf("RAM  _______Total %5d MB\n", this->ram_total);
+	printf("RAM      Unusable %5d MB\n", this->unusable);
+	printf("RAM        Kernel %5d MB\n", this->kernel);
+	printf("RAM        Locked %5d MB\n", this->locked);
+	printf("RAM          Used %5d MB\n", this->ram_used);
+	printf("RAM          Free %5d MB\n", this->freemem);
+	printf("\n");
+	printf("Disk _______Total %5d MB\n", this->disk_total);
+	printf("Disk         Resv %5d MB\n", this->disk_resv);
+	printf("Disk        Avail %5d MB\n", this->disk_avail);
+	printf("\n");
+	printf("Swap _______Total %5d MB\n", this->swap_total);
+	printf("Swap         Resv %5d MB\n", this->swap_resv);
+	printf("Swap        Avail %5d MB\n", this->swap_avail);
+	printf("Swap    (Minfree) %5d MB\n", this->minfree);
+
+	DEBUG ? printf("\nNow run other commands for confirmation.\n") : 1;
+	! DEBUG ? exit(0) : 1;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/swapinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/vmbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/vmbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/vmbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmbypid.d - print vminfo events by process. DTrace.
+ *
+ * $Id: vmbypid.d 8 2007-08-06 05:55:26Z brendan $
+ *
+ * USAGE:	vmbypid.d
+ *
+ * FIELDS:
+ *		EXEC	Process name
+ *		PID	Process ID
+ * 		VM	Virtual Memory statistic (/usr/include/sys/sysinfo.h)
+ *		VALUE	Value by which statistic was incremented
+ *
+ * The virtual memory statistics are documented in the cpu_vminfo struct
+ * in the /usr/include/sys/sysinfo.h file; and also in the vminfo provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+vminfo:::
+{
+	@VM[execname, pid, probename] = sum(arg0);
+}
+
+dtrace:::END {
+	printf("%16s %8s %22s %8s\n", "EXEC", "PID", "VM", "VALUE");
+	printa("%16s %8d %22s %@8d\n", @VM);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/vmbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/vmstat-p.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/vmstat-p.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/vmstat-p.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,155 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmstat-p.d - vmstat -p demo in DTrace.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as vmstat
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: vmstat-p.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	vmstat-p.d
+ *
+ * FIELDS:
+ *		swap	virtual memory free	Kbytes
+ *		free	free RAM		Kbytes
+ *		re	page reclaims		Kbytes
+ *		mf	minor faults		Kbytes
+ *		sr	scan rate		pages
+ *		epi	executable page ins	Kbytes
+ *		epo	executable page outs	Kbytes
+ *		epf	executable frees	Kbytes
+ *		api	anonymous page ins	Kbytes
+ *		apo	anonymous page outs	Kbytes
+ *		apf	anonymous frees		Kbytes
+ *		fpi	filesystem page ins	Kbytes
+ *		fpo	filesystem page outs	Kbytes
+ *		fpf	filesystem frees	Kbytes
+ *
+ * NOTES:
+ *	Most of the statistics are in units of kilobytes, unlike the
+ *	original vmstat command which sometimes uses page counts.
+ *	As this program does not use Kstat, there is no summary since
+ *	boot line. Free RAM is both free free + cache free.
+ *
+ * SEE ALSO:	vmstat(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 08-Jan-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+	printf("%14s %13s %16s %14s %13s\n",
+	    "memory", "page", "executable", "anonymous", "filesystem");
+	printf("%9s %7s %5s %4s %3s ",
+	    "swap", "free", "re", "mf", "sr");
+	printf("%4s %4s %4s %4s %4s %4s %4s %4s %4s\n",
+	    "epi", "epo", "epf", "api", "apo", "apf", "fpi", "fpo", "fpf");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+vminfo:::pgrec	   { re += arg0; }
+vminfo:::scan	   { sr += arg0; }
+vminfo:::as_fault  { mf += arg0; }
+vminfo:::execpgin  { epi += arg0; }
+vminfo:::execpgout { epo += arg0; }
+vminfo:::execfree  { epf += arg0; }
+vminfo:::anonpgin  { api += arg0; }
+vminfo:::anonpgout { apo += arg0; }
+vminfo:::anonfree  { apf += arg0; }
+vminfo:::fspgin    { fpi += arg0; }
+vminfo:::fspgout   { fpo += arg0; }
+vminfo:::fsfree    { fpf += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Kbytes */
+	epi *= `_pagesize / 1024;
+	epo *= `_pagesize / 1024;
+	epf *= `_pagesize / 1024;
+	api *= `_pagesize / 1024;
+	apo *= `_pagesize / 1024;
+	apf *= `_pagesize / 1024;
+	fpi *= `_pagesize / 1024;
+	fpo *= `_pagesize / 1024;
+	fpf *= `_pagesize / 1024;
+	re  *= `_pagesize / 1024;
+	sr  *= `_pagesize / 1024;
+	mf  *= `_pagesize / 1024;
+	this->swap *= `_pagesize / 1024;
+	this->free *= `_pagesize / 1024;
+
+	/* print line */
+	printf("%9d %7d %5d %4d %3d ",
+	    this->swap, this->free, re, mf, sr);
+	printf("%4d %4d %4d %4d %4d %4d %4d %4d %4d\n",
+	    epi, epo, epf, api, apo, apf, fpi, fpo, fpf);
+
+	/* clear counters */
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/vmstat-p.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/vmstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/vmstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/vmstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,137 @@
+#!/usr/sbin/dtrace -s
+/*
+ * vmstat.d - vmstat demo in DTrace.
+ *            Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching the same data as vmstat
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: vmstat.d 8 2007-08-06 05:55:26Z brendan $
+ *
+ * USAGE:	vmstat.d
+ *
+ * FIELDS:
+ *		w	swapped out LWPs	number
+ *		swap	virtual memory free	Kbytes
+ *		free	free RAM		Kbytes
+ *		re	page reclaims		Kbytes
+ *		mf	minor faults		Kbytes
+ *		pi	page ins		Kbytes
+ *		po	page outs		Kbytes
+ *		fr	pages freed		Kbytes
+ *		sr	scan rate		pages
+ *		in	interrupts		number
+ *		sy	system calls		number
+ *		cs	context switches	number
+ *
+ * NOTES:
+ *  Most of the statistics are in units of kilobytes, unlike the
+ *  original vmstat command which sometimes uses page counts.
+ *  As this program does not use Kstat, there is no summary since boot line.
+ *  Free RAM is both free free + cache free.
+ *
+ * SEE ALSO:	vmstat(1M)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 11-Jun-2005  Brendan Gregg   Created this.
+ * 08-Jan-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/lines++ > SCREEN/
+{
+	printf(" %1s %10s %8s %5s %5s %4s %4s %4s %4s %5s %6s %4s\n",
+	    "w", "swap", "free", "re", "mf", "pi", "po", "fr", "sr",
+	    "in", "sy", "cs");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+vminfo:::pgpgin   { pi += arg0; }
+vminfo:::pgpgout  { po += arg0; }
+vminfo:::pgrec    { re += arg0; }
+vminfo:::scan	  { sr += arg0; }
+vminfo:::as_fault { mf += arg0; }
+vminfo:::dfree    { fr += arg0; }
+
+syscall:::entry		{ sy++; }
+sdt:::interrupt-start	{ in++; }
+sched::resume:on-cpu	{ cs++; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Kbytes */
+	pi *= `_pagesize / 1024;
+	po *= `_pagesize / 1024;
+	re *= `_pagesize / 1024;
+	sr *= `_pagesize / 1024;
+	mf *= `_pagesize / 1024;
+	fr *= `_pagesize / 1024;
+	this->swap *= `_pagesize / 1024;
+	this->free *= `_pagesize / 1024;
+
+	/* print line */
+	printf(" %1d %10d %8d %5d %5d %4d %4d %4d %4d %5d %6d %4d\n",
+	    this->w, this->swap, this->free, re, mf, pi, po, fr, sr,
+	    in, sy, cs);
+
+	/* clear counters */
+	pi = 0; po = 0; re = 0; sr = 0; mf = 0; fr = 0;
+	sy = 0; in = 0; cs = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Mem/vmstat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Mem/xvmstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Mem/xvmstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Mem/xvmstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,217 @@
+#!/usr/bin/sh
+#
+# xvmstat - extended vmstat demo in DTrace.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This has been written to demonstrate fetching similar data as vmstat
+# from DTrace, with a few extra fields.
+#
+# $Id: xvmstat 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	xvmstat [interval [count]]
+#
+# FIELDS: 
+#		w	swapped out LWPs	number
+#		swap	virtual memory free	Mbytes
+#		free	free RAM		Mbytes
+#		re	page reclaims		pages/sec
+#		maj	major faults		pages/sec
+#		mf	minor faults		pages/sec
+#		cow	copy-on-write faults	pages/sec
+#		pro	protection faults	pages/sec
+#		sr	scan rate		pages/sec
+#		epi	executable page ins	pages/sec
+#		epo	executable page outs	pages/sec
+#		epf	executable frees	pages/sec
+#		api	anonymous page ins	pages/sec
+#		apo	anonymous page outs	pages/sec
+#		apf	anonymous frees		pages/sec
+#		fpi	filesystem page ins	pages/sec
+#		fpo	filesystem page outs	pages/sec
+#		fpf	filesystem frees	pages/sec
+#
+# NOTES: 
+# - Most of the statistics are in units of pages, unlike the
+#   original vmstat command which sometimes uses kilobytes. 
+# - As this program does not use Kstat, there is no summary since boot line.
+# - Free RAM is both free free + cache free.
+#
+# SEE ALSO:	vmstat(1M)
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 12-Jun-2005	Brendan Gregg	Created this.
+# 01-Mar-2006	   "      "	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default values
+interval=1; count=-1
+
+### check arguments
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END >&2
+	USAGE: xvmstat [interval [count]]
+	       xvmstat          # 1 second samples, infinite
+	  eg,
+	       xvmstat 1        # print every 1 second
+	       xvmstat 5 6      # print every 5 seconds, 6 times
+	END
+	exit 1
+fi
+
+### argument logic
+if [ "$1" -gt 0 ]; then
+        interval=$1; count=-1; shift
+fi
+if [ "$1" -gt 0 ]; then
+        count=$1; shift
+fi
+if [ $interval -eq 0 ]; then
+	interval=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN = 21;
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	re = 0; sr = 0; mf = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+	lines = SCREEN + 1;
+	counts = COUNTER;
+	secs = INTERVAL;
+	first = 1;
+ }
+
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ profile:::tick-1sec
+ /first || (secs == 0 && lines > SCREEN)/
+ {
+	printf("%2s %6s %5s %5s %3s %4s %3s %3s %3s ",
+	    "w", "swap", "free", "re", "maj", "mf", "cow", "pro", "sr");
+	printf("%3s %3s %3s %3s %3s %3s %3s %3s %3s\n",
+	    "epi", "epo", "epf", "api", "apo", "apf", "fpi", "fpo", "fpf");
+	lines = 0;
+	first = 0;
+ }
+
+ /*
+  * Probe events
+  */
+ vminfo:::pgrec      { re += arg0; }
+ vminfo:::scan       { sr += arg0; }
+ vminfo:::as_fault   { mf += arg0; }
+ vminfo:::execpgin   { epi += arg0; }
+ vminfo:::execpgout  { epo += arg0; }
+ vminfo:::execfree   { epf += arg0; }
+ vminfo:::anonpgin   { api += arg0; }
+ vminfo:::anonpgout  { apo += arg0; }
+ vminfo:::anonfree   { apf += arg0; }
+ vminfo:::fspgin     { fpi += arg0; }
+ vminfo:::fspgout    { fpo += arg0; }
+ vminfo:::fsfree     { fpf += arg0; }
+ vminfo:::maj_fault  { maj += arg0; }
+ vminfo:::cow_fault  { cow += arg0; }
+ vminfo:::prot_fault { pro += arg0; }
+
+ /* 
+  * Print output line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch free mem */
+	this->free = `freemem;
+
+	/*
+	 * fetch free swap
+	 *
+	 * free swap is described in /usr/include/vm/anon.h as,
+	 * MAX(ani_max - ani_resv, 0) + (availrmem - swapfs_minfree)
+	 */
+	this->ani_max = `k_anoninfo.ani_max;
+	this->ani_resv = `k_anoninfo.ani_phys_resv + `k_anoninfo.ani_mem_resv;
+	this->swap = (this->ani_max - this->ani_resv > 0 ?
+	    this->ani_max - this->ani_resv : 0) + `availrmem - `swapfs_minfree;
+
+	/* fetch w */
+	this->w = `nswapped;
+
+	/* convert to Mbytes */
+	this->swap *= `_pagesize; this->swap /= 1048576;
+	this->free *= `_pagesize; this->free /= 1048576;
+
+	/* convert to per second values */
+	re  /= INTERVAL; maj /= INTERVAL; mf  /= INTERVAL;
+	cow /= INTERVAL; pro /= INTERVAL; sr  /= INTERVAL;
+	epi /= INTERVAL; epo /= INTERVAL; epf /= INTERVAL;
+	api /= INTERVAL; apo /= INTERVAL; apf /= INTERVAL;
+	fpi /= INTERVAL; fpo /= INTERVAL; fpf /= INTERVAL;
+
+	/* print line */
+	printf("%2d %6d %5d %5d %3d %4d %3d %3d %3d ",
+	    this->w, this->swap, this->free, re, maj, mf, cow, pro, sr);
+	printf("%3d %3d %3d %3d %3d %3d %3d %3d %3d\n",
+	    epi, epo, epf, api, apo, apf, fpi, fpo, fpf);
+
+	/* clear counters */
+	re = 0; sr = 0; mf = 0; maj = 0; cow = 0; pro = 0;
+	epi = 0; epo = 0; epf = 0; api = 0; apo = 0; apf = 0;
+	fpi = 0; fpo = 0; fpf = 0;
+
+	/* process counts */
+	secs = INTERVAL;
+	counts--;
+	lines++;
+ }
+
+ /*
+  * End
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Misc/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Misc/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Misc/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,5 @@
+Extra - Extra DTrace scripts
+
+   These are scripts that fall into no other category. They probably aren't
+   very useful, and are here as a particular coding example rather than
+   a useful tool.

Added: trunk/cddl/contrib/dtracetoolkit/Misc/guess.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Misc/guess.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Misc/guess.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -wqs
+/*
+ * guess.d - guessing game in D (DTrace)
+ *
+ * $Id: guess.d 32 2007-09-15 05:08:49Z brendan $
+ *
+ * USAGE: guess.d
+ *
+ * SEE: http://www.brendangregg.com/guessinggame.html
+ *
+ * This is written to demonstrate this language versus the same program
+ * written in other languages.
+ *
+ * 11-May-2005	Brendan Gregg	Created this.
+ */
+
+inline string scorefile = "highscores_d";
+
+dtrace:::BEGIN
+{
+	printf("guess.d - Guess a number between 1 and 100\n\n");
+	num = 1;
+	state = 1;
+
+	/* Generate random number */
+	answer = (rand() % 100) + 1;
+	answer = answer > 0 ? answer : - answer;
+}
+
+syscall::write:entry
+/state == 1 && pid == $pid/
+{
+	state = 2;
+	printf("Enter guess %d: ", num);
+	system("read guess");
+	pos = 0;
+}
+
+syscall::read:entry
+/state == 2 && ppid == $pid && arg0 == 3/
+{
+	self->inguess = 1;
+	self->buf = arg1;
+}
+
+syscall::read:return
+/self->inguess/
+{
+	key = copyin(self->buf, arg0);
+	keys[pos] = *(char *)key;
+	self->buf = 0;
+	pos++;
+}
+
+syscall::read:return
+/self->inguess && keys[pos-1] == '\n'/
+{
+	pos -= 2;
+	fac = 1;
+	guess = fac * (keys[pos] - '0');
+	pos--;
+	fac *= 10;
+	guess = pos >= 0 ? guess + fac * (keys[pos] - '0') : guess;
+	pos--;
+	fac *= 10;
+	guess = pos >= 0 ? guess + fac * (keys[pos] - '0') : guess;
+	self->doneguess = 1;
+}
+
+syscall::read:return
+/self->inguess/
+{
+	self->inguess = 0;
+}
+
+/* Play game */
+syscall::read:return
+/self->doneguess && guess == answer/
+{
+	printf("Correct! That took %d guesses.\n\n", num);
+	self->doneguess = 0;
+	state = 3;
+	printf("Please enter your name: ");
+	system("/usr/bin/read name");
+}
+
+syscall::read:return
+/self->doneguess && guess != answer/
+{
+	num++;
+
+	printf("%s...\n", guess < answer ? "Higher" : "Lower");
+
+	printf("Enter guess %d: ", num);
+	system("read line");
+	pos = 0;
+}
+
+syscall::read:entry
+/state == 3 && curthread->t_procp->p_parent->p_ppid == $pid && arg0 == 0/
+{
+	self->inname = 1;
+	self->buf = arg1;
+}
+
+/* Save high score */
+syscall::read:return
+/self->inname/
+{
+	self->inname = 0;
+	name = stringof(copyin(self->buf, arg0 - 1));
+	system("echo %s %d >> %s", name, num, scorefile);
+
+	/* Print high scores */
+	printf("\nPrevious high scores,\n");
+	system("cat %s", scorefile);
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Misc/guess.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Misc/woof.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Misc/woof.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Misc/woof.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -s
+/*
+ * woof.d - Bark whenever new processes appear. Needs /dev/audio.
+ *          Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: woof.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       woof.d &
+ *
+ * SEE ALSO:    /usr/dt/bin/sdtaudiocontrol     # to set volume
+ *
+ * COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-Aug-2006	Brendan Gregg	Created this.
+ * 14-Aug-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option destructive
+#pragma D option switchrate=10hz
+
+inline int SCREEN_OUTPUT = 0;	/* Set to 1 for screen output */
+
+/* barks prevents woof.d from barking too much (up to 20 barks/second) */
+int barks;
+
+dtrace:::BEGIN
+{
+	SCREEN_OUTPUT ? trace("Beware of the dog!\n") : 1;
+}
+
+/*
+ * Call the shell to run a background audioplay command (cat > /dev/audio
+ * doesn't always work). One problem this creates is a feedback loop,
+ * where we bark at our own barks, or at other dogs barks; entertaining
+ * as this is, it can really slog the system and has been avoided by
+ * checking our ancestory.
+ */
+proc:::exec-success
+/!progenyof($pid) && barks++ < 2/
+{
+	SCREEN_OUTPUT ? trace("Woof! ") : 1;
+	system("audioplay /usr/share/audio/samples/au/bark.au &");
+}
+
+profile:::tick-10hz
+{
+	barks = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Misc/woof.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Misc/wpm.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Misc/wpm.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Misc/wpm.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,143 @@
+#!/usr/sbin/dtrace -s
+/*
+ * wpm.d - Measure words per minute of typing.
+ *         Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: wpm.d 52 2007-09-24 04:28:01Z brendan $
+ *
+ * USAGE:       wpm.d commandname
+ *   eg,
+ *		wpm.d bash
+ *		wpm.d vim
+ *
+ * This script assumes that keystrokes arrive one at a time on STDIN. This
+ * isn't the case for all processes that read keyboard input (eg, sh).
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 05-Aug-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+#pragma D option defaultargs
+
+inline int STDIN = 0;
+
+enum tracing_state {
+	BEGIN,
+	TRACING
+};
+
+dtrace:::BEGIN
+/$$1 == ""/
+{
+	trace("USAGE: wpm.d commandname\n");
+	trace("  eg,\n");
+	trace("       wpm.d bash\n");
+	trace("       wpm.d vim\n");
+	exit(1);
+}
+
+dtrace:::BEGIN
+{
+	state = BEGIN;
+	keys = 0;
+	words = 0;
+	wordsize = 0;
+	countdown = 5;
+	last = 0;
+	printf("Measuring will start in : %2d seconds", countdown);
+}
+
+profile:::tick-1sec
+/--countdown >= 0/
+{
+	printf("\b\b\b\b\b\b\b\b\b\b%2d seconds", countdown);
+}
+
+profile:::tick-1sec
+/state == BEGIN && countdown == -1/
+{
+	state = TRACING;
+	countdown = 60;
+	printf("\nMeasuring will stop in  : %2d seconds", countdown);
+}
+
+syscall::read:entry
+/state == TRACING && execname == $$1 && arg0 == STDIN/
+{
+	self->buf = arg1;
+}
+
+syscall::read:return
+/self->buf && last/
+{
+	this->elapsed = (timestamp - last) / 1000000;
+	@dist = quantize(this->elapsed);
+	@avg = avg(this->elapsed);
+	@min = min(this->elapsed);
+	@max = max(this->elapsed);
+}
+
+syscall::read:return
+/self->buf/
+{
+	keys++;
+	wordsize++;
+	this->key = stringof(copyin(self->buf, arg0));
+	last = timestamp;
+}
+
+syscall::read:return
+/self->buf && (this->key == " " || this->key == "\n" || this->key == "\r") &&
+    wordsize == 1/
+{
+	/* recurring space */
+	wordsize = 0;
+	self->buf = 0;
+}
+
+syscall::read:return
+/self->buf && (this->key == " " || this->key == "\n" || this->key == "\r")/
+{
+	words++;
+	@sizes = lquantize(wordsize - 1, 0, 32, 1);
+	wordsize = 0;
+}
+
+syscall::read:return
+/self->buf/
+{
+	self->buf = 0;
+}
+
+profile:::tick-1sec
+/state == TRACING && countdown == -1/
+{
+	printf("\n\nCharacters typed : %d\n", keys);
+	printf("Words per minute : %d\n\n", words);
+
+	printa("Minimum keystroke latency : %@d ms\n", @min);
+	printa("Average keystroke latency : %@d ms\n", @avg);
+	printa("Maximum keystroke latency : %@d ms\n\n", @max);
+
+	printa("Word size distribution (letters),\n%@d\n", @sizes);
+	printa("Keystroke latency distribution (ms),\n%@d\n", @dist);
+
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Misc/wpm.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Net/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,4 @@
+Net - Network based analysis
+
+   These scripts analyse activity of the network interfaces, the TCP/IP
+   stack, socket activity, etc.

Added: trunk/cddl/contrib/dtracetoolkit/Net/connections
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/connections	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/connections	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,178 @@
+#!/usr/bin/ksh
+#
+# connections - print inbound TCP connections by process.
+#               Written in DTrace (Solaris 10 3/05).
+#
+# This displays the PID and command name of the processes accepting 
+# connections, along with the source IP address and destination port number.
+#
+# $Id: connections 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	connections [-htvZ]
+#
+#		-t		# print timestamps, us
+#		-v		# print timestamps, string
+#		-Z		# print zonename
+#	eg,
+#		connections -v	# snoop connections with times
+#
+# FIELDS:
+#		UID		user ID of the server
+#		PID		process ID for the server
+#		CMD		server command name
+#		TIME		timestamp, us
+#		TIMESTR		timestamp, string
+#		PORT		server port
+#		IP_SOURCE	source IP of the client, written in IPv4 style
+#		ZONE		zonename
+#
+# SEE ALSO:	snoop 'tcp[13:1] = 0x02'	# snoop new connections
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO: IPv6
+#
+# 10-Apr-2004	Brendan Gregg	Created this.
+# 23-May-2004	   "      "  	Fixed issues on SPARC.
+# 08-May-2005	   "      "  	Updated for newer Solaris 10.
+# 17-Jun-2005	   "      "	Rewrote, changed probes, wrapped in sh.
+# 04-Dec-2005	   "	  "	Changed tcp_accept_finish -> sotpi_accept
+# 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006	   "	  "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_time=0; opt_timestr=0; opt_zone=0
+
+### Process options
+while getopts htvZ name
+do
+	case $name in
+	t)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: connections [-htvZ]
+			   -t              # print timestamps, us
+			   -v              # print timestamps, string
+			   -Z              # print zonename
+		  eg,
+		       connections -v      # snoop connections with times
+		END
+		exit 1
+	esac
+done
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -C -s <( print -r '
+#include <sys/file.h>
+#include <sys/types.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* print optional headers */
+        OPT_time    ? printf("%-14s ", "TIME") : 1;
+        OPT_timestr ? printf("%-20s ", "TIMESTR") : 1;
+	OPT_zone    ? printf("%-10s ", "ZONE") : 1;
+
+	/* print header */
+	printf("%5s %5s %-12s %4s %5s %s\n",
+	    "UID", "PID", "CMD", "TYPE", "PORT", "IP_SOURCE");
+ }
+
+ /*
+  * TCP Process inbound connections
+  *
+  * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+  * renamed to SS_DIRECT around build 31.
+  */
+ fbt:sockfs:sotpi_accept:entry
+ /(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+ {
+	self->sop = args[0];
+ }
+
+ fbt:sockfs:sotpi_create:return
+ /self->sop/
+ {
+	self->nsop = (struct sonode *)arg1;
+ }
+
+
+ /*
+  * Probe TCP connections
+  */
+ fbt:sockfs:sotpi_accept:return
+ /self->nsop/
+ {
+	/* fetch connection details */
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	this->connp = (conn_t *)this->tcpp->tcp_connp;
+
+#if defined(_BIG_ENDIAN)
+	this->port0 = this->connp->u_port.tcpu_ports.tcpu_lport;
+#else
+	this->port0 = BSWAP_16(this->connp->u_port.tcpu_ports.tcpu_lport);
+#endif
+	this->rem12 = 
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->rem13 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->rem14 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->rem15 =
+	    (uint8_t)this->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+
+        /* print optional fields */
+        OPT_time    ? printf("%-14d ", timestamp/1000) : 1;
+        OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone    ? printf("%-10s ", zonename) : 1;
+
+	/* print output line */
+	printf("%5d %5d %-12s %4s %5d %d.%d.%d.%d\n",
+	    uid, pid, execname, "tcp", this->port0, 
+	    this->rem12, this->rem13, this->rem14, this->rem15);
+ }
+
+ fbt:sockfs:sotpi_accept:return
+ {
+	self->nsop = 0;
+	self->sop = 0;
+ }
+')
+

Added: trunk/cddl/contrib/dtracetoolkit/Net/icmpstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/icmpstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/icmpstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * icmpstat.d - print ICMP statistics. Uses DTrace.
+ *
+ * This prints ICMP statistics every second, retrieved from the MIB provider.
+ * This is a simple script to demonstrate the ability to trace ICMP events.
+ *
+ * $Id: icmpstat.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	icmpstat.d
+ *
+ * FIELDS:
+ *		STATISTIC		ICMP statistic name
+ *		VALUE			total of statistic during sample
+ *
+ * The above ICMP statistics are documented in the mib2_icmp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Save Data
+ */
+mib:::icmp*
+{
+	@icmp[probename] = sum(arg0);
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%Y,\n\n", walltimestamp);
+	printf("%32s %8s\n", "STATISTIC", "VALUE");
+	printa("%32s %@8d\n", @icmp);
+	printf("\n");
+
+	trunc(@icmp);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Net/icmpstat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,581 @@
+#!/usr/bin/ksh
+#
+# tcpsnoop - snoop TCP network packets by process. 
+#            Written using DTrace (Solaris 10 3/05)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris 10 3/05, since it uses the
+# fbt provider to trace the raw operation of a specific version of the kernel.
+# In the future, a 'stable' network provider should exist which will allow
+# this to be written for that and subsequent versions of the kernel. In the
+# meantime, check for other versions of this script in the /Net directory,
+# and read the Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcpsnoop 69 2007-10-04 13:40:00Z brendan $
+#
+# USAGE:       tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+#
+#		-a             # print all data
+#		-j             # print project ID
+#		-s             # print time, us
+#		-v             # print time, string
+#		-Z             # print zone ID
+#		-n name        # command name to snoop
+#		-p pid         # PID to snoop
+#	eg,
+#		tcpsnoop -v              # human readable timestamps
+#		tcpsnoop -Z              # print zonename
+#		tcpsnoop -n sshd         # snoop sshd traffic only
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		DR      	direction
+#		SIZE    	packet size, bytes
+#		TIME    	timestamp, us
+#		STRTIME    	human readable timestamp, string
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO: snoop -rS
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# TODO: IPv6
+#
+# CODE:
+#  The FILTER syntax matches on packets rather than initial 
+#  connections, so that it can follow inetd connections properly.
+#
+# 09-Jul-2004  Brendan Gregg	Created this.
+# 12-Mar-2005     "      "	Changed probes, size info now printed.
+# 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+# 04-Jul-2005     "      "	Now wrapped in shell, called "tcpsnoop".
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_time=0; opt_timestr=0; filter=0; pname=.
+opt_zone=0; opt_proj=0; opt_pid=0; pid=0
+
+### process options
+while getopts ahjsvZn:p: name
+do
+	case $name in
+	a)      opt_time=1; opt_timestr=1; opt_zone=1; opt_proj=1 ;;
+	n)      opt_name=1; pname=$OPTARG ;;
+	p)      opt_pid=1; pid=$OPTARG ;;
+	j)      opt_proj=1 ;;
+	s)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+		       tcpsnoop                # default output
+		                -a             # print all data
+		                -j             # print project ID
+		                -s             # print start time, us
+		                -v             # print start time, string
+		                -Z             # print zonename
+		                -n name        # command name to snoop
+		                -p pid         # PID to snoop
+		  eg,
+		      tcpsnoop -v              # human readable timestamps
+		      tcpsnoop -Z              # print zonename
+		      tcpsnoop -n sshd         # snoop sshd traffic only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_name    = '$opt_name';
+ inline int OPT_pid     = '$opt_pid';
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+ inline int OPT_proj    = '$opt_proj';
+ inline int PID         = '$pid';
+ inline int FILTER      = '$filter';
+ inline string NAME     = "'$pname'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print optional headers */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+	OPT_zone    ? printf("%4s ", "ZONE") : 1;
+	OPT_proj    ? printf("%4s ", "PROJ") : 1;
+
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT", 
+	    "SIZE", "CMD");
+}
+
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+/FILTER == 0/
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+/FILTER == 0/
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+	self->zoneid = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->dir = "->";
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+}
+
+fbt:ip:tcp_connect:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* this packet occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+}
+
+fbt:sockfs:sotpi_accept:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* these packets occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/(self->ok == 2) && 
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* print optional fields */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+
+	/* print output line */
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+')

Added: trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,424 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * tcpsnoop.d - snoop TCP network packets by process.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This analyses TCP network packets and prints the responsible PID and UID,
+ * plus standard details such as IP address and port. This captures traffic
+ * of newly created TCP connections that were established while this program
+ * was running. It can help identify which processes is causing TCP traffic.
+ *
+ * WARNING: This script may only work on Solaris 10 3/05, since it uses the
+ * fbt provider to trace the raw operation of a specific version of the kernel.
+ * In the future, a 'stable' network provider should exist which will allow
+ * this to be written for that and subsequent versions of the kernel. In the
+ * meantime, check for other versions of this script in the /Net directory,
+ * and read the Notes/ALLfbt_notes.txt for more background on fbt.
+ *
+ * $Id: tcpsnoop.d 69 2007-10-04 13:40:00Z brendan $
+ *
+ * USAGE:       tcpsnoop.d
+ *
+ * FIELDS:
+ *		UID     	user ID
+ *		PID     	process ID
+ *		CMD     	command
+ *		LADDR		local IP address
+ *		RADDR		remote IP address
+ *		LPORT		local port number
+ *		RPORT		remote port number
+ *		DR      	direction
+ *		SIZE    	packet size, bytes
+ *
+ * SEE ALSO: snoop -rS
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * TODO: IPv6
+ *
+ * 09-Jul-2004  Brendan Gregg   Created this.
+ * 12-Mar-2005     "      "	Changed probes, size info now printed.
+ * 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+ * 03-Dec-2005	   "	  "	Fixed tcp_accept_finish bug, now 100% correct
+ *				execname. Thanks Kias Belgaied for expertise.
+ * 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT",
+	    "SIZE", "CMD");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "->";
+	self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+	self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+	/* this packet occured before connp was fully established */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	/* these packets occured before connp was fully established */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/
+{
+	/* print output line */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/*
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,583 @@
+#!/usr/bin/ksh
+#
+# tcpsnoop_snv - snoop TCP network packets by process. 
+#                Written using DTrace (Solaris Nevada)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris Nevada and OpenSolaris
+# of the late 2007 vintage, since it uses the fbt provider to trace the raw
+# operation of a specific version of the kernel. In the future, a 'stable'
+# network provider should exist which will allow this to be written for that
+# and subsequent versions of the kernel. In the meantime, check for other
+# versions of this script in the /Net directory, and read the
+# Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcpsnoop_snv 69 2007-10-04 13:40:00Z brendan $
+#
+# USAGE:       tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+#
+#		-a             # print all data
+#		-j             # print project ID
+#		-s             # print time, us
+#		-v             # print time, string
+#		-Z             # print zone ID
+#		-n name        # command name to snoop
+#		-p pid         # PID to snoop
+#	eg,
+#		tcpsnoop -v              # human readable timestamps
+#		tcpsnoop -Z              # print zonename
+#		tcpsnoop -n sshd         # snoop sshd traffic only
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		DR      	direction
+#		SIZE    	packet size, bytes
+#		TIME    	timestamp, us
+#		STRTIME    	human readable timestamp, string
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO: snoop -rS
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# TODO: IPv6
+#
+# CODE:
+#  The FILTER syntax matches on packets rather than initial 
+#  connections, so that it can follow inetd connections properly.
+#
+# 09-Jul-2004  Brendan Gregg	Created this.
+# 12-Mar-2005     "      "	Changed probes, size info now printed.
+# 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+# 04-Jul-2005     "      "	Now wrapped in shell, called "tcpsnoop".
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+# 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_time=0; opt_timestr=0; filter=0; pname=.
+opt_zone=0; opt_proj=0; opt_pid=0; pid=0
+
+### process options
+while getopts ahjsvZn:p: name
+do
+	case $name in
+	a)      opt_time=1; opt_timestr=1; opt_zone=1; opt_proj=1 ;;
+	n)      opt_name=1; pname=$OPTARG ;;
+	p)      opt_pid=1; pid=$OPTARG ;;
+	j)      opt_proj=1 ;;
+	s)      opt_time=1 ;;
+	v)      opt_timestr=1 ;;
+	Z)      opt_zone=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcpsnoop [-a|hjsvZ] [-n name] [-p pid]
+		       tcpsnoop                # default output
+		                -a             # print all data
+		                -j             # print project ID
+		                -s             # print start time, us
+		                -v             # print start time, string
+		                -Z             # print zonename
+		                -n name        # command name to snoop
+		                -p pid         # PID to snoop
+		  eg,
+		      tcpsnoop -v              # human readable timestamps
+		      tcpsnoop -Z              # print zonename
+		      tcpsnoop -n sshd         # snoop sshd traffic only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_name    = '$opt_name';
+ inline int OPT_pid     = '$opt_pid';
+ inline int OPT_time    = '$opt_time';
+ inline int OPT_timestr = '$opt_timestr';
+ inline int OPT_zone    = '$opt_zone';
+ inline int OPT_proj    = '$opt_proj';
+ inline int PID         = '$pid';
+ inline int FILTER      = '$filter';
+ inline string NAME     = "'$pname'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print optional headers */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+	OPT_zone    ? printf("%4s ", "ZONE") : 1;
+	OPT_proj    ? printf("%4s ", "PROJ") : 1;
+
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT", 
+	    "SIZE", "CMD");
+}
+
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+/FILTER == 0/
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+/FILTER == 0/
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+	self->zoneid = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->dir = "->";
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+}
+
+fbt:ip:tcp_connect:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* this packet occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+}
+
+fbt:sockfs:sotpi_accept:return
+/(self->connp) &&
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* these packets occured before connp was fully established */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/(self->ok == 2) && 
+ ((FILTER == 0) ||
+ (OPT_pid && self->pid == PID) ||
+ (OPT_name && self->name == NAME))/
+{
+	/* print optional fields */
+	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_zone ? printf("%4d ", self->zoneid) : 1;
+	OPT_proj ? printf("%4d ", self->proj) : 1;
+
+	/* print output line */
+        printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+')

Added: trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,426 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * tcpsnoop_snv.d - snoop TCP network packets by process.
+ *                  Written using DTrace (Solaris Nevada)
+ *
+ * This analyses TCP network packets and prints the responsible PID and UID,
+ * plus standard details such as IP address and port. This captures traffic
+ * of newly created TCP connections that were established while this program
+ * was running. It can help identify which processes is causing TCP traffic.
+ *
+ * WARNING: This script may only work on Solaris Nevada and OpenSolaris
+ * of the late 2007 vintage, since it uses the fbt provider to trace the raw
+ * operation of a specific version of the kernel. In the future, a 'stable'
+ * network provider should exist which will allow this to be written for that
+ * and subsequent versions of the kernel. In the meantime, check for other
+ * versions of this script in the /Net directory, and read the
+ * Notes/ALLfbt_notes.txt for more background on fbt.
+ *
+ * $Id: tcpsnoop_snv.d 69 2007-10-04 13:40:00Z brendan $
+ *
+ * USAGE:       tcpsnoop.d
+ *
+ * FIELDS:
+ *		UID     	user ID
+ *		PID     	process ID
+ *		CMD     	command
+ *		LADDR		local IP address
+ *		RADDR		remote IP address
+ *		LPORT		local port number
+ *		RPORT		remote port number
+ *		DR      	direction
+ *		SIZE    	packet size, bytes
+ *
+ * SEE ALSO: snoop -rS
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * TODO: IPv6
+ *
+ * 09-Jul-2004  Brendan Gregg   Created this.
+ * 12-Mar-2005     "      "	Changed probes, size info now printed.
+ * 02-Jul-2005     "      "	Many more probes. Renamed "tcpsnoop.d".
+ * 03-Dec-2005	   "	  "	Fixed tcp_accept_finish bug, now 100% correct
+ *				execname. Thanks Kias Belgaied for expertise.
+ * 20-Apr-2006	   "	  "	Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+ * 20-Apr-2006	   "	  "	Last update.
+ * 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* print main headers */
+	printf("%5s %6s %-15s %5s %2s %-15s %5s %5s %s\n",
+	    "UID", "PID", "LADDR", "LPORT", "DR", "RADDR", "RPORT",
+	    "SIZE", "CMD");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->size = 54;	/* should check trailers */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "->";
+	self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+	self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->dir = "<-";
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	self->dir = "->";
+	/* this packet occured before connp was fully established */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->size = 54;	/* should check trailers */
+	/* these packets occured before connp was fully established */
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "->";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+	self->dir = "<-";
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * Print output
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/
+{
+	/* print output line */
+	printf("%5d %6d %-15s %5d %2s %-15s %5d %5d %s\n",
+	    self->uid, self->pid, self->laddr, self->lport, self->dir,
+	    self->faddr, self->fport, self->size, self->name);
+}
+
+/*
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/*
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->dir = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Net/tcpsnoop_snv.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Net/tcpstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcpstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcpstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -s
+/*
+ * tcpstat.d - print TCP statistics. Uses DTrace.
+ *
+ * This prints TCP statistics every second, retrieved from the MIB provider.
+ *
+ * $Id: tcpstat.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	tcpstat.d
+ *
+ * FIELDS:
+ *		TCP_out		TCP bytes sent
+ *		TCP_outRe	TCP bytes retransmitted
+ *		TCP_in		TCP bytes received
+ *		TCP_inDup	TCP bytes received duplicated
+ *		TCP_inUn	TCP bytes received out of order
+ *
+ * The above TCP statistics are documented in the mib2_tcp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005  Brendan Gregg   Created this.
+ * 15-May-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Declare Globals
+ */
+dtrace:::BEGIN
+{
+	TCP_out = 0; TCP_outRe = 0;
+	TCP_in = 0; TCP_inDup = 0; TCP_inUn = 0;
+	LINES = 20; line = 0;
+}
+
+/*
+ * Print Header
+ */
+profile:::tick-1sec { line--; }
+
+profile:::tick-1sec
+/line <= 0 /
+{
+	printf("%11s %11s %11s %11s %11s\n",
+	    "TCP_out", "TCP_outRe", "TCP_in", "TCP_inDup", "TCP_inUn");
+
+	line = LINES;
+}
+
+/*
+ * Save Data
+ */
+mib:::tcpOutDataBytes		{ TCP_out += arg0;   }
+mib:::tcpRetransBytes		{ TCP_outRe += arg0; }
+mib:::tcpInDataInorderBytes	{ TCP_in += arg0;    }
+mib:::tcpInDataDupBytes		{ TCP_inDup += arg0; }
+mib:::tcpInDataUnorderBytes	{ TCP_inUn += arg0;  }
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%11d %11d %11d %11d %11d\n",
+	    TCP_out, TCP_outRe, TCP_in, TCP_inDup, TCP_inUn);
+
+	/* clear values */
+	TCP_out   = 0;
+	TCP_outRe = 0;
+	TCP_in    = 0;
+	TCP_inDup = 0;
+	TCP_inUn  = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Net/tcpstat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Net/tcptop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcptop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcptop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,579 @@
+#!/usr/bin/ksh
+#
+# tcptop - display top TCP network packets by process. 
+#          Written using DTrace (Solaris 10 3/05)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris 10 3/05, since it uses the
+# fbt provider to trace the raw operation of a specific version of the kernel.
+# In the future, a 'stable' network provider should exist which will allow
+# this to be written for that and subsequent versions of the kernel. In the
+# meantime, check for other versions of this script in the /Net directory,
+# and read the Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcptop 69 2007-10-04 13:40:00Z brendan $
+#
+# USAGE:	tcptop [-Ch] [-j|-Z] [interval [count]]
+#
+#		-C		# don't clear the screen
+#		-j		# print project IDs
+#		-Z		# print zone IDs
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		SIZE    	packet size, bytes
+#		load		1 min load average
+#		TCPin		TCP inbound payload data
+#		TCPout		TCP outbound payload data
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO:	tcpsnoop
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# ToDo: IPv6
+#
+# 05-Jul-2005  Brendan Gregg	Created this.
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_def=1; opt_clear=1; opt_zone=0; opt_proj=0; interval=5; count=-1
+
+### process options
+while getopts ChjZ name
+do
+	case $name in
+	C)      opt_clear=0 ;;
+	j)      opt_proj=1; opt_def=0 ;;
+	Z)      opt_zone=1; opt_def=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcptop [-h] [-j|-Z] [interval [count]]
+		       tcptop                  # default output
+		                -C             # don't clear the screen
+		                -j             # print project ID
+		                -Z             # print zonename
+		  eg,
+		      tcptop                   # default is 5 sec interval
+		      tcptop 2                 # 2 second interval
+		      tcptop -C 1 10           # 10 x 1 sec samples, no clear
+		END
+		exit 1
+	esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+	opt_proj=0
+fi
+if (( opt_clear )); then
+	clearstr=`clear`
+else
+	clearstr=.
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def   = '$opt_def';
+ inline int OPT_zone  = '$opt_zone';
+ inline int OPT_proj  = '$opt_proj';
+ inline int OPT_clear = '$opt_clear';
+ inline int INTERVAL  = '$interval';
+ inline int COUNTER   = '$count';
+ inline string CLEAR  = "'$clearstr'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+	TCP_out = 0;
+	TCP_in = 0;
+
+	printf("Tracing... Please wait.\n");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = (queue_t *)`tcp_g_q; /* ` */
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54 * 2;	/* should check trailers */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+
+	/* this packet occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54 * 3;	/* should check trailers */
+
+	/* these packets occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Save data
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/ 
+{
+	/* save r+w data*/
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+
+/*
+ * TCP Systemwide Stats
+ */
+mib:::tcpOutDataBytes       { TCP_out += args[0]; }
+mib:::tcpRetransBytes       { TCP_out += args[0]; }
+mib:::tcpInDataInorderBytes { TCP_in  += args[0]; }
+mib:::tcpInDataDupBytes     { TCP_in  += args[0]; }
+mib:::tcpInDataUnorderBytes { TCP_in  += args[0]; }
+
+/*
+ * Timer
+ */
+profile:::tick-1sec
+{
+        secs--;
+}
+
+/*
+ * Print Report
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+        /* fetch 1 min load average */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert TCP counters to Kbytes */
+	TCP_out /= 1024;
+	TCP_in  /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+        printf("%Y,  load: %d.%02d,  TCPin: %6d KB,  TCPout: %6d KB\n\n",
+            walltimestamp, this->load1a, this->load1b, TCP_in, TCP_out);
+
+	/* print headers */
+	OPT_def  ? printf(" UID ") : 1;
+	OPT_proj ? printf("PROJ ") : 1;
+	OPT_zone ? printf("ZONE ") : 1;
+        printf("%6s %-15s %5s %-15s %5s %9s %s\n",
+	    "PID", "LADDR", "LPORT", "RADDR", "RPORT", "SIZE", "NAME");
+
+	/* print data */
+        printa("%4d %6d %-15s %5d %-15s %5d %@9d %s\n", @out);
+	printf("\n");
+
+	/* clear data */
+        trunc(@out);
+	TCP_in = 0;
+	TCP_out = 0;
+        secs = INTERVAL;
+        counts--;
+}
+
+/*
+ * End of program
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
+
+/*
+ * Cleanup for Ctrl-C
+ */
+dtrace:::END
+{
+        trunc(@out);
+}
+')

Added: trunk/cddl/contrib/dtracetoolkit/Net/tcptop_snv
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcptop_snv	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcptop_snv	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,581 @@
+#!/usr/bin/ksh
+#
+# tcptop_snv - display top TCP network packets by process. 
+#              Written using DTrace (Solaris Nevada)
+#
+# This analyses TCP network packets and prints the responsible PID and UID,
+# plus standard details such as IP address and port. This captures traffic
+# of newly created TCP connections that were established while this program
+# was running. It can help identify which processes is causing TCP traffic.
+#
+# WARNING: This script may only work on Solaris Nevada and OpenSolaris
+# of the late 2007 vintage, since it uses the fbt provider to trace the raw
+# operation of a specific version of the kernel. In the future, a 'stable'
+# network provider should exist which will allow this to be written for that
+# and subsequent versions of the kernel. In the meantime, check for other
+# versions of this script in the /Net directory, and read the
+# Notes/ALLfbt_notes.txt for more background on fbt.
+#
+# $Id: tcptop_snv 69 2007-10-04 13:40:00Z brendan $
+#
+# USAGE:	tcptop [-Ch] [-j|-Z] [interval [count]]
+#
+#		-C		# don't clear the screen
+#		-j		# print project IDs
+#		-Z		# print zone IDs
+#
+# FIELDS:
+#		UID     	user ID
+#		PID     	process ID
+#		CMD     	command
+#		LADDR		local IP address
+#		RADDR		remote IP address
+#		LPORT		local port number
+#		RPORT		remote port number
+#		SIZE    	packet size, bytes
+#		load		1 min load average
+#		TCPin		TCP inbound payload data
+#		TCPout		TCP outbound payload data
+#		ZONE    	zone ID
+#		PROJ    	project ID
+#
+# SEE ALSO:	tcpsnoop
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# ToDo: IPv6
+#
+# 05-Jul-2005  Brendan Gregg	Created this.
+# 03-Dec-2005	  "	 "	Fixed tcp_accept_finish bug, now 100% correct
+#				execname. Thanks Kias Belgaied for expertise.
+# 20-Apr-2006     "      "      Fixed SS_TCP_FAST_ACCEPT bug in build 31+.
+# 20-Apr-2006     "      "      Last update.
+# 30-Sep-2007	   "	  "	Bumped this for recent OpenSolaris/Nevada.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_def=1; opt_clear=1; opt_zone=0; opt_proj=0; interval=5; count=-1
+
+### process options
+while getopts ChjZ name
+do
+	case $name in
+	C)      opt_clear=0 ;;
+	j)      opt_proj=1; opt_def=0 ;;
+	Z)      opt_zone=1; opt_def=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: tcptop [-h] [-j|-Z] [interval [count]]
+		       tcptop                  # default output
+		                -C             # don't clear the screen
+		                -j             # print project ID
+		                -Z             # print zonename
+		  eg,
+		      tcptop                   # default is 5 sec interval
+		      tcptop 2                 # 2 second interval
+		      tcptop -C 1 10           # 10 x 1 sec samples, no clear
+		END
+		exit 1
+	esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+	opt_proj=0
+fi
+if (( opt_clear )); then
+	clearstr=`clear`
+else
+	clearstr=.
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -Cs <( print -r '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def   = '$opt_def';
+ inline int OPT_zone  = '$opt_zone';
+ inline int OPT_proj  = '$opt_proj';
+ inline int OPT_clear = '$opt_clear';
+ inline int INTERVAL  = '$interval';
+ inline int COUNTER   = '$count';
+ inline string CLEAR  = "'$clearstr'";
+
+#pragma D option quiet
+#pragma D option switchrate=10hz
+
+#include <sys/file.h>
+#include <inet/common.h>
+#include <sys/byteorder.h>
+#include <sys/socket.h>
+#include <sys/socketvar.h>
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	/* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+	TCP_out = 0;
+	TCP_in = 0;
+
+	printf("Tracing... Please wait.\n");
+}
+
+/*
+ * TCP Process inbound connections
+ *
+ * 0x00200000 has been hardcoded. It was SS_TCP_FAST_ACCEPT, but was
+ * renamed to SS_DIRECT around build 31.
+ */
+fbt:sockfs:sotpi_accept:entry
+/(arg1 & FREAD) && (arg1 & FWRITE) && (args[0]->so_state & 0x00200000)/
+{
+	self->sop = args[0];
+}
+
+fbt:sockfs:sotpi_create:return
+/self->sop/
+{
+	self->nsop = (struct sonode *)arg1;
+}
+
+fbt:sockfs:sotpi_accept:return
+/self->nsop/
+{
+	this->tcpp = (tcp_t *)self->nsop->so_priv;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+}
+
+fbt:sockfs:sotpi_accept:return
+{
+	self->nsop = 0;
+	self->sop = 0;
+}
+
+/*
+ * TCP Process outbound connections
+ */
+fbt:ip:tcp_connect:entry
+{
+	this->tcpp = (tcp_t *)arg0;
+	self->connp = (conn_t *)this->tcpp->tcp_connp;
+	tname[(int)self->connp] = execname;
+	tpid[(int)self->connp] = pid;
+	tuid[(int)self->connp] = uid;
+	OPT_proj ? tproj[(int)self->connp] = curpsinfo->pr_projid : 1;
+}
+
+/*
+ * TCP Data translations
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	/* fetch ports */
+#if defined(_BIG_ENDIAN)
+	self->lport = self->connp->u_port.tcpu_ports.tcpu_lport;
+	self->fport = self->connp->u_port.tcpu_ports.tcpu_fport;
+#else
+	self->lport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_lport);
+	self->fport = BSWAP_16(self->connp->u_port.tcpu_ports.tcpu_fport);
+#endif
+
+	/* fetch IPv4 addresses */
+	this->fad12 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[12];
+	this->fad13 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[13];
+	this->fad14 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[14];
+	this->fad15 =
+	    (int)self->connp->connua_v6addr.connua_faddr._S6_un._S6_u8[15];
+	this->lad12 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[12];
+	this->lad13 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[13];
+	this->lad14 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[14];
+	this->lad15 =
+	    (int)self->connp->connua_v6addr.connua_laddr._S6_un._S6_u8[15];
+
+	/* convert type for use with lltostr() */
+	this->fad12 = this->fad12 < 0 ? 256 + this->fad12 : this->fad12;
+	this->fad13 = this->fad13 < 0 ? 256 + this->fad13 : this->fad13;
+	this->fad14 = this->fad14 < 0 ? 256 + this->fad14 : this->fad14;
+	this->fad15 = this->fad15 < 0 ? 256 + this->fad15 : this->fad15;
+	this->lad12 = this->lad12 < 0 ? 256 + this->lad12 : this->lad12;
+	this->lad13 = this->lad13 < 0 ? 256 + this->lad13 : this->lad13;
+	this->lad14 = this->lad14 < 0 ? 256 + this->lad14 : this->lad14;
+	this->lad15 = this->lad15 < 0 ? 256 + this->lad15 : this->lad15;
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	/* fix direction and save values */
+	tladdr[(int)self->connp] = self->laddr;
+	tfaddr[(int)self->connp] = self->faddr;
+	tlport[(int)self->connp] = self->lport;
+	tfport[(int)self->connp] = self->fport;
+
+	/* all systems go */
+	tok[(int)self->connp] = 1;
+}
+
+/*
+ * TCP Clear connp
+ */
+fbt:ip:tcp_get_conn:return
+{
+	/* Q_TO_CONN */
+	this->connp = (conn_t *)arg1;
+	tok[(int)this->connp] = 0;
+	tpid[(int)this->connp] = 0;
+	tuid[(int)this->connp] = 0;
+	tname[(int)this->connp] = 0;
+	tproj[(int)this->connp] = 0;
+}
+
+/*
+ * TCP Process "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:entry
+{
+	this->queuep = args[7]->tcps_g_q;
+	this->connp = (conn_t *)this->queuep->q_ptr;
+	this->tcpp = (tcp_t *)this->connp->conn_tcp;
+	self->zoneid = this->connp->conn_zoneid;
+
+	/* split addresses */
+	this->ipha = (ipha_t *)args[1]->b_rptr;
+	this->fad15 = (this->ipha->ipha_src & 0xff000000) >> 24;
+	this->fad14 = (this->ipha->ipha_src & 0x00ff0000) >> 16;
+	this->fad13 = (this->ipha->ipha_src & 0x0000ff00) >> 8;
+	this->fad12 = (this->ipha->ipha_src & 0x000000ff);
+	this->lad15 = (this->ipha->ipha_dst & 0xff000000) >> 24;
+	this->lad14 = (this->ipha->ipha_dst & 0x00ff0000) >> 16;
+	this->lad13 = (this->ipha->ipha_dst & 0x0000ff00) >> 8;
+	this->lad12 = (this->ipha->ipha_dst & 0x000000ff);
+
+	/* stringify addresses */
+	self->faddr = strjoin(lltostr(this->fad12), ".");
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad13), "."));
+	self->faddr = strjoin(self->faddr, strjoin(lltostr(this->fad14), "."));
+	self->faddr = strjoin(self->faddr, lltostr(this->fad15 + 0));
+	self->laddr = strjoin(lltostr(this->lad12), ".");
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad13), "."));
+	self->laddr = strjoin(self->laddr, strjoin(lltostr(this->lad14), "."));
+	self->laddr = strjoin(self->laddr, lltostr(this->lad15 + 0));
+
+	self->reset = 1;
+}
+
+/*
+ * TCP Fetch "port closed" ports
+ */
+fbt:ip:tcp_xchg:entry
+/self->reset/
+{
+#if defined(_BIG_ENDIAN)
+	self->lport = (uint16_t)arg0;
+	self->fport = (uint16_t)arg1;
+#else
+	self->lport = BSWAP_16((uint16_t)arg0);
+	self->fport = BSWAP_16((uint16_t)arg1);
+#endif
+	self->lport = BE16_TO_U16(arg0);
+	self->fport = BE16_TO_U16(arg1);
+}
+
+/*
+ * TCP Print "port closed"
+ */
+fbt:ip:tcp_xmit_early_reset:return
+{
+	self->name = "<closed>";
+	self->pid = 0;
+	self->uid = 0;
+	self->proj = 0;
+	self->size = 54 * 2;	/* should check trailers */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	self->reset = 0;
+	self->size = 0;
+	self->name = 0;
+}
+
+/*
+ * TCP Process Write
+ */
+fbt:ip:tcp_send_data:entry
+{
+	self->conn_p = (conn_t *)args[0]->tcp_connp;
+}
+
+fbt:ip:tcp_send_data:entry
+/tok[(int)self->conn_p]/
+{
+        self->size = msgdsize(args[2]) + 14;	/* should check trailers */
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+        self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Process Read
+ */
+fbt:ip:tcp_rput_data:entry
+{
+	self->conn_p = (conn_t *)arg0;
+        self->size = msgdsize(args[1]) + 14;	/* should check trailers */
+}
+
+fbt:ip:tcp_rput_data:entry
+/tok[(int)self->conn_p]/
+{
+	self->uid = tuid[(int)self->conn_p];
+	self->laddr = tladdr[(int)self->conn_p];
+	self->faddr = tfaddr[(int)self->conn_p];
+	self->lport = tlport[(int)self->conn_p];
+	self->fport = tfport[(int)self->conn_p];
+	OPT_proj ? self->proj = tproj[(int)self->conn_p] : 1;
+	self->zoneid = self->conn_p->conn_zoneid;
+	self->ok = 2;
+
+	/* follow inetd -> in.* transitions */
+	self->name = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    execname : tname[(int)self->conn_p];
+	self->pid = pid && (tname[(int)self->conn_p] == "inetd") ?
+	    pid : tpid[(int)self->conn_p];
+	tname[(int)self->conn_p] = self->name;
+	tpid[(int)self->conn_p] = self->pid;
+}
+
+/*
+ * TCP Complete printing outbound handshake
+ */
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54;	/* should check trailers */
+
+	/* this packet occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Complete printing inbound handshake
+ */
+fbt:sockfs:sotpi_accept:return
+/self->connp/
+{
+	self->name = tname[(int)self->connp];
+	self->pid = tpid[(int)self->connp];
+	self->uid = tuid[(int)self->connp];
+	self->zoneid = self->connp->conn_zoneid;
+	OPT_proj ? self->proj = tproj[(int)self->connp] : 1;
+	self->size = 54 * 3;	/* should check trailers */
+
+	/* these packets occured before connp was fully established */
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/*
+ * TCP Save data
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+/self->ok == 2/ 
+{
+	/* save r+w data*/
+	OPT_def ? @out[self->uid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_zone ? @out[self->zoneid, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+	OPT_proj ? @out[self->proj, self->pid, self->laddr, self->lport,
+	    self->faddr, self->fport, self->name] = sum(self->size) : 1;
+}
+
+/* 
+ * TCP Clear connect variables
+ */
+fbt:sockfs:sotpi_accept:return,
+fbt:ip:tcp_connect:return
+/self->connp/
+{
+	self->faddr = 0;
+	self->laddr = 0;
+	self->fport = 0;
+	self->lport = 0;
+	self->connp = 0;
+	self->name = 0;
+	self->pid = 0;
+	self->uid = 0;
+}
+
+/* 
+ * TCP Clear r/w variables
+ */
+fbt:ip:tcp_send_data:entry,
+fbt:ip:tcp_rput_data:entry
+{
+	self->ok = 0;
+	self->uid = 0;
+	self->pid = 0;
+	self->size = 0;
+	self->name = 0;
+	self->lport = 0;
+	self->fport = 0;
+	self->laddr = 0;
+	self->faddr = 0;
+	self->conn_p = 0;
+	self->zoneid = 0;
+	self->proj = 0;
+}
+
+/*
+ * TCP Systemwide Stats
+ */
+mib:::tcpOutDataBytes       { TCP_out += args[0]; }
+mib:::tcpRetransBytes       { TCP_out += args[0]; }
+mib:::tcpInDataInorderBytes { TCP_in  += args[0]; }
+mib:::tcpInDataDupBytes     { TCP_in  += args[0]; }
+mib:::tcpInDataUnorderBytes { TCP_in  += args[0]; }
+
+/*
+ * Timer
+ */
+profile:::tick-1sec
+{
+        secs--;
+}
+
+/*
+ * Print Report
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+        /* fetch 1 min load average */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert TCP counters to Kbytes */
+	TCP_out /= 1024;
+	TCP_in  /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+        printf("%Y,  load: %d.%02d,  TCPin: %6d KB,  TCPout: %6d KB\n\n",
+            walltimestamp, this->load1a, this->load1b, TCP_in, TCP_out);
+
+	/* print headers */
+	OPT_def  ? printf(" UID ") : 1;
+	OPT_proj ? printf("PROJ ") : 1;
+	OPT_zone ? printf("ZONE ") : 1;
+        printf("%6s %-15s %5s %-15s %5s %9s %s\n",
+	    "PID", "LADDR", "LPORT", "RADDR", "RPORT", "SIZE", "NAME");
+
+	/* print data */
+        printa("%4d %6d %-15s %5d %-15s %5d %@9d %s\n", @out);
+	printf("\n");
+
+	/* clear data */
+        trunc(@out);
+	TCP_in = 0;
+	TCP_out = 0;
+        secs = INTERVAL;
+        counts--;
+}
+
+/*
+ * End of program
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}
+
+/*
+ * Cleanup for Ctrl-C
+ */
+dtrace:::END
+{
+        trunc(@out);
+}
+')

Added: trunk/cddl/contrib/dtracetoolkit/Net/tcpwdist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/tcpwdist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/tcpwdist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -s
+/*
+ * tcpwdist.d - simple TCP write distribution by process.
+ *              Written in DTrace (Solaris 10 3/05).
+ *
+ * This measures the size of writes from applications to the TCP level, which
+ * may well be much larger than the MTU size (this is application writes not
+ * packet writes). It can help identify which process is creating network
+ * traffic, and the size of the writes by that application. It uses a simple
+ * probe that produces meaningful output for most protocols.
+ *
+ * Tracking TCP activity by process is complex for a number of reasons,
+ * the greatest is that inbound TCP traffic is asynchronous to the process.
+ * The easiest TCP traffic to match is writes, which this script demonstrates.
+ * However there are still issues - for an inbound telnet connection the
+ * writes are associated with the command, for example "ls -l", not something
+ * meaningful such as "in.telnetd".
+ *
+ * Scripts that match TCP traffic properly include tcpsnoop and tcptop.
+ *
+ * $Id: tcpwdist.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       tcpwdist.d          # wait several seconds, then hit Ctrl-C
+ *
+ * FIELDS:
+ *		PID	process ID
+ *		CMD	command and argument list
+ *		value	TCP write payload size in bytes
+ *		count	number of writes
+ *
+ * SEE ALSO:	tcpsnoop, tcptop
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jul-2004	Brendan Gregg	Created this.
+ * 14-Jun-2005	   "      "	Rewrote this as tcpwdist.d.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+/*
+ * Process TCP Write
+ */
+fbt:ip:tcp_output:entry
+{
+	/* fetch details */
+	this->size = msgdsize(args[1]);
+
+	/* store details */
+	@Size[pid, curpsinfo->pr_psargs] = quantize(this->size);
+}
+
+/*
+ * Print final report
+ */
+dtrace:::END
+{
+	printa(" PID: %-6d CMD: %S\n%@d\n", @Size);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Net/tcpwdist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Net/udpstat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Net/udpstat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Net/udpstat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,92 @@
+#!/usr/sbin/dtrace -s
+/*
+ * udpstat.d - print UDP statistics. Uses DTrace.
+ *
+ * This prints UDP statistics every second, retrieved from the MIB provider.
+ *
+ * $Id: udpstat.d 59 2007-10-03 08:21:58Z brendan $
+ *
+ * USAGE:	udpstat.d
+ *
+ * FIELDS:
+ *		UDP_out		UDP datagrams sent
+ *		UDP_outErr	UDP datagrams errored on send
+ *		UDP_in		UDP datagrams received
+ *		UDP_inErr	UDP datagrams undeliverable
+ *		UDP_noPort	UDP datagrams received to closed ports
+ *
+ * The above UDP statistics are documented in the mib2_udp struct
+ * in the /usr/include/inet/mib2.h file; and also in the mib provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 25-Jul-2005  Brendan Gregg   Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Declare Globals
+ */
+dtrace:::BEGIN
+{
+	UDP_in = 0; UDP_out = 0;
+	UDP_inErr = 0; UDP_outErr = 0; UDP_noPort = 0;
+	LINES = 20; line = 0;
+}
+
+/*
+ * Print Header
+ */
+profile:::tick-1sec { line--; }
+
+profile:::tick-1sec
+/line <= 0 /
+{
+	printf("%11s %11s %11s %11s %11s\n",
+	    "UDP_out", "UDP_outErr", "UDP_in", "UDP_inErr", "UDP_noPort");
+
+	line = LINES;
+}
+
+/*
+ * Save Data
+ */
+mib:::udp*InDatagrams	{ UDP_in += arg0;	}
+mib:::udp*OutDatagrams	{ UDP_out += arg0;	}
+mib:::udpInErrors	{ UDP_inErr += arg0;	}
+mib:::udpInCksumErrs	{ UDP_inErr += arg0;	}
+mib:::udpOutErrors	{ UDP_outErr += arg0;	}
+mib:::udpNoPorts	{ UDP_noPort += arg0;	}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+{
+	printf("%11d %11d %11d %11d %11d\n",
+	    UDP_out, UDP_outErr, UDP_in, UDP_inErr, UDP_noPort);
+
+	/* clear values */
+	UDP_out		= 0;
+	UDP_outErr	= 0;
+	UDP_in		= 0;
+	UDP_inErr	= 0;
+	UDP_noPort	= 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Net/udpstat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLcolors_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLcolors_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLcolors_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,127 @@
+**************************************************************************
+* The following are additional notes on all programs that print a colorized
+* ("colourised") output, *color*.d.
+*
+* $Id: ALLcolors_notes.txt 58 2007-10-01 13:36:29Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+* The colors aren't working, I see rubbish characters
+
+Try using a terminal that supports colors, such as gnome-terminal or dtterm.
+
+The following text should test the spectrum of colors for your terminal.
+Read this using "more" or "cat" (not "less" or "vim") to check if your
+terminal will print colors, and what they will look like:
+
+	Color		Test String		Dark Background
+	---------------------------------------------------------
+	black		color test		color test
+	red		color test		color test
+	green		color test		color test
+	yellow		color test		color test
+	blue		color test		color test
+	magenta		color test		color test
+	cyan		color test		color test
+	white		color test		color test
+
+and now for a test of attributes:
+
+	Color		Bold			Faint
+	---------------------------------------------------------
+	black		color test		color test
+	red		color test		color test
+	green		color test		color test
+	yellow		color test		color test
+	blue		color test		color test
+	magenta		color test		color test
+	cyan		color test		color test
+	white		color test		color test
+
+
+* Why so much green and violet in the toolkit scripts?
+
+As DTrace can examine the entire software stack, it is conceivable that
+your script could print events from many different layers each with their
+own color. Color scripts in the DTraceToolkit generally start by tracing
+two layers, with extra layers added by the end user as needed (you). The
+general plan is:
+
+	Software Layer		Example	Provider	Color
+	-------------------------------------------------------
+	Dynamic Language	perl			violet
+	User Library		pid:libperl		blue
+	OS Library		pid:libc		cyan
+	System Calls		syscall			green
+	Kernel and Drivers	fbt			red
+
+How these colors will look will depend on your terminal software. Useful
+variations can be made, for example using red/bold for kernel abstraction
+providers (io, vminfo, ...); and red/faint for raw kernel tracing (fbt).
+
+The color examples in this toolkit usually trace the syscall and dynamic
+language layers, hense the green and violet.
+
+
+* I don't like the choosen terminal colors / your colors suck
+
+It should be easy to customize them by tweaking the script. I've tried
+to use the following convention for declaring colors in D scripts:
+
+   dtrace:::BEGIN
+   {
+           color_shell = "\033[2;35m";             /* violet, faint */
+           color_line = "\033[1;35m";              /* violet, bold */
+           color_syscall = "\033[2;32m";           /* green, faint */
+           color_off = "\033[0m";                  /* default */
+   }
+
+That way, printf() statements can print these string variables to turn
+on and off colors, as needed. These strings contain an escape sequence to
+inform your terminal software to change the output color. Customizations
+can be made by tweaking the variables; refer to documentation for your
+terminal software to see what numbers will print what colors.
+
+For my terminal (dtterm), the numbers are (from dtterm(5)):
+
+	Attributes
+
+		1	bold
+		2	faint
+
+	Forground colors
+
+		30	black
+		31	red
+		32	green
+		33	yellow
+		34	blue
+		35	magenta
+		36	cyan
+		37	white
+
+	Background colors
+
+		40	black
+		41	red
+		...	etc, as above
+
+
+* I'd like to use this colored output on a website.
+
+The easiest way would be to change the script to output HTML rather than
+escape sequences. eg:
+
+   dtrace:::BEGIN
+   {
+           color_shell = "<font color=\"#FFAAFF\">";     /* violet, faint */
+           color_line = "<font color=\"#FF44FF\">";      /* violet, bold */
+           color_syscall = "<font color=\"#44CC44\">";   /* green, faint */
+           color_off = "</font>";                        /* default */
+   }
+
+Other tweaks can be made to either print the output in a <pre> tagged block;
+or as seperate lines ending in <br> along with changing the font to be
+fixed width.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLcolors_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLelapsed_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLelapsed_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLelapsed_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,46 @@
+**************************************************************************
+* The following are notes for all scripts that measure elapsed time.
+*
+* $Id: ALLelapsed_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "elapsed" time?
+
+Elapsed time is the absolute time from one point to another. This time
+includes everything that happened between these points, including 
+off-CPU time due to other system events such as I/O, scheduling,
+interrupts, etc. It also includes the small overheads of DTrace itself.
+
+Elapsed times are useful for identifying where latencies are, since
+regardless of their nature (CPU, I/O, ...), they will be visible in
+elapsed time.
+
+Since elapsed times don't filter out anything, they are suseptible to
+"noise" - random system events that are unrelated to the analysis target.
+For that reason, it may be best to take several measurements of elapsed
+time and take the average (or run your workload several times and let
+DTrace take the average).
+
+See Notes/ALLoncpu_notes.txt for a description of a different time
+measurement, "on-CPU" time.
+
+
+* How is "elapsed" time measured?
+
+In DTrace, the following template provides elapsed time as "this->elapsed",
+
+   <start-probe>
+   {
+	   self->start = timestamp;
+   }
+   
+   <end-probe>
+   {
+	   this->elapsed = timestamp - self->start;
+	   self->start = 0;
+	   ...
+   }
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLelapsed_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLexclusive_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLexclusive_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLexclusive_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,78 @@
+**************************************************************************
+* Notes for all scripts that print exclusive function times (or method,
+* or subroutine).
+*
+* $Id: ALLexclusive_notes.txt 45 2007-09-17 08:54:56Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "exclusive" function time?
+
+This is the time of function execution, from when the function begins to
+when it completes, excluding the time spent executing any child function.
+
+Exclusive function time can be calculated like this,
+
+   exclusive function time = time(function end) - time(function start) - 
+                             time(total child exclusive time)
+
+To do this, the DTrace script needs to keep trace of child function execution
+time, so that it can be subtracted from the parent execution time.
+
+Consider this Bourne shell program,
+     1  #!./sh
+     2  
+     3  func_c()
+     4  {
+     5          echo "Function C"
+     6          sleep 1
+     7  }
+     8  
+     9  func_b()
+    10  {
+    11          echo "Function B"
+    12          sleep 1
+    13          func_c
+    14  }
+    15  
+    16  func_a()
+    17  {
+    18          echo "Function A"
+    19          sleep 1
+    20          func_b
+    21  }
+    22  
+    23  func_a
+
+func_a() calls func_b() which calls func_c(). Tracing the flow using
+sh_flowtime.d shows,
+
+# ./sh_flowtime.d | cat -n
+     1    C TIME(us)         FILE             DELTA(us) -- NAME
+     2    0 3052991099265    func_abc.sh              2 -> func_a
+     3    0 3052991099324    func_abc.sh             59   > echo
+     4    0 3052992111638    func_abc.sh        1012314   | sleep
+     5    0 3052992111678    func_abc.sh             39   -> func_b
+     6    0 3052992111729    func_abc.sh             51     > echo
+     7    0 3052993121633    func_abc.sh        1009903     | sleep
+     8    0 3052993121693    func_abc.sh             60     -> func_c
+     9    0 3052993121745    func_abc.sh             52       > echo
+    10    0 3052994131634    func_abc.sh        1009888       | sleep
+    11    0 3052994131685    func_abc.sh             50     <- func_c
+    12    0 3052994131699    func_abc.sh             14   <- func_b
+    13    0 3052994131707    func_abc.sh              7 <- func_a
+
+the output of DTrace was piped through "cat -n" to enumerate the lines.
+
+Exclusive function time for func_a() in the above output would be the
+time from line 2 to line 13 minus the time from line 5 to 12 to subtract
+the time spent in both func_b() and func_c(). Or, you could say that
+exclusive time for func_a() is the time from lines 2 to 4.
+
+Looking back at the code, exclusive time for func_a() is the time spent
+in code lines 18 and 19 (and not line 20).
+
+See Notes/ALLinclusive_notes.txt for details on "inclusive" function time.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLexclusive_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLfbt_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLfbt_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLfbt_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,77 @@
+**************************************************************************
+* The following are notes for any script that uses the "fbt" provider.
+* To identify these scripts, check the "STABILITY" section of the script's
+* man page, or try grepping for "fbt" on the script.
+*
+* $Id: ALLfbt_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+What is the "fbt" provider?...
+
+* A DTrace library of probes that instruments raw kernel function calls.
+* An "unstable" provider; meaning, scripts written using "fbt" are not
+  guarenteed to work on future versions of the OS - including after
+  patching the kernel.
+
+In a perfect world...
+
+* None of the DTraceToolkit scripts would use the "fbt" provider; instead
+  they would all use stable providers such as "proc", "sched", "io", etc.
+* All the DTraceToolkit scripts would run on any system that supports DTrace.
+
+In the real world...
+
+* Not all stable providers exist yet. Many are in development, such as
+  stable networking providers.
+* In the meantime, useful tools such as "tcpsnoop" and "tcptop" can
+  only be written using the unstable "fbt" provider (and these scripts have
+  broken several times due to kernel changes since they were first written).
+* "fbt" provider based scripts,
+	- only run on a particular OS (eg, Solaris)
+	- may only run on a particular version of an OS (eg, Solaris 10 3/05)
+	- are likely to break for future OS releases (eg, Solaris 10 6/06)
+* "fbt" provider based scripts also make the impossible possible, albiet
+  in a very unstable way, as a temporary solution while stable providers
+  are still in development.
+* Once stable providers exist, "fbt" scripts can be rewritten to use them;
+  however these new scripts will only run on newer OS builds that support
+  the stable providers. (in other words, this won't help you if you remain
+  on Solaris 10 6/06; you'll need to upgrade, or survive with "fbt").
+* Only some of the DTraceToolkit scripts use "fbt", and only a portion of
+  those have encountered stability issues - so this issue is limited.
+
+The "fbt" provider exports raw kernel implementation, which isn't guarenteed
+to be stable nor should it ever be (to do so would freeze kernel development
+and bug fixes). The only practical solution is the development and
+integration of stable providers (although that doesn't help people who keep
+running older versions of the OS).
+
+More harm than good?...
+
+Is the inclusion of these "fbt" scripts more harm than good? Consider,
+
+* the good,
+	- shows what is possible with DTrace
+	- should help a number of people solve specific performance issues,
+	  on systems where they run
+	- a customer who really wants these scripts but on an OS version
+	  where they don't work, have at least the source as a starting
+	  point (and in some cases, the fix was trivial)
+
+* the bad,
+	- teases and frustrates people who find these scripts don't work
+	  on their OS
+
+To minimise this issue, only a small number of "fbt" scripts have been
+included, and they have been documented (see their man page) as unstable.
+
+Can I help?...
+
+If you really like an "fbt" based script and would like to keep using it
+in a stable way, it may help to raise that with your vendor (Sun for Solaris,
+Apple for MacOS). Sun has OpenSolaris forums, such as dtrace-discuss, which
+are read by their engineers and the public.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLfbt_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLflow_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLflow_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLflow_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,64 @@
+**************************************************************************
+* Notes for all scripts that print a function or method flow.
+*
+* $Id: ALLflow_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is a flow?
+
+Output that has some meaningful indent, such as function flow indented by
+stack depth. eg,
+
+   # ./pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2963130861619     func_abc.pl      -> func_a
+     0 2963131870998     func_abc.pl        -> func_b
+     0 2963132871121     func_abc.pl          -> func_c
+     0 2963133881150     func_abc.pl          <- func_c
+     0 2963133881166     func_abc.pl        <- func_b
+     0 2963133881174     func_abc.pl      <- func_a
+   ^C
+
+
+* The output looks shuffled?
+
+Eg,
+
+   # ./pl_flow.d 
+     C TIME(us)          FILE             -- SUB
+     0 2963130861619     func_abc.pl      -> func_a
+     0 2963131870998     func_abc.pl        -> func_b
+     0 2963132871121     func_abc.pl          -> func_c
+     0 2963133881166     func_abc.pl        <- func_b
+     0 2963133881174     func_abc.pl      <- func_a
+     1 2963133881150     func_abc.pl          <- func_c
+   ^C
+
+Yes, this is shuffled. DTrace has been designed with a number of important
+goals in mind - including minimising the enabled performance overhead. To do
+this, per-CPU kernel buffers have been used to collect output, which are
+(currently) dumped in sequence by /usr/sbin/dtrace whenever it wakes
+up ("switchrate" tunable). So, on multi-CPU servers, there is always the
+possibility that any DTrace script can print out-of-order data.
+
+To deal with this behaviour, the flow scripts may,
+
+- print a "C" CPU column. If this changes from one line to the next then
+  the output is probably shuffled around that point. This is why the "C"
+  column appears in these flow scripts.
+- print a "TIME(us)" column. You can eyeball this for shuffles, or just
+  post sort the dtrace output.
+
+Now have a closer look at the pl_flow.d output above. The change in C 
+indicates that a shuffle may have happened, and the out-of-order TIME(us)
+shows that it did happen.
+
+It is possible that DTrace will be enhanced to always sort output before
+printing, and this behaviour is no longer an issue.
+
+See "The output seems shuffled?" in Notes/ALLsnoop_notes.txt for more
+notes on this behaviour.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLflow_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLinclusive_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLinclusive_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLinclusive_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,74 @@
+**************************************************************************
+* Notes for all scripts that print inclusive function times (or method,
+* or subroutine).
+*
+* $Id: ALLinclusive_notes.txt 45 2007-09-17 08:54:56Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "inclusive" function time?
+
+This is the time of function execution, from when the function begins to
+when it completes. This includes the times from all child functions called.
+
+Inclusive function time is calculated in a very simple way,
+
+   inclusive function time = time(function end) - time(function start)
+
+Consider this Bourne shell program,
+
+     1  #!./sh
+     2  
+     3  func_c()
+     4  {
+     5          echo "Function C"
+     6          sleep 1
+     7  }
+     8  
+     9  func_b()
+    10  {
+    11          echo "Function B"
+    12          sleep 1
+    13          func_c
+    14  }
+    15  
+    16  func_a()
+    17  {
+    18          echo "Function A"
+    19          sleep 1
+    20          func_b
+    21  }
+    22  
+    23  func_a
+
+func_a() calls func_b() which calls func_c(). Tracing the flow using
+sh_flowtime.d shows,
+
+# ./sh_flowtime.d | cat -n
+     1    C TIME(us)         FILE             DELTA(us) -- NAME
+     2    0 3052991099265    func_abc.sh              2 -> func_a
+     3    0 3052991099324    func_abc.sh             59   > echo
+     4    0 3052992111638    func_abc.sh        1012314   | sleep
+     5    0 3052992111678    func_abc.sh             39   -> func_b
+     6    0 3052992111729    func_abc.sh             51     > echo
+     7    0 3052993121633    func_abc.sh        1009903     | sleep
+     8    0 3052993121693    func_abc.sh             60     -> func_c
+     9    0 3052993121745    func_abc.sh             52       > echo
+    10    0 3052994131634    func_abc.sh        1009888       | sleep
+    11    0 3052994131685    func_abc.sh             50     <- func_c
+    12    0 3052994131699    func_abc.sh             14   <- func_b
+    13    0 3052994131707    func_abc.sh              7 <- func_a
+
+the output of DTrace was piped through "cat -n" to enumerate the lines.
+
+Inclusive function time for func_a() in the above output would be the
+time from line 2 to line 13. This inclusive time includes the time
+for both func_b() and func_c().
+
+Looking back at the code, inclusive time for func_a() is the time spent
+in code lines 18, 19 and 20.
+
+See Notes/ALLexclusive_notes.txt for details on "exclusive" function time.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLinclusive_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLjava_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLjava_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLjava_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,35 @@
+**************************************************************************
+* Notes for all scripts that trace Java using the hotspot provider.
+*
+* $Id: ALLjava_notes.txt 52 2007-09-24 04:28:01Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+* I see "drops"
+
+If you see the following output,
+   
+   dtrace: 2547 drops on CPU 0
+
+This means that JVM events (usually methods) were executed too quickly for
+DTrace to keep up, and as a safety measure DTrace has let events slip by.
+This means, at least, that the output is missing lines. At worst, the
+output may contain corrupted values (time deltas between events that were
+dropped).
+
+If you see drops, you should first ask yourself whether you need to be
+tracing such frequent events at all - is there another way to get the same
+data?  For example, see the j_profile.d script, which uses a different
+technique (sampling) than most of the other Java scripts (tracing).
+
+You can try tweaking DTrace tunables to prevent DTrace from dropping events.
+A key tunable is "bufsize", and can be set in scripts like so,
+
+   #pragma D option bufsize=32m
+
+That line means that 32 Mbytes will be allocated to the DTrace primary
+buffer per-CPU (how depends on bufpolicy). If you have many CPUs, say 8,
+then the above line means that 256 Mbytes (32 * 8) will be allocated as a
+buffer while your D script is running. 
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLjava_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLoncpu_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLoncpu_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLoncpu_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,42 @@
+**************************************************************************
+* The following are notes for all scripts that measure on-CPU times.
+*
+* $Id: ALLoncpu_notes.txt 58 2007-10-01 13:36:29Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What is "on-CPU" time?
+
+This is the time that a thread spent running on a CPU. It 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,
+since they measure how much CPU time has been consumed by that thread.
+
+On-CPU times are also less susceptible to system "noise" than elapsed times,
+since much of the noise will be filtered out. DTrace itself also tries
+to subtract the small overheads of DTrace from the on-CPU time, to improve
+the accuracy of this time.
+
+See Notes/ALLelapsed_notes.txt for a description of a different time
+measurement, "elapsed" time.
+
+
+* How is "on-CPU" time measured?
+
+In DTrace, the following template provides on-CPU time as "this->oncpu",
+
+   <start-probe>
+   {
+	   self->vstart = vtimestamp;
+   }
+   
+   <end-probe>
+   {
+	   this->oncpu = vtimestamp - self->vstart;
+	   self->vstart = 0;
+	   ...
+   }
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLoncpu_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLoverhead.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLoverhead.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLoverhead.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,96 @@
+**************************************************************************
+* The following are notes regarding the overheads of running DTrace.
+*
+* $Id: ALLoverhead.txt 58 2007-10-01 13:36:29Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+The following are notes regarding the overheads of running DTrace.
+
+* What are the overheads of running DTrace?
+
+Often negligible.
+
+It depends what the DTrace script does, in particular, the frequency of
+events that it is tracing.
+
+The following tips should explain what the overheads probably are,
+
+- if your script traces less than 1000 events per second, then the overhead
+  is probably negligible. ie, less than 0.1% CPU.
+- if your script traces more than 100,000 events per second, then the
+  overhead will start to be significant. If you are tracing kernel events,
+  then perhaps this could be 10% per CPU. If you are tracing user land
+  application events, then the overhead can be greater than 30% per CPU.
+- if your script produes pages of output, then the CPU cost of drawing
+  this output to the screen and rendering the fonts is usually far greater
+  than DTrace itself. Redirect the output of DTrace to a file in /tmp
+  ("-o" or ">").
+- a ballpark figure for the overhead of a DTrace probe would be 500 ns.
+  This can be much less (kernel only), or much more (many user to kerel
+  copyin()s); I've provided it to give you a very rough idea. Of course,
+  as CPUs become faster, this overhead will become smaller.
+
+If overheads are a concern - then perform tests to measure their magnitude
+for both your workload and the scripts applied, such as benchmarks with
+and without DTrace running. Also read the scripts you are using, and
+consider how frequent the probes will fire, and if you can customise the
+script to reduce the frequency of probes.
+
+For example, scripts that trace,
+
+	pid$target:::entry,
+	pid$target:::return
+
+would usually cause significant performance overhead, since they fire two
+probes for every function called (and can easily reach 100,000 per second).
+You could reduce this by modifying the script to only trace the libraries
+you are interested in. For example, if you were only interested in
+libsocket and libnsl, then change the above lines wherever they appeared to,
+
+	pid$target:libsocket::entry,
+	pid$target:libsocket::return,
+	pid$target:libnsl::entry,
+	pid$target:libnsl::return
+
+and you may notice the overheads are significantly reduced (especially anytime
+you drop libc and libdl). To go further, only list functions of interest,
+
+	pid$target:libsocket:connect:entry,
+	pid$target:libsocket:connect:return,
+	pid$target:libsocket:listen:entry,
+	pid$target:libsocket:listen:return,
+	[...]
+
+There are additional notes in Docs/Faq about the DTraceToolkit's scripts
+and performance overhead.
+
+
+* When are the overheads a problem?
+
+When they are significant (due to frequent events), and you are tracing
+in a production environment that is sensitive to additional CPU load.
+
+Overheads should be considered if you are measuring times (delta, elapsed,
+on-CPU, etc) for performance analysis. In practise, overheads aren't
+that much of a problem -- the script will either identify your issues
+correctly (great), or not (keep looking). Any it is usually easy to quickly
+confirm what DTrace does find by using other tools, or by hacking quick
+code changes. You might be using DTrace output that you know has a
+significant margin of error - but that becomes moot after you prove that
+the performance fix works through benchmarking a quick fix.
+
+At the end of the day, if DTrace helps find real measurable performance wins
+(and it should), then it has been successful.
+
+
+* When are overheads not a problem?
+
+When the script is not tracing extreamly frequent events.
+
+Also, when you are in development and tracing events for troubleshooting
+purposes (args to functions, for example), DTrace overheads are usually 
+not an issue at all.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLoverhead.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLperl_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLperl_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLperl_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,44 @@
+**************************************************************************
+* The following are notes for all the Perl tracing scripts,
+*
+* $Id: ALLperl_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Where did those "BEGIN" subroutine calls come from?
+
+The following counts subroutines from the example program, Code/Perl/hello.pl,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+
+no subroutines were called, so there is no data to output.
+
+Now a similar program is traced, Code/Perl/hello_strict.pl, which uses
+the "strict" pragma,
+
+   # pl_subcalls.d
+   Tracing... Hit Ctrl-C to end.
+   ^C
+    FILE                             SUB                                 CALLS
+    hello_strict.pl                  BEGIN                                   1
+    strict.pm                        bits                                    1
+    strict.pm                        import                                  1
+
+not only were functions from "strict.pm" traced, but a "BEGIN" function
+ran from the "hello_strict.pl" program - which doesn't appear to use "BEGIN",
+
+   # cat -n ../Code/Perl/hello_strict.pl
+        1  #!./perl -w
+        2  
+        3  use strict;
+        4  
+        5  print "Hello World!\n";
+
+Perl appears to add a BEGIN block to process the "use" keyword. This makes
+some degree of sense.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLperl_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/ALLsnoop_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/ALLsnoop_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/ALLsnoop_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,94 @@
+**************************************************************************
+* The following are additional notes on ALL of the *snoop programs (such as
+* execsnoop, iosnoop, ..., and dapptrace, dtruss).
+*
+* $Id: ALLsnoop_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* The output seems shuffled?
+
+Beware - due to the (current) way DTrace works, on multi-CPU systems there
+is no guarentee that if you print traced events the output is in the same
+order that the events occured.
+
+This is because events details are placed in kernel per-CPU buffers, and then
+dumped in sequence by the DTrace consumer (/usr/sbin/dtrace) whenever it
+wakes up ("switchrate" tunable). The DTrace consumer reads and prints the
+buffers one by one, it doesn't combine them and sort them. 
+
+To demonstrate this,
+
+   # dtrace -n 'profile:::profile-3hz { trace(timestamp); }'
+   dtrace: description 'profile-3hz ' matched 1 probe
+   CPU     ID                    FUNCTION:NAME
+     0  41241                     :profile-3hz  1898015274778547
+     0  41241                     :profile-3hz  1898015608118262
+     0  41241                     :profile-3hz  1898015941430060
+     1  41241                     :profile-3hz  1898015275499014
+     1  41241                     :profile-3hz  1898015609173485
+     1  41241                     :profile-3hz  1898015942505828
+     2  41241                     :profile-3hz  1898015275351257
+     2  41241                     :profile-3hz  1898015609180861
+     2  41241                     :profile-3hz  1898015942512708
+     3  41241                     :profile-3hz  1898015274803528
+     3  41241                     :profile-3hz  1898015608120522
+     3  41241                     :profile-3hz  1898015941449884
+   ^C
+
+If you read the timestamps carefully, you'll see that they aren't quite
+in chronological order. If you look at the CPU column while reading the
+timestamps, the way DTrace works should become clear.
+
+Most of the snoop tools have a switchrate of 10hz, so events may be shuffled
+within a tenth of a second - not hugely noticable.
+
+This isn't really a problem anyway. If you must have the output in the correct
+order, find the switch that prints timestamps and then sort the output.
+As an example,
+
+   # iosnoop -t > out.iosnoop
+   ^C
+   # sort -n out.iosnoop
+   
+   TIME             UID   PID D    BLOCK   SIZE       COMM PATHNAME
+   183710958520       0  3058 W 10507848   4096       sync /var/log/pool/poold
+   183710990358       0  3058 W  6584858   1024       sync /etc/motd
+   183711013469       0  3058 W    60655   9216       sync <none>
+   183711020149       0  3058 W    60673   1024       sync <none>
+
+All shell-wrapped scripts should have some way to print timestamps, and
+many DTrace-only scripts print timestamps by default. If you find a script
+that doesn't print timestamps, it should be trivial for you to add an
+extra column.
+
+To add a microsecond-since-boot time column to a script, try adding this
+before every printf() you find,
+
+	printf("%-16d ", timestamp / 1000);
+
+except for the header line, where you can add this,
+
+	printf("%-16s ", "TIME(us)");
+
+Now you will be able to post sort the script output on the TIME(us) column.
+
+In practise, I find post sorting the output a little annoying at times,
+and use a couple of other ways to prevent shuffling from happening in the
+first place:
+
+- offline all CPUs but one when running flow scripts. Naturally, you
+  probably don't want to do this on production servers, this is a trick
+  that may be handy for when developing on workstations or laptops. Bear
+  in mind that if you are trying to DTrace certain issues, such as
+  multi-thread locking contention, then offlining most CPUs may eliminate
+  the issue you are trying to observe.
+- pbind the target process of interest to a single CPU. Most OSes provide
+  a way to glue a process to a single CPU; Solaris has both pbind and psrset.
+
+Another way to solve this problem would be to enhance DTrace to always print
+in-order output. Maybe this will be done one day; maybe by the time you
+are reading this it has already been done?
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/ALLsnoop_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,21 @@
+Notes - Discussion about tools and their output
+
+   This directory contains files that provide deeper discussions about
+   tools and their output.
+
+   Files are either named,
+
+	ALL*_notes.txt	- notes that cover a collection of tools
+	*_notes.txt	- notes that cover a specific tool
+
+   These files are exist as an informal place to dump "stuff". This might
+   range from caveats to bear in mind when interpreting tool output, to
+   general or bizzare knowledge. Tool documentation is placed in,
+
+	/Man		- formal man pages
+	/Examples	- demos and how to read the output
+	*.d		- implementation notes within the code itself
+	/Notes		- everything else
+
+   Many of the scripts and man pages refer to files in this directory.
+

Added: trunk/cddl/contrib/dtracetoolkit/Notes/cputimes_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/cputimes_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/cputimes_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,138 @@
+**************************************************************************
+* The following are additional notes on the cputimes command.
+*
+* $Id: cputimes_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* How cputimes works
+
+cputimes measures time consumed by the kernel, idle therads and processes,
+by tracking the activity of the schedular. In particular we track on-cpu
+and off-cpu events for kernel therads, measuring the timestamps at each event.
+
+
+* Why cputimes?
+
+If you are interested in how much time processes are consuming, the data 
+given by "prstat" or "prstat -m" is fine. However there is no easy way to 
+see kernel consumed time, which is the idea behind cputimes.
+
+
+* What does it mean?
+
+The output shows categories of threads by the sum of time, in nanoseconds.
+
+A nanosecond is 10^-9, or 0.000000001 of a second. This program uses
+nanoseconds as units, but does not have nanosecond accuracy. It would be 
+reasonable to assume that this has microsecond accuracy (10^-6), so in 
+practise ignore the last three digits of the times.
+
+The sections reported are,
+
+PROCESSES - the sum of all the process time on the CPU. 
+KERNEL - the sum of the time spent in the kernel.
+IDLE - the time the kernel spent in the idle thread, waiting for some work.
+
+If your system isn't doing much, then the idle time will be quite large. If
+your system is running many applications, then there may be no idle time
+at all - instead most of the time appearing under processes.
+
+
+* When is there a problem?
+
+Expect to see most of the time in processes or idle, depending on how busy 
+your server is. Seeing a considerable amout of time in kernel would 
+definately be interesting.
+
+The kernel generally doesn't use much CPU time, usually less than 5%. 
+If it were using more, that may indicate heavy activity from an interrupt 
+thread, or activity caused by DTrace. 
+
+For example,
+
+   # cputimes 1
+   2005 Apr 27 23:49:32,
+            THREADS        TIME (ns)
+               IDLE         28351679
+             KERNEL        436022725
+            PROCESS        451304688
+
+In this sample the kernel is using a massive amount of the CPUs, around 47%.
+This sample was taken during heavy network utilisation, the time consumed 
+by the TCP/IP and network driver threads (and DTrace). The "intrstat" command
+could be used for further analysis of the interrupt threads responsible
+for servicing the network interface.
+
+
+* Problems with cputimes
+
+The way cputimes measures schedular activity turns out to be a lot of work. 
+There are many scheduling events per second where one thread steps onto a 
+CPU and another leaves. It turns out that cputimes itself causes some degree 
+of kernel load.
+
+Here we run 1 cputimes,
+
+   # cputimes 1
+   2005 May 15 12:00:41,
+            THREADS        TIME (ns)
+             KERNEL         12621985
+            PROCESS        982751579
+   2005 May 15 12:00:42,
+            THREADS        TIME (ns)
+             KERNEL         12267577
+            PROCESS        983513765
+   [...]
+
+Now a second cputimes is run at the same time,
+
+   # cputimes 1
+   2005 May 15 12:02:06,
+            THREADS        TIME (ns)
+             KERNEL         17366426
+            PROCESS        978804165
+   2005 May 15 12:02:07,
+            THREADS        TIME (ns)
+             KERNEL         17614829
+            PROCESS        978671601
+   [...]
+
+And now a third,
+
+   # cputimes 1
+   2005 May 15 12:03:09,
+            THREADS        TIME (ns)
+             KERNEL         21303089
+            PROCESS        974925124
+   2005 May 15 12:03:10,
+            THREADS        TIME (ns)
+             KERNEL         21222992
+            PROCESS        975152727
+   [...]
+
+Each extra cputimes is consuming an extra 4 to 5 ms of the CPU as kernel time.
+Around 0.5%. This can be used as an estimate of the kernel load caused by 
+running cputimes, and a similar strategy could be used to measure the kernel 
+load of other DTrace scripts.
+
+However the following CPU characteristics must be taken into consideration,
+
+   # psrinfo -v
+   Status of virtual processor 0 as of: 05/15/2005 12:06:05
+     on-line since 04/30/2005 13:32:32.
+     The i386 processor operates at 867 MHz,
+           and has an i387 compatible floating point processor.
+
+as well as the type of activity that was also running on the system, which
+cputimes was monitoring (frequency of scheduling events).
+
+A system with a slower CPU will use a larger proportion of kernel time to
+perform the same tasks. Also, a system that is context switching more 
+(switching between different processes) is likely to consume more kernel time
+as well.
+
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/cputimes_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/dappprof_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/dappprof_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/dappprof_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,14 @@
+**************************************************************************
+* The following are extra notes on the dappprof command.
+*
+* $Id: dappprof_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/dappprof_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/dapptrace_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/dapptrace_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/dapptrace_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,19 @@
+**************************************************************************
+* The following are extra notes on the dapptrace command.
+*
+* $Id: dapptrace_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/dapptrace_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/dtruss_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/dtruss_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/dtruss_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,97 @@
+**************************************************************************
+* The following are additional notes on the dtruss program.
+*
+* $Id: dtruss_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+Firstly, lets see dtruss do something cool,
+
+   # dtruss -eo -n bash
+   PID/LWP    ELAPSD    CPU SYSCALL(args)           = return
+    6215/1:       57     37 write(0x2, "h\0", 0x1)          = 1 0
+    6215/1:   357210     45 read(0x0, "e\0", 0x1)           = 1 0
+    6215/1:       53     37 write(0x2, "e\0", 0x1)          = 1 0
+    6215/1:   359510     46 read(0x0, "l\0", 0x1)           = 1 0
+    6215/1:       57     42 write(0x2, "l\0", 0x1)          = 1 0
+    6215/1:   166495     47 read(0x0, "l\0", 0x1)           = 1 0
+    6215/1:       56     40 write(0x2, "l\0", 0x1)          = 1 0
+    6215/1:   346076     44 read(0x0, "o\0", 0x1)           = 1 0
+    6215/1:       54     38 write(0x2, "o\0", 0x1)          = 1 0
+    6215/1:   349852     45 read(0x0, " \0", 0x1)           = 1 0
+    6215/1:       54     39 write(0x2, " \0", 0x1)          = 1 0
+
+In the above, the slow elapsed times for reads are due to the process context
+switching off the CPU while we wait for the next keystroke. For example,
+the second line shows an on-CPU time of 45 us and an elapsed time of 357210 us.
+In fact, the elapsed times are equal to the inter-keystroke delays.
+
+
+What about the writes? Their elapsed times are longer than the on-CPU times 
+also. Did we context switch off for them too? ... Lets run a different demo,
+
+   # dtruss -eo date
+    ELAPSD    CPU SYSCALL(args)             = return
+   Mon Jul 25 21:41:40 EST 2005
+        44     23 resolvepath("/usr/bin/date\0", 0x80476CC, 0x3FF)          = 13 0
+        10      1 sysconfig(0x6, 0xB25A1, 0xFEC1D444)               = 4096 0
+        36     28 resolvepath("/usr/lib/ld.so.1\0", 0x80476CC, 0x3FF)              = 12 0
+        18      9 xstat(0x2, 0x8047FEB, 0x8047AF8)          = 0 0
+        25     16 open("/var/ld/ld.config\0", 0x0, 0x0)             = -1 Err#2
+        27     18 xstat(0x2, 0xD27FBF38, 0x80473B0)                 = 0 0
+        17      9 resolvepath("/lib/libc.so.1\0", 0x8047438, 0x3FF)                = 14 0
+        21     13 open("/lib/libc.so.1\0", 0x0, 0x0)                = 3 0
+        30     22 mmap(0x10000, 0x1000, 0x5)                = -763559936 0
+        15      6 mmap(0x10000, 0xCE000, 0x0)               = -764411904 0
+        24     16 mmap(0xD2700000, 0xB5A45, 0x5)            = -764411904 0
+        21     12 mmap(0xD27C6000, 0x5EB3, 0x3)             = -763600896 0
+        18      9 mmap(0xD27CC000, 0x15C0, 0x3)             = -763576320 0
+        14      5 munmap(0xD27B6000, 0x10000)               = 0 0
+       186    176 memcntl(0xD2700000, 0x1B8D8, 0x4)                 = 0 0
+        17      7 close(0x3)                = 0 0
+   [...]
+
+For every syscall, the elapsed time is around 10 us (microseconds) slower
+than the on-cpu time. These aren't micro context switches, this is due to
+DTrace slowing down the program! The more closely we measure something the
+more we effect it. (See Heisenberg's uncertainty principle).
+
+Ok, so for the above output we can tell that each elapsed time is around 10 us
+longer than it should be. That's fine, since it's fairly consistant and not
+a huge difference. This is an x86 server with a 867 MHz CPU. 
+
+
+Now lets try the same on an Ultra 5 with a 360 MHz CPU,
+
+   # dtruss -eo date
+    ELAPSD    CPU SYSCALL(args)             = return
+       216    142 resolvepath("/usr/bin/date\0", 0xFFBFF338, 0x3FF)                = 13 0
+       234    187 resolvepath("/usr/lib/ld.so.1\0", 0xFFBFF338, 0x3FF)             = 12 0
+       113     67 stat("/usr/bin/date\0", 0xFFBFF818, 0xFFBFFFEB)           = 0 0
+       136     90 open("/var/ld/ld.config\0", 0x0, 0x0)             = -1 Err#2
+       107     61 stat("/opt/onbld/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)       = -1 Err#2
+        98     54 stat("/opt/SUNWspro/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)    = -1 Err#2
+        96     53 stat("/opt/SUNWmlib/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)    = -1 Err#2
+        97     54 stat("/usr/sfw/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)         = -1 Err#2
+        96     53 stat("/lib/libc.so.1\0", 0xFFBFF330, 0xFFBFF55C)          = 0 0
+       134     92 resolvepath("/lib/libc.so.1\0", 0xFFBFEF30, 0x3FF)               = 14 0
+       109     69 open("/lib/libc.so.1\0", 0x0, 0x0)                = 3 0
+       177    132 mmap(0x10000, 0x2000, 0x5)                = -12976128 0
+   [...]
+
+Now the time difference is around 40 us, and fairly consistant.
+
+
+This difference is find so long as we bear it in mind. Or, run DTrace
+on faster servers where the difference is much less.
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/dtruss_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/iosnoop_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/iosnoop_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/iosnoop_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,99 @@
+**************************************************************************
+* The following are additional notes on the iosnoop program.
+*
+* $Id: iosnoop_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* What does the output represent?
+
+The output is disk events - I/O operations that cause the disk to physically
+read or write data. The output is not application I/O events which may be
+absorbed by memory caches - many of which will be. The output really is
+physical disk events.
+
+iosnoop uses probes from the "io" provider - which traces the block device
+driver before disk events happen. disk events. The stack goes like this,
+
+       application
+         |
+         V
+       syscall
+         |
+         V
+       vfs
+         |
+         V
+       ufs/zfs/...
+         |
+         V
+       block device driver
+         |
+         V
+       physical device driver
+         |
+         V
+       disk
+
+Due to caching (after vfs) few events will make it to the disk for iosnoop
+to see. If you want to trace all I/O activity, try using syscall provider
+based scripts first.
+
+
+* What do the elapsed and delta times mean?
+
+Glad you asked!
+
+The times may *not* be as useful as they appear. I should also add that 
+this quickly becomes a very complex topic,
+
+There are two different delta times reported. -D prints the
+elapsed time from the disk request (strategy) to the disk completion
+iodone); -o prints the time for the disk to complete that event
+since it's last event (time between iodones, or since idle->strategy).
+
+The elapsed time is equivalent to the response time from the application
+request to the application completion. The delta time resembles the
+service time for this request (resembles means it will be generally 
+correct, but not 100% accurate). The service time is the the time for the
+disk to complete the request, after it has travelled through any bus or
+queue.
+
+buuuttt.... you need to think carefully about what these times mean before 
+jumping to conclusions. For example,
+
+   You troubleshoot an application by running iosnoop and filtering 
+   on your application's PID. You notice large times for the disk events
+   (responce, service, for this example it doesn't matter). 
+   Does this mean there is a problem with that application?
+   What could be happening is that a different application is also using
+   the disks at the same time, and is causing the disk heads to seek to
+   elsewhere on the disk surface - increasing both service and response time.
+
+hmmm! so you can't just look at one application, one set of numbers, and
+understand fully what is going on. 
+
+But it gets worse. Disks implement "tagged queueing", where events in the
+queue are reshuffeled to promote "elevator seeking" of the disk heads (this
+reduces head seeking). So the time for a disk event can be effected not
+just by the previous event (and previous location the heads had seeked to), 
+but the surrounding events that enter the queue.
+
+So the good and the bad. The good news is that iosnoop makes it easy to
+fetch disk event data on a live system, the bad news is that understanding
+all the data is not really easy.
+
+For further information on disk measurements see,
+
+   "How do disks really work?" - Adrian Cockcroft, SunWorld Online, June 1996
+   "Sun Performance and Tuning" - Adrian Cockcroft, Richard Pettit
+   "Solaris Internals" - Richard McDougall, Jim Mauro
+
+
+
+* The output appears shuffled?
+
+Read the answer to this in ALLsnoop_notes.txt.
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/iosnoop_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/iotop_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/iotop_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/iotop_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,48 @@
+**************************************************************************
+* The following are additional notes on the iotop program.
+*
+* $Id: iotop_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* When using -P, how can a process exceed 100% I/O?
+
+These percentages are based on disk time. They are in terms of a single disk.
+
+200% could mean 2 disks @ 100%, or 4 @ 50%, or some such combination.
+
+I could have capped it at 100% by dividing by disk count. I didn't. Disk
+utilisation is an asymmetric resource (unlike CPUs, which are (mostly)
+symmetric), so it's unfair to divide by all the disks capacity as an
+application cannot use every disks capacity (eg, writing to a /opt disk only).
+
+Would it be wise to report utilisation as 10% of overall capacity, if it
+could mean that 1 disk was SATURATED out of ten? A value of 10% could
+understate the problem.
+
+Instead I add the utilisations and don't divide. 1 disk saturated out of 10
+would be reported as 100% utilisation. This has the danger of overstating
+the problem (consider all ten disks at 10% utilisation, this would also be
+reported as 100%). 
+
+Nothing is perfect when you are summarising to a single value!
+
+
+
+* Beware of overcounting metadevices, such as SVM and Veritas.
+
+The current version of iotop reports on anything the kernel believes to be
+a block disk device. A problem happens when a metadevice contains physical
+disk devices, and iotop reports on activity to both the metadevice and
+the physical devices, which overcounts activity.
+
+Consider a metadevice that contains two physical disks which are both
+running at 100% utilised. iotop -P may report 300% utilisation, which is
+200% for the disks + 100% for the metadevice. We'd probably want to see
+a value of 200%, not 300%. Eliminating the counting of metadevices in DTrace
+isn't easy (without inelegant "hardwiring" of device types), however I do
+intend to find a way to fix this in future versions.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/iotop_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Notes/procsystime_notes.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Notes/procsystime_notes.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Notes/procsystime_notes.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,14 @@
+**************************************************************************
+* The following are extra notes on the procsystime command.
+*
+* $Id: procsystime_notes.txt 44 2007-09-17 07:47:20Z brendan $
+*
+* COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+**************************************************************************
+
+
+* Can I trust the elapsed and on-cpu times?
+
+See the documentation for this point in the dtruss_notes.txt file.
+
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Notes/procsystime_notes.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,38 @@
+Perl - DTracing Perl
+
+   These scripts trace the Perl programming language, and require a version
+   of Perl to be built with the DTrace probes patch applied.
+
+   The Perl DTrace provider was originally written by Alan Burlison, and
+   later rewritten by Richard Dawe. These scripts were written and tested
+   with Richard's patch to perl, which can be found in the comments on
+   Alan's original blog entry,
+
+	http://blogs.sun.com/alanbur/entry/dtrace_and_perl
+   
+   To get this and these scripts working, the rough steps are,
+
+	1. Download and extract perl 5.8.8 (www.cpan.org)
+	2. Download Richard's patch
+	3. Apply Richard's patch (gpatch -p1 -i patchfile)
+	4. sh Configure
+	5. make perldtrace.h
+	6. /usr/sbin/dtrace -h -s perldtrace.d -o perldtrace.h
+	7. make
+
+   If things go awry, you might find help by asking on the
+   dtrace-discuss at opensolaris.org mailing list.
+
+   Since the DTrace Perl provider may be developed further, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider perl {
+	    probe sub-entry(subroutine, file, lineno)
+	    probe sub-return(subroutine, file, lineno)
+	};
+

Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_calldist.d - measure Perl elapsed times for subroutines.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_calldist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Perl subroutines.
+ * Use pl_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Perl program
+ *		2		Type of call (sub)
+ *		3		Name of call
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = timestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->sub[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "sub", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "sub", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive subroutine elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive subroutine elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_calltime.d - measure Perl elapsed times for subroutines.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_calltime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = timestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->sub[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "sub", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "sub", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "sub", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive subroutine elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive subroutine elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_cpudist.d - measure Perl on-CPU times for subroutines.
+ *                Written for the Perl DTrace provider.
+ *
+ * $Id: pl_cpudist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Perl subrotines.
+ * Use pl_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Perl program
+ *		2		Type of call (sub)
+ *		3		Name of call
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = vtimestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->sub[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "sub", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "sub", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive subroutine on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive subroutine on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_cputime.d - measure Perl on-CPU times for subroutines.
+ *                Written for the Perl DTrace provider.
+ *
+ * $Id: pl_cputime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces Perl activity from all programs running on the system with
+ * Perl provider support.
+ *
+ * USAGE: pl_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/total)
+ *		NAME		Name of call (subroutine name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->sub[self->depth] = vtimestamp;
+}
+
+perl*:::sub-return
+/self->sub[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->sub[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->sub[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "sub", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "sub", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "sub", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive subroutine on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive subroutine on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flow.d - snoop Perl execution showing subroutine flow.
+ *             Written for the Solaris Perl DTrace provider.
+ *
+ * $Id: pl_flow.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces Perl activity from all Perl programs on the system
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flow.d			# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this subroutine belongs to
+ *		SUB		Subroutine name
+ *
+ * LEGEND:
+ *		->		subroutine entry
+ *		<-		subroutine return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "SUB");
+}
+
+perl*:::sub-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+perl*:::sub-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flowinfo.d - snoop Perl subroutine flow with info using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_flowinfo.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces activity from all Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Perl program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (sub)
+ *		SUB		Perl subroutine
+ *
+ * LEGEND:
+ *		->		subroutine entry
+ *		<-		subroutine return
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "SUB");
+}
+
+perl*:::sub-entry,
+perl*:::sub-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+perl*:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg1)), arg2, "sub", self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl*:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg1)), arg2, "sub", self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_flowtime.d - snoop Perl subroutines with flow and delta times.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_flowtime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces shell activity from Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this subroutine belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		SUB		Perl subroutine name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "SUB");
+}
+
+perl*:::sub-entry,
+perl*:::sub-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+perl*:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl*:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_malloc.d - Perl libc malloc analysis.
+ *               Written for the Perl DTrace provider.
+ *
+ * $Id: pl_malloc.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a Perl subroutine, then that subroutine is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the Perl engine.
+ *
+ * USAGE: pl_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl$target:::sub-entry
+{
+	self->file = basename(copyinstr(arg1));
+	self->name = copyinstr(arg0);
+}
+
+perl$target:::sub-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_sub_size[self->file, self->name] = sum(arg0);
+	@malloc_sub_dist[self->file, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg0);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("\nPerl malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPerl malloc byte distributions by Perl file and ");
+	printf("subroutine,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_sub_size,
+	    @malloc_sub_dist);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_malloc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_subcalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_subcalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_subcalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_subcalls.d - measure Perl subroutine calls using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_subcalls.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * This traces Perl activity from all running programs on the system
+ * which support the Perl DTrace provider.
+ *
+ * USAGE: pl_subcalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the subroutine
+ *		SUB		Perl subroutine name
+ *		CALLS		Subroutine calls during this sample
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	@subs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "SUB", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @subs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_subcalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,65 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_syscalls.d - count Perl subroutine calls and syscalls using DTrace.
+ *                 Written for the Perl DTrace provider.
+ *
+ * $Id: pl_syscalls.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * USAGE: pl_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Perl program
+ *		TYPE		Type of call (sub/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and subroutine names are printed if available.
+ * The filename for syscalls may be printed as "perl", if the program
+ * was invoked using the form "perl filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl$target:::sub-entry
+{
+	@calls[basename(copyinstr(arg1)), "sub", copyinstr(arg0)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,119 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_syscolors.d - trace Perl subroutine flow plus syscalls, in color.
+ *                  Written for the Perl DTrace provider.
+ *
+ * $Id: pl_syscolors.d 27 2007-09-13 09:26:01Z brendan $
+ *
+ * USAGE: pl_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Perl subroutine entries and returns, and indents child
+ * subroutine calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Perl program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (sub/syscall)
+ *		NAME		Perl subroutine or syscall name
+ *
+ * Filename and subroutine names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	/*
+	 * The following are terminal color escape sequences.
+	 * Change them to whatever you prefer, eg HTML font tags.
+	 */
+        color_perl = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+perl$target:::sub-entry,
+perl$target:::sub-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+perl$target:::sub-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_perl,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "sub",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+perl$target:::sub-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_perl,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "sub",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Perl/pl_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Perl/pl_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Perl/pl_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * pl_who.d - trace Perl subroutine execution by process using DTrace.
+ *            Written for the Perl DTrace provider.
+ *
+ * $Id: pl_who.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * This traces Perl activity from all Perl programs on the system that are
+ * running with Perl provider support.
+ *
+ * USAGE: pl_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Perl
+ *		UID		User ID of the owner
+ *		SUBS		Number of subroutine calls
+ *		FILE		Pathname of the Perl program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+perl*:::sub-entry
+{
+	@lines[pid, uid, copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "SUBS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Perl/pl_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+Php - DTracing PHP
+
+   These scripts trace the PHP programming language, and require the PHP 
+   DTrace extension module to be installed and enabled.
+
+   The PHP DTrace provider was written by Wes Furlong, and is available
+   for download both as source and in binary form. The easiest instructions
+   are currently at,
+
+	http://blogs.sun.com/shanti/entry/dtrace_support_for_php
+
+   which were written for Solaris and the coolstack distribution of PHP.
+   The steps are roughly,
+
+	1. Download the extension library from the URL above
+	2. Copy the library to your php/extensions/* directory
+	3. Edit your php.ini and add,
+		extension="dtrace.so"
+
+   The website with the PHP DTrace provider source is,
+
+	http://pecl.php.net/package/DTrace
+
+   Here you can fetch the source to build the library yourself, especially
+   if Solaris binaries from the previous URL aren't going to work for you.
+
+   Since the DTrace PHP provider may be developed further, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider php {
+	    probe function-entry(function, file, lineno)
+	    probe function-return(function, file, lineno)
+	};
+

Added: trunk/cddl/contrib/dtracetoolkit/Php/php_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_calldist.d - measure PHP elapsed times for functions.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_calldist.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for PHP
+ * operations. Use php_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the PHP program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,90 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_calltime.d - measure PHP elapsed times for functions.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_calltime.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_cpudist.d - measure PHP on-CPU times for functions.
+ *                 Written for the PHP DTrace provider.
+ *
+ * $Id: php_cpudist.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for PHP
+ * operations. Use php_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the PHP program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,90 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_cputime.d - measure PHP on-CPU times for functions.
+ *                 Written for the PHP DTrace provider.
+ *
+ * $Id: php_cputime.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces PHP activity from all programs running on the system with
+ * PHP provider support.
+ *
+ * USAGE: php_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call (function name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+php*:::function-return
+/arg0 && self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg1));
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flow.d - snoop PHP execution showing function flow.
+ *              Written for the PHP DTrace provider.
+ *
+ * $Id: php_flow.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces PHP activity from all PHP programs on the system
+ * running with PHP provider support.
+ *
+ * USAGE: php_flow.d			# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+php*:::function-entry
+/arg0/
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+php*:::function-return
+/arg0/
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), self->depth * 2, "", copyinstr(arg0));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flowinfo.d - snoop PHP function flow with info using DTrace.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_flowinfo.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces activity from all PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the PHP program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		PHP function
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s/%-4s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "TID",
+	    "DELTA(us)", "FILE", "LINE", "TYPE", "FUNC");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d/%-4d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, tid,
+	    this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d/%-4d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, tid,
+	    this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_flowinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,91 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_flowtime.d - snoop PHP functions with flow and delta times.
+ *                  Written for the PHP DTrace provider.
+ *
+ * $Id: php_flowtime.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces shell activity from PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		PHP function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg1)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_funccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_funccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_funccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_funccalls.d - measure PHP function calls using DTrace.
+ *                   Written for the PHP DTrace provider.
+ *
+ * $Id: php_funccalls.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This traces PHP activity from all running programs on the system
+ * which support the PHP DTrace provider.
+ *
+ * USAGE: php_funccalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the function
+ *		FUNC		PHP function name
+ *		CALLS		Function calls during this sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	@funcs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "FUNC", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @funcs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_funccalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_malloc.d - PHP libc malloc analysis.
+ *                Written for the PHP DTrace provider.
+ *
+ * $Id: php_malloc.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a PHP function, then that function is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the PHP engine.
+ *
+ * USAGE: php_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php$target:::function-entry
+/arg0/
+{
+	self->file = basename(copyinstr(arg1));
+	self->name = copyinstr(arg0);
+}
+
+php$target:::function-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_func_size[self->file, self->name] = sum(arg1);
+	@malloc_func_dist[self->file, self->name] = quantize(arg1);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg1);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg1);
+}
+
+
+dtrace:::END
+{
+	printf("\nPHP malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPHP malloc byte distributions by PHP file and ");
+	printf("function,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_func_size,
+	    @malloc_func_dist);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_malloc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,75 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_syscalls.d - count PHP function calls and syscalls using DTrace.
+ *                  Written for the PHP DTrace provider.
+ *
+ * This traces syscalls that occured during a PHP function call.
+ *
+ * $Id: php_syscalls.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * USAGE: php_syscalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		FILE		Filename of the PHP program
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as "php", if the program
+ * was invoked using the form "php filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+/arg0/
+{
+	@calls[pid, basename(copyinstr(arg1)), "func", copyinstr(arg0)] =
+	    count();
+	self->php++;
+}
+
+php*:::function-return
+/arg0/
+{
+	self->php -= self->php == 0 ? 0 : 1;
+}
+
+syscall:::entry
+/self->php > 0/
+{
+	@calls[pid, basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-6s  %-26s %-10s %-22s %8s\n", "PID", "FILE", "TYPE", "NAME",
+	    "COUNT");
+	printa(" %-6d  %-26s %-10s %-22s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_syscolors.d - trace PHP function flow plus syscalls, in color.
+ *                   Written for the PHP DTrace provider.
+ *
+ * $Id: php_syscolors.d 53 2007-09-24 04:58:38Z brendan $
+ *
+ * USAGE: php_syscolors.d	# hit Ctrl-C to end
+ *
+ * This watches PHP function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the PHP program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		PHP function or syscall name
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_php = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	self->depth = 0;
+	printf("%s %6s/%-4s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "TID",
+	    "DELTA(us)", "FILE", "LINE", "TYPE", "NAME");
+}
+
+php*:::function-entry,
+php*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+php*:::function-entry
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_php,
+	    cpu, pid, tid, this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+php*:::function-return
+/arg0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg1), "::"), copyinstr(arg0));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d/%-4d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_php,
+	    cpu, pid, tid, this->delta, basename(copyinstr(arg1)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg0), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d/%-4d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, tid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Php/php_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Php/php_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Php/php_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * php_who.d - trace PHP function execution by process using DTrace.
+ *             Written for the PHP DTrace provider.
+ *
+ * $Id: php_who.d 51 2007-09-24 00:55:23Z brendan $
+ *
+ * This traces PHP activity from all PHP programs on the system that are
+ * running with PHP provider support.
+ *
+ * USAGE: php_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of PHP
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the PHP program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+php*:::function-entry
+{
+	@lines[pid, uid, copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Php/php_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+Proc - Process based analysis
+
+   This would include activity by PID, and syscall analysis.

Added: trunk/cddl/contrib/dtracetoolkit/Proc/crash.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/crash.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/crash.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,181 @@
+#!/usr/sbin/dtrace -Cs
+/*
+ * crash.d - Crashed Application info.
+ *           Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: crash.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * When applications crash via a SIGSEGV or SIGBUS, a report of the
+ * process state is printed out.
+ *
+ * USAGE:       crash.d
+ *
+ * FIELDS:
+ *              Type		Signal type
+ *              Program		Execname of process
+ *              Agrs		Argument listing of process
+ *              PID		Process ID
+ *              TID		Thread ID
+ *              LWPs		Number of Light Weight Processes
+ *              PPID		Parent Process ID
+ *              UID		User ID
+ *              GID		Group ID
+ *              TaskID		Task ID
+ *              ProjID		Project ID
+ *              PoolID		Pool ID
+ *              ZoneID		Zone ID
+ *              zone		Zone name
+ *              CWD		Current working directory
+ *              errno		Error number of last syscall
+ *
+ * SEE ALSO: mdb, pstack, coreadm
+ *           app_crash.d - Greg Nakhimovsky & Morgan Herrington
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 29-May-2005  Brendan Gregg   Created this.
+ * 24-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option destructive
+
+dtrace:::BEGIN
+{
+	printf("Waiting for crashing applications...\n");
+}
+
+/*
+ * Print Report Header
+ */
+proc:::signal-send
+/(args[2] == SIGBUS || args[2] == SIGSEGV) && pid == args[1]->pr_pid/
+{
+	stop();
+	self->elapsed = timestamp - curthread->t_procp->p_mstart;
+	self->crash = 1;
+
+	printf("\n-----------------------------------------------------\n");
+	printf("CRASH DETECTED at %Y\n", walltimestamp);
+	printf("-----------------------------------------------------\n");
+	printf("Type:    %s\n", args[2] == SIGBUS ? "SIGBUS" : "SIGSEGV");
+	printf("Program: %s\n", execname);
+	printf("Args:    %S\n", curpsinfo->pr_psargs);
+	printf("PID:     %d\n", pid);
+	printf("TID:     %d\n", tid);
+	printf("LWPs:    %d\n", curthread->t_procp->p_lwpcnt);
+	printf("PPID:    %d\n", ppid);
+	printf("UID:     %d\n", uid);
+	printf("GID:     %d\n", gid);
+	printf("TaskID:  %d\n", curpsinfo->pr_taskid);
+	printf("ProjID:  %d\n", curpsinfo->pr_projid);
+	printf("PoolID:  %d\n", curpsinfo->pr_poolid);
+	printf("ZoneID:  %d\n", curpsinfo->pr_zoneid);
+	printf("zone:    %s\n", zonename);
+	printf("CWD:     %s\n", cwd);
+	printf("errno:   %d\n", errno);
+
+	printf("\nUser Stack Backtrace,");
+	ustack();
+
+	printf("\nKernel Stack Backtrace,");
+	stack();
+}
+
+/*
+ * Print Java Details
+ */
+proc:::signal-send
+/self->crash && execname == "java"/
+{
+	printf("\nJava Stack Backtrace,");
+	jstack();
+}
+
+/*
+ * Print Ancestors
+ */
+proc:::signal-send
+/self->crash/
+{
+	printf("\nAnsestors,\n");
+	self->level = 1;
+	self->procp = curthread->t_procp;
+	self->ptr = self->procp;
+}
+
+/* ancestory un-rolled loop, reverse order, 6 deep */
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+proc:::signal-send /self->crash && self->ptr != 0/
+{
+	printf("%*s %d %S\n", self->level += 2, "",
+	    self->ptr->p_pidp->pid_id, self->ptr->p_user.u_psargs);
+	self->ptr = self->ptr->p_parent;
+}
+
+/*
+ * Print Report Footer
+ */
+proc:::signal-send
+/self->crash/
+{
+
+	printf("\nTimes,\n");
+	printf("    User:    %d ticks\n", self->procp->p_utime);
+	printf("    Sys:     %d ticks\n", self->procp->p_stime);
+	printf("    Elapsed: %d ms\n", self->elapsed/1000000);
+
+	printf("\nSizes,\n");
+	printf("    Heap:   %d bytes\n", self->procp->p_brksize);
+	printf("    Stack:  %d bytes\n", self->procp->p_stksize);
+
+	self->ptr = 0;
+	self->procp = 0;
+	self->crash = 0;
+	self->level = 0;
+	self->elapsed = 0;
+	system("/usr/bin/prun %d", pid);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/crash.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/creatbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/creatbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/creatbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * creatbyproc.d - file creat()s by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: creatbyproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+syscall::creat*:entry { printf("%s %s", execname, copyinstr(arg0)); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/creatbyproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/dappprof
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/dappprof	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/dappprof	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,239 @@
+#!/usr/bin/sh
+#
+# dappprof - profile user and library function usage.
+#            Written using DTrace (Solaris 10 3/05).
+#
+# The default output traces user functions as they are called. Options
+#  can be used to examine libraries and timestamps.
+#
+# $Id: dappprof 65 2007-10-04 11:09:40Z brendan $
+#
+# USAGE: dappprof [-acehoTU] [-u lib] { -p PID | command }
+#
+#          -p PID          # examine this PID
+#          -a              # print all details
+#          -c              # print call counts
+#          -e              # print elapsed times (us)
+#          -o              # print on cpu times (us)
+#          -T              # print totals
+#          -u lib          # trace this library instead
+#          -U              # trace all libraries + user functions
+#          -b bufsize      # dynamic variable buf size (default is "4m")
+#  eg,
+#       dappprof df -h       # run and examine the "df -h" command
+#       dappprof -p 1871     # examine PID 1871
+#
+# The elapsed times are interesting, to help identify calls that take
+#  some time to complete (during which the process may have context
+#  switched off the CPU). 
+#
+# SEE ALSO: dapptrace      # DTraceToolkit
+#           dtruss         # DTraceToolkit
+#           apptrace           
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 16-May-2005   Brendan Gregg   Created this.
+# 17-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_totals=0; opt_pid=0; pid=0; opt_lib=0; lib=""
+opt_elapsed=0; opt_cpu=0; opt_counts=0; opt_liball=0
+opt_command=0; command=""; opt_buf=0; buf="4m"
+
+### Process options
+while getopts ab:cehop:Tu:U name
+do
+        case $name in
+        a)      opt_liball=1; opt_counts=1; opt_elapsed=1; opt_cpu=1 
+		opt_totals=1 ;;
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        u)      opt_lib=1; lib=$OPTARG ;;
+        U)      opt_liball=1 ;; 
+	c)	opt_counts=1 ;;
+	e)	opt_elapsed=1 ;;
+	o)	opt_cpu=1 ;;
+	T)	opt_totals=1 ;;
+        h|?)    cat <<-END >&2
+		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
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"
+fi
+if [ $opt_elapsed -eq 0 -a $opt_cpu -eq 0 -a $opt_counts -eq 0 ]; then
+        opt_elapsed=1;
+fi
+
+
+### Probe logic
+if [ $opt_liball -eq 1 ]; then
+	probe_entry='pid$target:::entry'
+	probe_return='pid$target:::return'
+elif [ $opt_lib -eq 1 ]; then
+	probe_entry='pid$target:'$lib'::entry'
+	probe_return='pid$target:'$lib'::return'
+else
+ 	probe_entry='pid$target:a.out::entry'
+ 	probe_return='pid$target:a.out::return'
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_command   = '$opt_command';
+ inline int OPT_liball    = '$opt_liball';
+ inline int OPT_elapsed   = '$opt_elapsed';
+ inline int OPT_cpu       = '$opt_cpu';
+ inline int OPT_counts    = '$opt_counts';
+ inline int OPT_totals    = '$opt_totals';
+ inline int OPT_pid       = '$opt_pid';
+ inline int PID           = '$pid';
+ inline string NAME       = "'$pname'";
+
+ dtrace:::BEGIN 
+ /! OPT_command/
+ {
+	printf("Tracing... Hit Ctrl-C to end...\n");
+ }
+
+ /*
+  * Save syscall entry info
+  */
+ '$probe_entry'
+ {
+        /* set function depth */
+        this->fdepth = ++fdepth[probefunc];
+
+	/* set start details */
+	self->start[probefunc,this->fdepth] = timestamp;
+	self->vstart[probefunc,this->fdepth] = vtimestamp;
+
+	/* count occurances */
+	OPT_counts && OPT_liball ? @Counts[probemod,probefunc] = count() : 1;
+	OPT_counts && ! OPT_liball ? @Counts[probefunc] = count() : 1;
+	OPT_counts && OPT_totals && OPT_liball ? 
+	    @Counts["TOTAL:",""] = count() : 1;
+	OPT_counts && OPT_totals && ! OPT_liball ? 
+	    @Counts["TOTAL:"] = count() : 1;
+ }
+
+ /*
+  * Print return data
+  */
+ /* print 3 arg output - default */
+ '$probe_return'
+ /self->start[probefunc,fdepth[probefunc]]/
+ {
+        /* fetch function depth */
+        this->fdepth = fdepth[probefunc];
+
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start[probefunc,this->fdepth];
+	self->start[probefunc,this->fdepth] = 0;
+	this->cpu = vtimestamp - self->vstart[probefunc,this->fdepth];
+	self->vstart[probefunc,this->fdepth] = 0;
+
+	/* save elapsed times */
+	OPT_elapsed && OPT_liball ? 
+	    @Elapsed[probemod,probefunc] = sum(this->elapsed) : 1;
+	OPT_elapsed && ! OPT_liball ? 
+	    @Elapsed[probefunc] = sum(this->elapsed) : 1;
+	OPT_elapsed && OPT_totals && OPT_liball ? 
+	    @Elapsed["TOTAL:",""] = sum(this->elapsed) : 1;
+	OPT_elapsed && OPT_totals && ! OPT_liball ? 
+	    @Elapsed["TOTAL:"] = sum(this->elapsed) : 1;
+
+	/* save cpu times */
+	OPT_cpu && OPT_liball ? @CPU[probemod,probefunc] = sum(this->cpu) : 1;
+	OPT_cpu && ! OPT_liball ? @CPU[probefunc] = sum(this->cpu) : 1;
+	OPT_cpu && OPT_totals && OPT_liball ? 
+	    @CPU["TOTAL:",""] = sum(this->cpu) : 1;
+	OPT_cpu && OPT_totals && ! OPT_liball ? 
+	    @CPU["TOTAL:"] = sum(this->cpu) : 1;
+	
+ }
+
+ /* print counts */
+ dtrace:::END
+ {
+	/* print counts */
+	OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
+	OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n", at Counts) : 1;
+	OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n", at Counts) : 1;
+
+	/* print elapsed times */
+	OPT_elapsed ? printf("\n%-49s %16s\n","CALL","ELAPSED") : 1;
+	OPT_elapsed && OPT_liball ? printa("%-16s %-32s %@16d\n", at Elapsed) : 1;
+	OPT_elapsed && ! OPT_liball ? printa("%-49s %@16d\n", at Elapsed) : 1;
+
+	/* print cpu times */
+	OPT_cpu ? printf("\n%-49s %16s\n","CALL","CPU") : 1;
+	OPT_cpu && OPT_liball ? printa("%-16s %-32s %@16d\n", at CPU) : 1;
+	OPT_cpu && ! OPT_liball ? printa("%-49s %@16d\n", at CPU) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+fi
+

Added: trunk/cddl/contrib/dtracetoolkit/Proc/dapptrace
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/dapptrace	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/dapptrace	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,259 @@
+#!/usr/bin/sh
+#
+# dapptrace - trace user and library function usage.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# The default output traces user functions as they are called. Options
+#  can be used to examine libraries and timestamps.
+#
+# $Id: dapptrace 65 2007-10-04 11:09:40Z brendan $
+#
+# USAGE: dapptrace [-acdeFlhoU] [-u lib] { -p PID | command }
+#
+#          -p PID          # examine this PID
+#          -a              # print all details
+#          -c              # print call counts
+#          -d              # print relative timestamps (us)
+#          -e              # print elapsed times (us)
+#          -F              # print flow indentation
+#          -l              # print pid/lwpid per line
+#          -o              # print on cpu times (us)
+#          -u lib          # trace this library instead
+#          -U              # trace all libraries + user functions
+#          -b bufsize      # dynamic variable buf size (default is "4m")
+#  eg,
+#       dapptrace df -h       # run and examine the "df -h" command
+#       dapptrace -p 1871     # examine PID 1871
+#       dapptrace -Fp 1871    # print using flow indents
+#       dapptrace -eop 1871   # print elapsed and CPU times
+#
+# The elapsed times are interesting, to help identify calls that take
+#  some time to complete (during which the process may have context
+#  switched off the CPU). 
+#
+# SEE ALSO: dappprof       # DTraceToolkit
+#           dtruss         # DTraceToolkit
+#           apptrace
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 16-May-2005   Brendan Gregg   Created this.
+# 17-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; pid=0; opt_indent=0; opt_lib=0; lib=""
+opt_elapsed=0; opt_cpu=0; opt_counts=0; 
+opt_relative=0; opt_printid=0; opt_liball=0
+opt_command=0; command=""; opt_buf=0; buf="4m"
+
+### Process options
+while getopts ab:cdeFhlop:u:U name
+do
+        case $name in
+        a)      opt_liball=1; opt_counts=1; opt_relative=1; opt_elapsed=1
+		opt_indent=1; opt_printid=1; opt_cpu=1 ;; 
+	b)	opt_buf=1; buf=$OPTARG ;;
+        p)      opt_pid=1; pid=$OPTARG ;;
+        u)      opt_lib=1; lib=$OPTARG ;;
+        U)      opt_liball=1 ;; 
+	c)	opt_counts=1 ;;
+	d)	opt_relative=1 ;;
+	e)	opt_elapsed=1 ;;
+	F)	opt_indent=1 ;;
+	l)	opt_printid=1 ;;
+	o)	opt_cpu=1 ;;
+        h|?)    cat <<-END >&2
+		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
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 ]; then
+	opt_command=1
+	if [ "$*" = "" ]; then
+		$0 -h
+		exit
+	fi
+	command="$*"
+fi
+
+### Probe logic
+if [ $opt_liball -eq 1 ]; then
+	probe_entry='pid$target:::entry'
+	probe_return='pid$target:::return'
+elif [ $opt_lib -eq 1 ]; then
+	probe_entry='pid$target:'$lib'::entry'
+	probe_return='pid$target:'$lib'::return'
+else
+ 	probe_entry='pid$target:a.out::entry'
+ 	probe_return='pid$target:a.out::return'
+fi
+
+#################################
+# --- Main Program, DTrace ---
+#
+
+### Define D Script
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_command   = '$opt_command';
+ inline int OPT_liball    = '$opt_liball';
+ inline int OPT_indent    = '$opt_indent';
+ inline int OPT_printid   = '$opt_printid';
+ inline int OPT_relative  = '$opt_relative';
+ inline int OPT_elapsed   = '$opt_elapsed';
+ inline int OPT_cpu       = '$opt_cpu';
+ inline int OPT_counts    = '$opt_counts';
+ inline int OPT_pid       = '$opt_pid';
+ inline int PID           = '$pid';
+ inline string NAME       = "'$pname'";
+
+ dtrace:::BEGIN 
+ {
+	/* print header */
+	OPT_printid  ? printf("%-8s  ","PID/LWP") : 1;
+	OPT_relative ? printf("%8s ","RELATIVE") : 1;
+	OPT_elapsed  ? printf("%7s ","ELAPSD") : 1;
+	OPT_cpu      ? printf("%6s ","CPU") : 1;
+	printf("CALL(args) \t\t = return\n");
+
+	/* indent depth */
+	depth = 0;
+ }
+
+ /*
+  * Save syscall entry info
+  */
+ '$probe_entry'
+ {
+	/* set function depth */
+	this->fdepth = ++fdepth[probefunc];
+	depth += 2;
+
+	/* set start details */
+	self->start[probefunc,this->fdepth] = timestamp;
+	self->vstart[probefunc,this->fdepth] = vtimestamp;
+
+	/* count occurances */
+	OPT_counts && OPT_liball ? @Counts[probemod,probefunc] = count() : 1;
+	OPT_counts && ! OPT_liball ? @Counts[probefunc] = count() : 1;
+
+	/* print optional fields */
+	OPT_printid  ? printf("%5d/%d:  ",pid,tid) : 1;
+	OPT_relative ? printf("%8d ",vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("      . ") : 1;
+	OPT_cpu      ? printf("     . ") : 1;
+	OPT_indent   ? printf("%*s",depth,"") : 1;
+
+	/* print main data */
+	printf("-> ");
+	OPT_liball ? printf("%s:",probemod) : 1;
+	printf("%s(0x%X, 0x%X, 0x%X)\t\t\n",probefunc,arg0,arg1,arg2);
+
+ }
+
+ /*
+  * Print return data
+  */
+ /* print 3 arg output - default */
+ '$probe_return'
+ /self->start[probefunc,fdepth[probefunc]]/
+ {
+	/* fetch function depth */
+	this->fdepth = fdepth[probefunc];
+
+	/* calculate elapsed time */
+	this->elapsed = timestamp - self->start[probefunc,this->fdepth];
+	self->start[probefunc,this->fdepth] = 0;
+	this->cpu = vtimestamp - self->vstart[probefunc,this->fdepth];
+	self->vstart[probefunc,this->fdepth] = 0;
+
+	/* print optional fields */
+	OPT_printid  ? printf("%5d/%d:  ",pid,tid) : 1;
+	OPT_relative ? printf("%8d ",vtimestamp/1000) : 1;
+	OPT_elapsed  ? printf("%7d ",this->elapsed/1000) : 1;
+	OPT_cpu      ? printf("%6d ",this->cpu/1000) : 1;
+	OPT_indent   ? printf("%*s",depth,"") : 1;
+
+	/* print main data */
+	printf("<- ");
+	OPT_liball ? printf("%s:",probemod) : 1;
+	printf("%s = %d\n",probefunc,(int)arg0);
+	depth -= 2;
+	fdepth[probefunc]--;
+ }
+
+ /* reset indent depth */
+ profile:::tick-1sec
+ {
+	/* 
+	 * some probes generated by the pid provider have entries
+ 	 * but not returns. this is a klude to fix that problem. this
+	 * also explains fdepth[probefunc] rather than a single depth.
+	 */
+	depth = 0;
+ }
+
+ /* print counts */
+ dtrace:::END
+ {
+	OPT_counts ? printf("\n%-49s %16s\n","CALL","COUNT") : 1;
+	OPT_counts && OPT_liball ? printa("%-16s %-32s %@16d\n", at Counts) : 1;
+	OPT_counts && ! OPT_liball ? printa("%-49s %@16d\n", at Counts) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -x dynvarsize=$buf -x evaltime=exec -n "$dtrace" \
+	    -c "$command" >&2
+else
+	/usr/sbin/dtrace -x dynvarsize=$buf -n "$dtrace" -p "$pid" >&2
+fi
+

Added: trunk/cddl/contrib/dtracetoolkit/Proc/fddist
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/fddist	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/fddist	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+#!/usr/bin/sh
+#
+# fddist - file descriptor usage distributions.
+#          Written using DTrace (Solaris 10 3/05).
+#
+# This prints distributions for read and write events by file descriptor,
+# by process. This can be used to determine which file descriptor a 
+# process is doing the most I/O with.
+#
+# $Id: fddist 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:        fddist [-r|-w]      # hit Ctrl-C to end sample
+#
+# FIELDS:
+#               EXEC       process name
+#               PID        process ID
+#               value      file descriptor
+#               count      number of events
+#
+# BASED ON: /usr/demo/dtrace/lquantize.d
+#
+# SEE ALSO:
+#           DTrace Guide "Aggregations" chapter (docs.sun.com)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_read=0; opt_write=0
+
+### Process options
+while getopts hrw name
+do
+	case $name in
+	r)      opt_read=1 ;;
+	w)      opt_write=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: fddist [-r|-w] 
+		              -r        # reads only
+		              -w        # writes only
+		  eg,
+		       fddist           # default, r+w counts
+		       fddist -r        # read count only
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_read -eq 0 -a $opt_write -eq 0 ]; then
+	opt_read=1; opt_write=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline int OPT_read   = '$opt_read';
+ inline int OPT_write  = '$opt_write';
+ inline int FDMAX      = 255;
+
+ /* print header */
+ dtrace:::BEGIN
+ {
+	printf("Tracing ");
+	OPT_read && OPT_write ? printf("reads and writes") : 1;
+	OPT_read && ! OPT_write ? printf("reads") : 1;
+	! OPT_read && OPT_write ? printf("writes") : 1;
+	printf("... Hit Ctrl-C to end.\n");
+ }
+
+ /* sample reads */
+ syscall::*read*:entry
+ /OPT_read/
+ {
+	@Count[execname, pid] = lquantize(arg0, 0, FDMAX, 1);
+ }
+
+ /* sample writes */
+ syscall::*write*:entry
+ /OPT_write/
+ {
+	@Count[execname, pid] = lquantize(arg0, 0, FDMAX, 1);
+ }
+
+ /* print report */
+ dtrace:::END
+ {
+	printa("EXEC: %-16s PID: %d\n%@d\n", at Count);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Proc/filebyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/filebyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/filebyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * filebyproc.d - snoop files opened by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: filebyproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+syscall::open*:entry { printf("%s %s", execname, copyinstr(arg0)); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/filebyproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/kill.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/kill.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/kill.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -qs
+/*
+ * kill.d - watch process signals as they are sent (eg, kill -9).
+ *          Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: kill.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       kill.d
+ *
+ * FIELDS:
+ *              FROM     source PID
+ *              COMMAND  source command name
+ *              TO       destination PID
+ *              SIG      destination signal ("9" for a kill -9)
+ *              RESULT   result of signal (-1 is for failure)
+ *
+ * SEE ALSO: Chapter 25, Solaris Dynamic Tracing Guide, docs.sun.com,
+ *           for a solution using proc:::signal-send.
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2004  Brendan Gregg   Created this.
+ * 28-Jun-2005	   "      "	Last update.
+ */
+
+dtrace:::BEGIN
+{
+	/* Print header */
+	printf("%5s %12s %5s %-6s %s\n",
+	    "FROM", "COMMAND", "SIG", "TO", "RESULT");
+}
+
+syscall::kill:entry
+{
+	/* Record target PID and signal */
+	self->target = arg0;
+	self->signal = arg1;
+}
+
+syscall::kill:return
+{
+	/* Print source, target, and result */
+	printf("%5d %12s %5d %-6d %d\n",
+	    pid, execname, self->signal, self->target, (int)arg0);
+
+	/* Cleanup memory */
+	self->target = 0;
+	self->signal = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/kill.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/lastwords
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/lastwords	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/lastwords	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,90 @@
+#!/usr/bin/ksh
+#
+# lastwords - print last few syscalls for dying processes.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: lastwords 3 2007-08-01 10:50:08Z brendan $
+#
+# This prints the last few system calls for processes matching
+# the given name, when they exit. This makes use of a ring buffer
+# so that the impact on the system is minimised.
+#
+# USAGE: lastwords command
+#    eg,
+#        lastwords netscape
+#
+# FIELDS:
+#           TIME     Time of syscall return, ns
+#           PID      Process ID
+#           EXEC     Process name (execname)
+#           SYSCALL  System call
+#           RETURN   Return value for system call
+#           ERR      errno for system call
+#
+# BASED ON: /usr/demo/dtrace/ring.d
+#
+# SEE ALSO: DTrace Guide "Buffers and Buffering" chapter (docs.sun.com)
+#           dtruss (DTraceToolkit)
+#
+# PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+### Usage
+function usage
+{
+	cat <<-END >&2
+	USAGE: lastwords command
+	   eg,
+	       lastwords netscape
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# != 1 )); then
+        usage
+fi
+command=$1
+
+print "Tracing... Waiting for $command to exit..."
+
+### Run DTrace
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option bufpolicy=ring
+ #pragma D option bufsize=16k
+
+ syscall:::return
+ /execname == $$1/
+ {
+	/* buffer syscall details */
+	printf("%-18d %5d %12s %12s %10x %3d\n",
+	    timestamp,pid,execname,probefunc,(int)arg0,errno);
+ }
+
+ proc::proc_exit:exit
+ /execname == $$1/
+ {
+	/* print, erm, footer */
+	printf("%-18s %5s %12s %12s %10s %3s\n",
+	    "TIME","PID","EXEC","SYSCALL","RETURN","ERR");
+	exit(0);
+ }
+' "$command"

Added: trunk/cddl/contrib/dtracetoolkit/Proc/mmapfiles.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/mmapfiles.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/mmapfiles.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,62 @@
+#!/usr/sbin/dtrace -s
+/*
+ * mmapfiles.d - mmap'd files by process.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: mmapfiles.d 14 2007-09-11 08:03:35Z brendan $
+ *
+ * USAGE:       mmapfiles.d    # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		MMAPS		number of mmaps
+ *		CMD		process name
+ *		PATHNAME	pathname of mmap'd file
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 18-Oct-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::mmap:entry
+/(int)arg4 > 0/
+{
+	/*
+	 * Fetch filename
+	 */
+	this->filep = curthread->t_procp->p_user.u_finfo.fi_list[arg4].uf_file;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/* Store Details */
+	@hits[execname, self->vpath] = count();
+}
+
+dtrace:::END
+{
+	/* Print Details */
+	printf("%5s %-16s %s\n", "MMAPS", "CMD", "PATHNAME");
+	printa("%@5d %-16s %s\n", @hits);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/mmapfiles.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/newproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/newproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/newproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * newproc.d - snoop new processes as they are executed. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: newproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+proc:::exec-success { trace(curpsinfo->pr_psargs); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/newproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/pathopens.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/pathopens.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/pathopens.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,100 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pathopens.d - full pathnames opened successfully count.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This program prints a count of the number of times files have been
+ * successfully opened. This is somewhat special in that the full pathname
+ * is calculated, even if the file open referred to a relative pathname.
+ *
+ * $Id: pathopens.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	fileopens.d
+ *
+ * FIELDS:
+ *		PATHNAME	full pathname
+ *		COUNT		number of successful opens
+ *
+ * Similar to a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 12-Jan-2006	   "	  "	Fixed known error.
+ * 20-Apr-2006	   "	  "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::open*:entry
+{
+	self->pathp = arg0;
+	self->ok = 1;
+}
+
+syscall::open*:return
+/self->ok && arg0 != -1/
+{
+	self->file = copyinstr(self->pathp);
+	self->char0 = copyin(self->pathp, 1);
+
+	/* fetch current working directory */
+	this->path = curthread->t_procp->p_user.u_cdir->v_path;
+
+	/*
+	 * Make the full pathname
+	 *
+	 * This routine takes the cwd and the filename, and generates a
+	 * full pathname. Sometimes the filename is absolute, so we must
+	 * ignore the cwd. This also checks if the cwd ends in an
+	 * unnecessary '/'.
+	 */
+	this->len = strlen(this->path);
+	self->join = *(char *)(this->path + this->len - 1) == '/' ?  "" : "/";
+	self->dir = strjoin(cwd, self->join);
+	self->dir = *(char *)self->char0 == '/' ? "" : self->dir;
+	self->full = strjoin(self->dir, self->file);
+
+	/* save to aggregation */
+	@num[self->full] = count();
+
+	/* cleanup */
+	self->join  = 0;
+	self->full  = 0;
+	self->dir   = 0;
+	self->file  = 0;
+	self->char0 = 0;
+}
+
+syscall::open*:return
+/self->ok/
+{
+	/* cleanup */
+	self->ok    = 0;
+	self->pathp = 0;
+}
+
+dtrace:::END
+{
+	printf("%6s %s\n", "COUNT", "PATHNAME");
+	printa("%@6d %s\n", @num);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/pathopens.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/pfilestat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/pfilestat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/pfilestat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,282 @@
+#!/usr/bin/sh
+#
+# pfilestat
+#
+# This prints I/O statistics for each file descriptor within a process.
+# In particular, the time break down during read() and write() events is
+# measured.
+#
+# $Id: pfilestat 4 2007-08-01 11:01:38Z brendan $
+#
+# USAGE:        pfilestat [-r|-w] pid
+#
+# FIELDS:
+#               STATE      microstate: running, sleeping, waitcpu, read, write
+#               FDUM       File Descriptor ID
+#               Time       Percentage of wallclock time in each STATE
+#               File       Name of file, if known
+# 
+# COPYRIGHT: Copyright (c) 2006 Richard McDougall.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# ToDo:
+#	Trace readv() and writev().
+#
+# 20-Feb-2006   Richard McDougall	created this.
+# 24-Feb-2006   Brendan Gregg		tweaked code.
+# 20-Mar-2006      "      " 		tweaked code.
+# 20-Mar-2006      "      " 		last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_read=0; opt_write=0
+
+### Process options
+while getopts hrw name
+do
+	case $name in
+	r)      opt_read=1 ;;
+	w)      opt_write=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: pfilestat [-r|-w] pid
+		              -r           # reads only
+		              -w           # writes only
+		  eg,
+		       pfilestat pid       # default, r+w counts
+		       pfilestat -r pid    # read count only
+		END
+		exit 1
+	esac
+done
+shift `expr $OPTIND - 1`
+
+PID=$1
+clearstr=`clear`
+
+if [ -z "$PID" ]
+then
+	echo "Must supply pid"
+	exit 1
+fi
+
+### Option logic
+if [ $opt_read -eq 0 -a $opt_write -eq 0 ]; then
+	opt_read=1; opt_write=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ inline string CLEAR   = "'$clearstr'";
+ inline int OPT_read   = '$opt_read';
+ inline int OPT_write  = '$opt_write';
+ inline int PID        = '$PID';
+
+ unsigned long long totaltime;
+ unsigned long long totalbytes;
+
+ enum runstate {
+	READ,
+	WRITE,
+	OTHER
+ };
+
+ /* print header */
+ dtrace:::BEGIN
+ {
+	printf("Tracing ");
+	OPT_read && OPT_write ? printf("reads and writes") : 1;
+	OPT_read && ! OPT_write ? printf("reads") : 1;
+	! OPT_read && OPT_write ? printf("writes") : 1;
+	printf("...");
+	totaltime = 0;
+	totalbytes = 0;
+	last = timestamp;
+	stamp = timestamp;
+ }
+
+ /* sample reads */
+ syscall::read:entry,
+ syscall::pread*:entry
+ /pid == PID && OPT_read/
+ {
+	runstate = READ;
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+
+	self->fd = arg0 + 1;
+ }
+
+ fbt::fop_read:entry,
+ fbt::fop_write:entry
+ /self->fd/
+ {
+	self->path = args[0]->v_path == 0 ? "<none>" : 
+	    cleanpath(args[0]->v_path);
+ }
+
+ syscall::read:return,
+ syscall::pread*:return
+ /pid == PID && OPT_read/
+ {
+	runstate = OTHER;
+	this->bytes = (int)arg0 > 0 ? (int)arg0 : 0;
+	@logical["read", self->fd - 1, self->path] = sum(timestamp - last);
+	@bytes["read", self->fd - 1, self->path] = sum(this->bytes);
+	totalbytes += this->bytes;
+	totaltime += timestamp - last;
+	last = timestamp;
+	self->path = 0;
+	self->fd = 0;
+ }
+
+
+ /* sample writes */
+ syscall::write:entry,
+ syscall::pwrite*:entry
+ /pid == PID && OPT_write/
+ {
+	runstate = WRITE;
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+
+	self->fd = (int)arg0 + 1;
+ }
+
+ syscall::write:return,
+ syscall::pwrite*:return
+ /pid == PID && OPT_write/
+ {
+	runstate = OTHER;
+	this->bytes = (int)arg0 > 0 ? (int)arg0 : 0;
+	@logical["write", self->fd - 1, self->path] = sum(timestamp - last);
+	@bytes["write", self->fd - 1, self->path] = sum(this->bytes);
+	totalbytes += this->bytes;
+	totaltime += timestamp - last;
+	last = timestamp;
+	self->path = 0;
+	self->fd = 0;
+ }
+
+ sched:::on-cpu
+ /pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+
+ sched:::off-cpu
+ /pid == PID/
+ {
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::sleep
+ /pid == PID/
+ {
+	@logical["running", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == OTHER/
+ {
+	@logical["sleep", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == READ/
+ {
+	@logical["sleep-r", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::wakeup
+ /args[1]->pr_pid == PID && runstate == WRITE/
+ {
+	@logical["sleep-w", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::enqueue
+ /args[1]->pr_pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ sched:::dequeue
+ /args[1]->pr_pid == PID/
+ {
+	@logical["waitcpu", (uint64_t)0, ""] = sum(timestamp - last);
+	totaltime += timestamp - last;
+	last = timestamp;
+ }
+
+ /* print report */
+ profile:::tick-5s
+ {
+	printf("%s", CLEAR);
+	normalize(@logical, totaltime / 100);
+	trunc(@logical, 10);
+	printf("%10s %7s %9s %-44s\n", "STATE", "FDNUM", "Time", "Filename");
+	printa("%10s %7d %@8d%% %-44.44s\n", @logical);
+	trunc(@logical);
+
+	delta = timestamp - stamp;
+	stamp = timestamp;
+	normalize(@bytes, (1024 * delta) / 1000000000);
+	trunc(@bytes, 10);
+	printf("\n%10s %7s %9s %-44s\n", "STATE", "FDNUM", "KB/s",
+	    "Filename");
+	printa("%10s %7d %@9d %-44.44s\n", @bytes);
+	trunc(@bytes);
+
+	printf("\nTotal event time (ms): %d   Total Mbytes/sec: %d\n",
+	    totaltime / 1000000,
+	    (totalbytes * 1000000000) / (delta * 1048576));
+
+	totaltime = 0;
+	totalbytes = 0;
+	last = timestamp;
+ }
+
+ dtrace:::END
+ {
+	trunc(@logical);
+	trunc(@bytes);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Proc/pidpersec.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/pidpersec.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/pidpersec.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -s
+/*
+ * pidpersec.d - print new PIDs per sec.
+ *               Written using DTrace (Solaris 10 3/05)
+ *
+ * This script prints the number of new processes created per second.
+ *
+ * $Id: pidpersec.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE: pidpersec.d
+ *
+ * FIELDS:
+ *
+ *          TIME        Time, as a string
+ *          LASTPID     Last PID created
+ *          PID/s       Number of processes created per second
+ *
+ * SEE ALSO: execsnoop
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jun-2005  Brendan Gregg   Created this.
+ * 09-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("%-22s %8s %6s\n", "TIME", "LASTPID", "PID/s");
+	pids = 0;
+}
+
+proc:::exec-success
+{
+	pids++;
+}
+
+profile:::tick-1sec
+{
+	printf("%-22Y %8d %6d\n", walltimestamp, `mpid, pids);
+	pids = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/pidpersec.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/readbytes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/readbytes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/readbytes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * readbytes.d - read bytes by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: readbytes.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+sysinfo:::readch { @bytes[execname] = sum(arg0); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/readbytes.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/readdist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/readdist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/readdist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * readdist.d - read distribution by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: readdist.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+sysinfo:::readch { @dist[execname] = quantize(arg0); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/readdist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/rwbbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/rwbbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/rwbbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbbypid.d - read/write bytes by PID.
+ *              Written using DTrace (Solaris 10 3/05)
+ *
+ * This script tracks the bytes read and written at the syscall level
+ * by processes, printing the totals in a report. This is tracking the
+ * successful number of bytes read or written.
+ *
+ * $Id: rwbbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	rwbbypid.d		# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		DIR		direction, Read or Write
+ *		BYTES		total bytes
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo:::readch
+{
+	@bytes[pid, execname, "R"] = sum(arg0);
+}
+
+sysinfo:::writech
+{
+	@bytes[pid, execname, "W"] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %4s %16s\n", "PID", "CMD", "DIR", "BYTES");
+	printa("%6d %-24s %4s %@16d\n", @bytes);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/rwbbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/rwbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/rwbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/rwbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbypid.d - read/write calls by PID.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This script tracks the number of reads and writes at the syscall level
+ * by processes, printing the totals in a report. This matches reads
+ * and writes whether they succeed or not.
+ *
+ * $Id: rwbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	rwbypid.d			# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		DIR		Read or Write
+ *		COUNT		total calls
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 28-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall::*read*:entry
+{
+	@calls[pid, execname, "R"] = sum(arg0);
+}
+
+syscall::*write*:entry
+{
+	@calls[pid, execname, "W"] = sum(arg0);
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %4s %8s\n", "PID", "CMD", "DIR", "COUNT");
+	printa("%6d %-24s %4s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/rwbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/rwbytype.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/rwbytype.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/rwbytype.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * rwbytype.d - read/write bytes by vnode type.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This program identifies the vnode type of read/write activity - whether
+ * that is for regular files, sockets, character special devices, etc.
+ *
+ * $Id: rwbytype.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       rwbytype.d    # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		number of rwbytype
+ *		CMD		process name
+ *		VTYPE		vnode type (describes I/O type)
+ *		DIR		direction (Read/Write)
+ *		BYTES		bytes transferred
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 18-Oct-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+typedef struct vtype2str {
+	string code;
+};
+
+translator struct vtype2str < int T > {
+	/* the order has been picked for performance reasons */
+	code =
+	    T == 1 ? "reg"   :
+	    T == 9 ? "sock"  :
+	    T == 4 ? "chr"   :
+	    T == 6 ? "fifo"  :
+	    T == 8 ? "proc"  :
+	    T == 2 ? "dir"   :
+	    T == 3 ? "blk"   :
+	    T == 5 ? "lnk"   :
+	    T == 7 ? "door"  :
+	    T == 10 ? "port" :
+	    T == 11 ? "bad"  : "non";
+};
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+fbt::fop_read:entry,
+fbt::fop_write:entry
+{
+	self->type = xlate <struct vtype2str *>(args[0]->v_type)->code;
+	self->size = args[1]->uio_resid;
+	self->uiop = args[1];
+}
+
+fbt::fop_read:return
+/self->uiop/
+{
+	this->resid = self->uiop->uio_resid;
+	@bytes[pid, execname, self->type, "R"] = sum(self->size - this->resid);
+	self->type = 0;
+	self->size = 0;
+	self->uiop = 0;
+}
+
+/* this is delibrately redundant code for performance reasons */
+fbt::fop_write:return
+/self->uiop/
+{
+	this->resid = self->uiop->uio_resid;
+	@bytes[pid, execname, self->type, "W"] = sum(self->size - this->resid);
+	self->type = 0;
+	self->size = 0;
+	self->uiop = 0;
+}
+
+dtrace:::END
+{
+	printf("%-6s %-16s %6s %4s %9s\n",
+	    "PID", "CMD", "VTYPE", "DIR", "BYTES");
+	printa("%-6d %-16s %6s %4s %@9d\n", @bytes);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/rwbytype.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/sampleproc
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/sampleproc	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/sampleproc	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,105 @@
+#!/usr/bin/ksh
+#
+# sampleproc - sample processes on the CPUs.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program samples which process is on each CPU, at a particular
+# configurable rate. This can be used as an estimate for which process
+# is consuming the most CPU time.
+#
+# $Id: sampleproc 8 2007-08-06 05:55:26Z brendan $
+# 
+# USAGE:	sampleproc [hertz]	# hit Ctrl-C to end sample
+#
+# FIELDS:
+#		PID        Process ID
+#		COMMAND    Command name
+#		COUNT      Number of samples
+#		PERCENT    Percent of CPU usage
+#
+# BASED ON: /usr/demo/dtrace/prof.d
+#
+# SEE ALSO:
+#           DTrace Guide "profile Provider" chapter (docs.sun.com)
+#
+# PORTIONS: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 09-Jun-2005   Brendan Gregg   Created this.
+# 09-Jul-2005	   "      "	Last update.
+
+### Usage
+function usage
+{
+        cat <<-END >&2
+	USAGE: sampleproc [hertz]
+	   eg,
+	       sampleproc               # defaults to 100 hertz
+	       sampleproc 1000          # 1000 hertz
+	END
+	exit 1
+}
+
+### Process arguments
+if (( $# == 0 )); then
+        hertz=100
+elif (( $# == 1 )); then
+	hertz=$1
+	if [[ "$hertz" = *[a-zA-Z]* ]]; then
+		print "ERROR2: $hertz hertz is invalid." >&2
+		exit 2
+	fi
+	if (( hertz > 5000 )); then
+		print "ERROR3: $hertz hertz is too fast (max 5000)." >&2
+		exit 3
+	fi
+	if (( hertz < 1 )); then
+		print "ERROR4: $hertz hertz is too low (min 1)." >&2
+		exit 4
+	fi
+else
+	usage
+fi
+
+### Run DTrace
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+
+ dtrace:::BEGIN
+ {
+	printf("Sampling at %d hertz... Hit Ctrl-C to end.\n",$1);
+	self->start = timestamp;
+ }
+
+ profile:::profile-$1
+ {
+	@Proc[pid, execname] = count();
+	@BigProc[pid, execname] = sum(1000); /* dont ask */
+ }
+
+ dtrace:::END
+ {
+	this->end = timestamp;
+
+	printf("%5s %-20s %10s\n", "PID", "CMD", "COUNT");
+	printa("%5d %-20s %10 at d\n", @Proc);
+
+	normalize(@BigProc, 
+	    ((`ncpus_online * $1 * (this->end - self->start))/100000000));
+	printf("\n%5s %-20s %10s\n", "PID", "CMD", "PERCENT");
+	printa("%5d %-20s %10 at d\n", @BigProc);
+ }
+' $hertz

Added: trunk/cddl/contrib/dtracetoolkit/Proc/shortlived.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/shortlived.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/shortlived.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -qs
+/*
+ * shortlived.d - determine time spent by short lived processes.
+ *                Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: shortlived.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:    shortlived.d	# wait, then hit Ctrl-C
+ *
+ * Applications that run many short lived processes can cause load
+ * on the system that is difficult to identify - the processes
+ * aren't sampled in time by programs such as prstat. This program
+ * illustrates how much time was spent processing those extra
+ * processes, and a table of process name by total times for each.
+ *
+ * SEE ALSO: execsnoop
+ *
+ * Notes:
+ * - The measurements are minimum values, not all of the overheads
+ *   caused by process generation and destruction are measured (DTrace
+ *   can do so, but the script would become seriously complex).
+ * - The summary values are accurate, the by program and by PPID values
+ *   are usually slightly smaller due to rounding errors.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 22-Apr-2005  Brendan Gregg   Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+/*
+ * Start
+ */
+dtrace:::BEGIN
+{
+	/* save start time */
+	start = timestamp;
+
+	/* this is time spent on shortlived processes */
+	procs = 0;
+
+	/* print header */
+	printf("Tracing... Hit Ctrl-C to stop.\n");
+}
+
+/*
+ * Measure parent fork time
+ */
+syscall::*fork*:entry
+{
+	/* save start of fork */
+	self->fork = vtimestamp;
+}
+syscall::*fork*:return
+/arg0 != 0 && self->fork/
+{
+	/* record elapsed time for the fork syscall */
+	this->elapsed = vtimestamp - self->fork;
+	procs += this->elapsed;
+	self->fork = 0;
+}
+
+/*
+ * Measure child processes time
+ */
+syscall::*fork*:return
+/arg0 == 0/
+{
+	/* save start of child process */
+	self->start = vtimestamp;
+
+	/* memory cleanup */
+	self->fork = 0;
+}
+proc:::exit
+/self->start/
+{
+	/* record elapsed time for process execution */
+	this->elapsed = vtimestamp - self->start;
+	procs += this->elapsed;
+
+	/* sum elapsed by process name and ppid */
+	@Times_exec[execname] = sum(this->elapsed/1000000);
+	@Times_ppid[ppid] = sum(this->elapsed/1000000);
+
+	/* memory cleanup */
+	self->start = 0;
+}
+
+/*
+ * Print report
+ */
+dtrace:::END
+{
+	this->total = timestamp - start;
+	printf("short lived processes: %6d.%03d secs\n",
+	    procs/1000000000, (procs%1000000000)/1000000);
+	printf("total sample duration: %6d.%03d secs\n",
+	    this->total/1000000000, (this->total%1000000000)/1000000);
+	printf("\nTotal time by process name,\n");
+	printa("%18s %@12d ms\n", @Times_exec);
+	printf("\nTotal time by PPID,\n");
+	printa("%18d %@12d ms\n", @Times_ppid);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/shortlived.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/sigdist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/sigdist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/sigdist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sigdist.d - signal distribution by process name.
+ *             Written using DTrace (Solaris 10 3/05)
+ *
+ * This is a simple DTrace script that prints the number of signals
+ * recieved by process and signal number. This script is also available
+ * as /usr/demo/dtrace/sig.d, where it originates.
+ *
+ * $Id: sigdist.d 4 2007-08-01 11:01:38Z brendan $
+ *
+ * USAGE: 	sigdist.d	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		SENDER		process name of sender
+ *		RECIPIENT	process name of target
+ *		SIG		signal number, see signal(3head)
+ *		COUNT		number of signals sent
+ *
+ * BASED ON: /usr/demo/dtrace/sig.d
+ *
+ * SEE ALSO: DTrace Guide "proc Provider" chapter (docs.sun.com)
+ *           kill.d(1M)
+ *
+ * PORTIONS: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Jun-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+proc:::signal-send
+{
+	@Count[execname, stringof(args[1]->pr_fname), args[2]] = count();
+}
+
+dtrace:::END
+{
+	printf("%16s %16s %6s %6s\n", "SENDER", "RECIPIENT", "SIG", "COUNT");
+	printa("%16s %16s %6d %6 at d\n", @Count);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/sigdist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/stacksize.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/stacksize.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/stacksize.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,95 @@
+#!/usr/sbin/dtrace -s
+/*
+ * stacksize.d - measure stack size for running threads.
+ *               Written using DTrace (Solaris 10 3/05).
+ *
+ * $Id: stacksize.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:       stacksize.d              # hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		value		size of the user stack
+ *		count		number of samples at this size
+ *
+ * SEE ALSO:    pmap(1)
+ *
+ * COPYRIGHT: Copyright (c) 2006 Jonathan Adams
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 16-Feb-2006	Jonathan Adams	Created this.
+ * 16-Feb-2006     "      "	Last update.
+ */
+
+#pragma D option quiet
+
+this uintptr_t stkinfoptr;
+this uintptr_t stkptr;
+
+dtrace:::BEGIN
+{
+	trace("Sampling... Hit Ctrl-C to end\n");
+}
+
+sched:::on-cpu, profile:::profile-997
+{
+	this->stkinfoptr = 0;
+	this->stkptr = 0;
+}
+
+sched:::on-cpu, profile:::profile-997
+/execname != "sched"/
+{
+	this->stkinfoptr = curthread->t_lwp->lwp_ustack;
+	this->stkptr = (uintptr_t)0;
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkinfoptr != 0 && curpsinfo->pr_dmodel == PR_MODEL_ILP32/
+{
+	this->stkinfo32 = (stack32_t *)copyin(this->stkinfoptr,
+	    sizeof (stack32_t));
+	this->stktop = (uintptr_t)this->stkinfo32->ss_sp +
+	    this->stkinfo32->ss_size;
+	this->stkptr = (uintptr_t)uregs[R_SP];
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkinfoptr != 0 && curpsinfo->pr_dmodel == PR_MODEL_LP64/
+{
+	this->stkinfo = (stack_t *)copyin(this->stkinfoptr,
+	    sizeof (stack_t));
+	this->stktop = (uintptr_t)this->stkinfo->ss_sp +
+	    this->stkinfo->ss_size;
+	this->stkptr = (uintptr_t)uregs[R_SP];
+}
+
+sched:::on-cpu, profile:::profile-997
+/this->stkptr != 0/
+{
+	@sizes[execname] = quantize(this->stktop - this->stkptr);
+}
+
+dtrace:::ERROR
+{
+	@errors[execname] = count();
+}
+
+dtrace:::END
+{
+	printa(@sizes);
+	printf("\nErrors:\n");
+	printa("    %@d %s\n", @errors);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/stacksize.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/sysbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/sysbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/sysbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sysbypid.d - print sysinfo events by process.
+ *		Uses DTrace (Solaris 10 3/05).
+ *
+ * $Id: sysbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE: sysbypid.d
+ *
+ * FIELDS:
+ *		EXEC	Process name
+ *		PID	Process ID
+ * 		SYS	System statistic (see /usr/include/sys/sysinfo.h)
+ *		VALUE	Value by which statistic was incremented
+ *
+ * The virtual memory statistics are documented in the cpu_sysinfo struct
+ * in the /usr/include/sys/sysinfo.h file; and also in the sysinfo provider
+ * chapter of the DTrace Guide, http://docs.sun.com/db/doc/817-6223.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 14-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN {
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sysinfo::: {
+	@Sys[execname, pid, probename] = sum(arg0);
+}
+
+dtrace:::END {
+	printf("%16s %8s %22s %8s\n", "EXEC", "PID", "SYS", "VALUE");
+	printa("%16s %8d %22s %@8d\n", @Sys);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/sysbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/syscallbypid.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/syscallbypid.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/syscallbypid.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,54 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbypid.d - report on syscalls by PID.
+ *                  Written using DTrace (Solaris 10 3/05)
+ *
+ * $Id: syscallbypid.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	syscallbypid.d			# hit Ctrl-C to end sample
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		SYSCALL		syscall name
+ *		COUNT		number of syscalls for this PID
+ *
+ * This is based on a script from DExplorer.
+ *
+ * COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 15-May-2005	Brendan Gregg	Created this.
+ * 20-Apr-2006	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+syscall:::entry
+{
+	@num[pid, execname, probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("%6s %-24s %-24s %8s\n", "PID", "CMD", "SYSCALL", "COUNT");
+	printa("%6d %-24s %-24s %@8d\n", @num);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/syscallbypid.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/syscallbyproc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/syscallbyproc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/syscallbyproc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbyproc.d - report on syscalls by process name . DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: syscallbyproc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+syscall:::entry { @num[execname] = count(); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/syscallbyproc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/threaded.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/threaded.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/threaded.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -s
+/*
+ * threaded.d - sample multi-threaded CPU usage.
+ *              Written using DTrace (Solaris 10 3/05).
+ *
+ * This measures thread IDs as a process runs across multiple CPUs.
+ * It is a simple script that can help determine if a multi-threaded
+ * application is effectively using it's threads, or if the threads have
+ * serialised. See the example file in Docs/Examples/threaded_example.txt
+ * for a demonstration.
+ *
+ * $Id: threaded.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	threaded.d
+ *
+ * FIELDS:
+ *		PID		process ID
+ *		CMD		process name
+ *		value		thread ID
+ *		count		number of samples
+ *
+ * SEE ALSO:	prstat -L
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * Author: Brendan Gregg  [Sydney, Australia]
+ *
+ * 25-Jul-2005	Brendan Gregg	Created this.
+ * 25-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Sample at 100 Hertz
+ */
+profile:::profile-100
+/pid != 0/
+{
+	@sample[pid, execname] = lquantize(tid, 0, 128, 1);
+}
+
+/*
+ * Print output every 1 second
+ */
+profile:::tick-1sec
+{
+	printf("%Y,\n", walltimestamp);
+	printa("\n     PID: %-8d CMD: %s\n%@d", @sample);
+	printf("\n");
+	trunc(@sample);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/threaded.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/topsysproc
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/topsysproc	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/topsysproc	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,121 @@
+#!/usr/bin/sh
+#
+# topsysproc - display top syscalls by process name.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program continually prints a report of the number of system calls
+# by process name, and refreshes the display every 1 second or as specified
+# at the command line. Similar data can be fetched with "prstat -m".
+#
+# $Id: topsysproc 19 2007-09-12 07:47:59Z brendan $
+#
+# USAGE:        topsysproc [interval]
+#
+# FIELDS:
+#		load avg   load averages, see uptime(1)
+#		syscalls   total number of syscalls in this interval
+#		PROCESS    process name
+#		COUNT      number of occurances in this interval
+#
+# NOTE: There may be several PIDs with the same process name.
+#
+# SEE ALSO:     prstat(1M)
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 13-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+#
+#  Check options
+#
+if [ "$1" = "-h" -o "$1" = "--help" ]; then
+	cat <<-END
+	USAGE: topsysproc [interval]
+	   eg,
+	       topsysproc            # default, 1 second updates
+	       topsysproc 5          # 5 second updates
+	END
+	exit 1
+fi
+interval=1
+if [ "$1" -gt 0 ]; then
+	interval=$1
+fi
+
+#
+#  Run DTrace
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+
+ /* constants */
+ inline int INTERVAL = '$interval';
+ inline int SCREEN   = 20;
+
+ /* variables */
+ dtrace:::BEGIN
+ {
+	secs = 0;
+	printf("Tracing... Please wait.\n");
+ }
+
+ /* record syscall event */
+ syscall:::entry
+ {
+	@Name[execname] = count();
+	@Total = count();
+ }
+
+ /* update screen */
+ profile:::tick-1sec
+ /++secs >= INTERVAL/
+ {
+        /* fetch load averages */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load5a  = `hp_avenrun[1] / 65536;
+        this->load15a = `hp_avenrun[2] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+        this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+        this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* clear screen */
+	system("clear");
+
+        /* print load average */
+        printf("%Y, load average: %d.%02d, %d.%02d, %d.%02d",
+            walltimestamp, this->load1a, this->load1b, this->load5a,
+            this->load5b, this->load15a, this->load15b);
+
+	/* print syscall count */
+	printa("   syscalls: %@d\n", at Total);
+
+	/* print report */
+	trunc(@Name, SCREEN);
+	printf("\n   %-25s %12s\n", "PROCESS", "COUNT");
+	printa("   %-25s %@12d\n", @Name);
+
+	/* reset variables */
+	trunc(@Name);
+	clear(@Total);
+	secs = 0;
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/Proc/writebytes.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/writebytes.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/writebytes.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * writebytes.d - write bytes by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: writebytes.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+sysinfo:::writech { @bytes[execname] = sum(arg0); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/writebytes.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Proc/writedist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Proc/writedist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Proc/writedist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * writedist.d - write distribution by process name. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: writedist.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+sysinfo:::writech { @dist[execname] = quantize(arg0); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/Proc/writedist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,28 @@
+Python - DTracing Python
+
+   These scripts trace the Python programming language, and require a version
+   of Python which has been built with DTrace probes.
+
+   The Python DTrace provider was originally written by John Levon, and
+   was integrated into Solaris Nevada in build 65. If you are on a different
+   OS with DTrace and would like to use these scripts, you could download
+   Python and the Python DTrace provider patch listed in the comments here,
+
+	http://blogs.sun.com/levon/entry/python_and_dtrace_in_build
+
+   You will need patch and build Python for these probes to work.
+   Or, check if a pre-built package is available someone on opensolaris.org.
+
+   Since the DTrace Python provider may be developed further, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider python {
+	    probe function-entry(file, subroutine, lineno)
+	    probe function-return(file, subroutine, lineno)
+	};
+

Added: trunk/cddl/contrib/dtracetoolkit/Python/py_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_calldist.d - measure Python elapsed times for functions.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_calldist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Python
+ * operations. Use py_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Python program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_calltime.d - measure Python elapsed times for functions.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_calltime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_cpudist.d - measure Python on-CPU times for functions.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_cpudist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Python
+ * operations. Use py_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Python program
+ *		2		Type of call (func)
+ *		3		Name of call
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_cputime.d - measure Python on-CPU times for functions.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_cputime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces Python activity from all programs running on the system with
+ * Python provider support.
+ *
+ * USAGE: py_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/total)
+ *		NAME		Name of call (function name)
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+python*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flow.d - snoop Python execution showing function flow.
+ *             Written for the Python DTrace provider.
+ *
+ * $Id: py_flow.d 51 2007-09-24 00:55:23Z brendan $
+ *
+ * This traces Python activity from all Python programs on the system
+ * running with Python provider support.
+ *
+ * USAGE: py_flow.d			# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		FUNC		Function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "FUNC");
+}
+
+python*:::function-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+}
+
+python*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flowinfo.d - snoop Python function flow with info using DTrace.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_flowinfo.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces activity from all Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Python program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func)
+ *		FUNC		Python function
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "FUNC");
+}
+
+python*:::function-entry,
+python*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+python*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg0)), arg2, "func", self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+python*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg0)), arg2, "func", self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_flowinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,89 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_flowtime.d - snoop Python functions with flow and delta times.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_flowtime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces shell activity from Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FUNC		Python function name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self int last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s  -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "FUNC");
+}
+
+python*:::function-entry,
+python*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+python*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+python*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->delta, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_funccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_funccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_funccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_funccalls.d - measure Python function calls using DTrace.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_funccalls.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * This traces Python activity from all running programs on the system
+ * which support the Python DTrace provider.
+ *
+ * USAGE: py_funccalls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *              FILE		Filename that contained the function
+ *		FUNC		Python function name
+ *		CALLS		Function calls during this sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	@funcs[basename(copyinstr(arg0)), copyinstr(arg1)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-32s %-32s %8s\n", "FILE", "FUNC", "CALLS");
+	printa(" %-32s %-32s %@8d\n", @funcs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_funccalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,81 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_malloc.d - Python libc malloc analysis.
+ *               Written for the Python DTrace provider.
+ *
+ * $Id: py_malloc.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * This is an expiremental script to identify who is calling malloc() for
+ * memory allocation, and to print distribution plots of the requested bytes.
+ * If a malloc() occured while in a Python function, then that function is
+ * identified as responsible; else the caller of malloc() is identified as
+ * responsible - which will be a function from the Python engine.
+ *
+ * USAGE: py_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python$target:::function-entry
+{
+	self->file = basename(copyinstr(arg0));
+	self->name = copyinstr(arg1);
+}
+
+python$target:::function-return
+{
+	self->file = 0;
+	self->name = 0;
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@malloc_func_size[self->file, self->name] = sum(arg0);
+	@malloc_func_dist[self->file, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->name == NULL/
+{
+	@malloc_lib_size[usym(ucaller)] = sum(arg0);
+	@malloc_lib_dist[usym(ucaller)] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("\nPython malloc byte distributions by engine caller,\n\n");
+	printa("   %A, total bytes = %@d %@d\n", @malloc_lib_size,
+	    @malloc_lib_dist);
+
+	printf("\nPython malloc byte distributions by Python file and ");
+	printf("function,\n\n");
+	printa("   %s, %s, bytes total = %@d %@d\n", @malloc_func_size,
+	    @malloc_func_dist);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_malloc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_mallocstk.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_mallocstk.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_mallocstk.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,49 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_mallocstk.d - Python libc malloc analysis with full stack traces.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_mallocstk.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * USAGE: py_mallocstk.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+/* tune as desired, */
+#pragma D option jstackframes=64
+#pragma D option jstackstrsize=1024
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+pid$target:libc:malloc:entry
+{
+	@mallocs[jstack()] = quantize(arg0);
+}
+
+dtrace:::END
+{
+	printf("\nPython malloc byte distributions by stack trace,\n\n");
+	printa(@mallocs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_mallocstk.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_profile.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_profile.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_profile.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,79 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * py_profile.d - sample stack traces with Python translations using DTrace.
+ *                Written for the Python DTrace provider.
+ *
+ * $Id: py_profile.d 19 2007-09-12 07:47:59Z brendan $
+ *
+ * USAGE: py_profile.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * 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. This is best
+ * explained with an example stack frame output,
+ *
+ *            libpython2.4.so.1.0`PyEval_EvalFrame+0x2fbf
+ *              [ ./func_loop.py:5 (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_loop.py:11 (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_loop.py:14 (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_loop.py:16 (?) ]
+ *
+ * The lines in square brackets are the native Python frames, the rest
+ * are the Python engine.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option jstackstrsize=1024
+
+/*
+ * Tunables
+ */
+#define DEPTH	10		/* stack depth, frames */
+#define RATE	1001		/* sampling rate, Hertz */
+#define TOP	25		/* number of stacks to output */
+
+dtrace:::BEGIN
+{
+	printf("Sampling %d-level stacks at %d Hertz... Hit Ctrl-C to end.\n",
+	    DEPTH, RATE);
+}
+
+profile-RATE
+/pid == $target/
+{
+	@stacks[jstack(DEPTH)] = count();
+}
+
+dtrace:::END
+{
+	trunc(@stacks, TOP);
+	printf("Top %d most frequently sampled stacks,\n", TOP);
+	printa(@stacks);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_profile.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_syscalls.d - count Python function calls and syscalls using DTrace.
+ *                 Written for the Python DTrace provider.
+ *
+ * $Id: py_syscalls.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * USAGE: py_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Python program
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as "python", if the program
+ * was invoked using the form "python filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python$target:::function-entry
+{
+	@calls[basename(copyinstr(arg0)), "func", copyinstr(arg1)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,116 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_syscolors.d - trace Python function flow plus syscalls, in color.
+ *                  Written for the Python DTrace provider.
+ *
+ * $Id: py_syscolors.d 27 2007-09-13 09:26:01Z brendan $
+ *
+ * USAGE: py_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Python function entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Python program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/syscall)
+ *		NAME		Python function or syscall name
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_python = "\033[2;35m";		/* violet, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	self->depth = 0;
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+python$target:::function-entry,
+python$target:::function-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+python$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_python,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+python$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_python,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Python/py_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Python/py_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Python/py_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * py_who.d - trace Python function execution by process using DTrace.
+ *            Written for the Python DTrace provider.
+ *
+ * $Id: py_who.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * This traces Python activity from all Python programs on the system that are
+ * running with Python provider support.
+ *
+ * USAGE: py_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Python
+ *		UID		User ID of the owner
+ *		FUNCS		Number of function calls
+ *		FILE		Pathname of the Python program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+python*:::function-entry
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "FUNCS", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Python/py_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/README
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/README	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/README	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+link Guide
\ No newline at end of file


Property changes on: trunk/cddl/contrib/dtracetoolkit/README
___________________________________________________________________
Added: svn:special
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,31 @@
+Ruby - DTracing Ruby
+
+   These scripts trace activity of the Ruby programming language, and
+   require the DTrace Ruby provider written by Joyent.
+
+   Currently, the DTrace Ruby provider is a seperate download either in
+   patch, source or binary form. Start with the "Ruby DTrace" link on
+   http://dtrace.joyent.com/, and after getting a version running, the
+   scripts in this directory should work.
+
+   Since the DTrace Ruby provider is under development, there is a chance
+   that it has changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider ruby {
+	    probe function-entry(class, method, file, lineno);
+	    probe function-return(class, method, file, lineno);
+	    probe raise(errinfo, file, lineno);
+	    probe rescue(file, lineno);
+	    probe line(file, lineno);
+	    probe gc-begin();
+	    probe gc-end();
+	    probe object-create-start(object, file, lineno);
+	    probe object-create-done(object, file, lineno);
+	    probe object-free(object);
+	};
+

Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calldist.d - measure Ruby elapsed times for types of operation.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calldist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Ruby
+ * operations. Use rb_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of call (method/obj-new/gc)
+ *		3		Name of call
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+
+	@types[this->file, "obj-new", copyinstr(arg0)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = timestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+
+	@types[".", "gc", "-"] = quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nElapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function elapsed times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,87 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calls.d - count Ruby calls using DTrace.
+ *              Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calls.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/...)
+ *		NAME		Descriptive name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+        @calls[basename(copyinstr(arg2)), "method", this->name] = count();
+}
+
+ruby*:::object-create-start
+{
+	this->name = copyinstr(arg0);
+	this->filename = basename(copyinstr(arg1));
+	this->filename = this->filename != NULL ? this->filename : ".";
+        @calls[this->filename, "obj-new", this->name] = count();
+}
+
+ruby*:::object-free
+{
+	this->name = copyinstr(arg0);
+        @calls[".", "obj-free", this->name] = count();
+}
+
+ruby*:::gc-begin
+{
+        @calls[".", "gc", "begin"] = count();
+}
+
+ruby*:::raise
+{
+	this->name = copyinstr(arg0);
+        @calls[basename(copyinstr(arg1)), "raise", this->name] = count();
+}
+
+ruby*:::rescue
+{
+        @calls[basename(copyinstr(arg0)), "rescue", "-"] = count();
+}
+
+dtrace:::END
+{
+        printf(" %-24s %-10s %-30s %8s\n", "FILE", "TYPE", "NAME", "CALLS");
+        printa(" %-24s %-10s %-30s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_calltime.d - measure Ruby elapsed times for types of operation.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_calltime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = timestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->elapsed = timestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = timestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->elapsed = timestamp - self->gc;
+	self->gc = 0;
+	@num[".", "gc", "-"] = count();
+	@types[".", "gc", "-"] = sum(this->elapsed);
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,120 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_cpudist.d - measure Ruby on-CPU times for types of operation.
+ *                Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_cpudist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for Ruby
+ * operations. Use rb_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of call (method/obj-new/gc)
+ *		3		Name of call
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+
+	@types[this->file, "obj-new", copyinstr(arg0)] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = vtimestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+
+	@types[".", "gc", "-"] = quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nOn-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("\nExclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("\nInclusive function on-CPU times (us),\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,129 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_cputime.d - measure Ruby on-CPU times for types of operation.
+ *                Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_cputime.d 49 2007-09-17 12:03:20Z brendan $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/obj-new/gc/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = vtimestamp;
+}
+
+ruby*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg2));
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+ruby*:::object-create-start
+{
+	self->object = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->object/
+{
+	this->oncpu = vtimestamp - self->object;
+	self->object = 0;
+	this->file = basename(copyinstr(arg1));
+	this->file = this->file != NULL ? this->file : ".";
+	this->name = copyinstr(arg0);
+
+	@num[this->file, "obj-new", this->name] = count();
+	@types[this->file, "obj-new", this->name] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+ruby*:::gc-begin
+{
+	self->gc = vtimestamp;
+}
+
+ruby*:::gc-end
+/self->gc/
+{
+	this->oncpu = vtimestamp - self->gc;
+	self->gc = 0;
+	@num[".", "gc", "-"] = count();
+	@types[".", "gc", "-"] = sum(this->oncpu);
+	self->exclude[self->depth] += this->oncpu;
+}
+
+dtrace:::END
+{
+	printf("\nCount,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flow.d - snoop Ruby execution showing method flow using DTrace.
+ *             Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flow.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flow.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this method belongs to
+ *		CLASS::METHOD	Ruby classname and method
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-22s -- %s\n", "C", "TIME(us)", "FILE",
+	    "CLASS::METHOD");
+}
+
+ruby*:::function-entry
+{
+	printf("%3d %-16d %-22s %*s-> %s::%s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg2)), self->depth * 2, "", copyinstr(arg0),
+	    copyinstr(arg1));
+	self->depth++;
+}
+
+ruby*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-22s %*s<- %s::%s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg2)), self->depth * 2, "", copyinstr(arg0),
+	    copyinstr(arg1));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,88 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flowinfo.d - snoop Ruby function (method) flow with info using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flowinfo.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flowinfo.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (method)
+ *		NAME		Ruby class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+ruby*:::function-entry,
+ruby*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+ruby*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg2)), arg3, "method", self->depth * 2, "",
+	    this->name);
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%d %6d %10d  %16s:%-4d %-8s %*s<- %s\n", cpu, pid, this->delta, 
+	    basename(copyinstr(arg2)), arg3, "method", self->depth * 2, "",
+	    this->name);
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,84 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_flowtime.d - snoop Ruby function (method) flow using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_flowtime.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_flowtime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this method belongs to
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CLASS::METHOD	Ruby class and method name
+ *
+ * LEGEND:
+ *		->		method entry
+ *		<-		method return
+ *
+ * Filename and method names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "CLASS::METHOD");
+}
+
+ruby*:::function-entry,
+ruby*:::function-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+ruby*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s::%s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg2)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0), copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s::%s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg2)), this->delta, self->depth * 2, "",
+	    copyinstr(arg0), copyinstr(arg1));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_funccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_funccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_funccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_funccalls.d - count Ruby function (method) calls using DTrace.
+ *                  Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_funccalls.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_funccalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		METHOD		Method name
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+        printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::function-entry
+{
+        @funcs[basename(copyinstr(arg2)), copyinstr(arg0), copyinstr(arg1)] =
+	    count();
+}
+
+dtrace:::END
+{
+        printf(" %-32.32s %-16s %-16s %8s\n", "FILE", "CLASS", "METHOD",
+	    "CALLS");
+        printa(" %-32.32s %-16s %-16s %@8d\n", @funcs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_funccalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_lines.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_lines.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_lines.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_lines.d - trace Ruby line execution by process using DTrace.
+ *              Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_lines.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * This traces Ruby activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number
+ *		COUNT		Number of times a line was executed
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::line
+{
+	@calls[basename(copyinstr(arg0)), arg1] = count();
+}
+
+dtrace:::END
+{
+	printf(" %32s:%-6s %10s\n", "FILE", "LINE", "COUNT");
+	printa(" %32s:%-6d %@10d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_lines.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_malloc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_malloc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_malloc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,80 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_malloc.d - Ruby operations and libc malloc statistics.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_malloc.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * WARNING: This script is not 100% accurate; This prints libc malloc() byte
+ * distributions by "recent" Ruby operation, which we hope will be usually
+ * relevant. This is an experimental script that may be improved over time.
+ *
+ * USAGE: rb_malloc.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		1		Filename of the Ruby program
+ *		2		Type of operation (method/objnew/startup)
+ *		3		Name of operation
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby$target:::function-entry
+{
+	self->file = basename(copyinstr(arg2));
+	self->type = "method";
+	self->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+}
+
+ruby$target:::object-create-start
+{
+	self->file = basename(copyinstr(arg1));
+	self->type = "objnew";
+	self->name = copyinstr(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->file != NULL/
+{
+	@mallocs[self->file, self->type, self->name] = quantize(arg0);
+}
+
+pid$target:libc:malloc:entry
+/self->file == NULL/
+{
+	@mallocs["ruby", "startup", "-"] = quantize(arg0);
+}
+
+
+dtrace:::END
+{
+	printf("Ruby malloc byte distributions by recent Ruby operation,\n");
+	printa("   %s, %s, %s %@d\n", @mallocs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_malloc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objcpu.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objcpu.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objcpu.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,61 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_objcpu.d - measure Ruby object creation on-CPU time using DTrace.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_objcpu.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_objcpu.d	 	# hit Ctrl-C to end
+ *
+ * Class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::object-create-start
+{
+	self->vstart = vtimestamp;
+}
+
+ruby*:::object-create-done
+/self->vstart/
+{
+	this->oncpu = vtimestamp - self->vstart;
+	@total = sum(this->oncpu);
+	@dist[copyinstr(arg0)] = quantize(this->oncpu / 1000);
+	self->vstart = 0;
+}
+
+dtrace:::END
+{
+	normalize(@total, 1000000);
+	printa("Total object creation on-CPU time (ms): %@d\n\n", @total);
+	printf("Object creation on-CPU time distributions (us),\n");
+	printa(@dist);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objcpu.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objnew.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objnew.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objnew.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_objnew.d - count Ruby object creation using DTrace.
+ *               Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_objnew.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * This traces Ruby activity from all programs running on the system with
+ * Ruby provider support.
+ *
+ * USAGE: rb_objnew.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		CLASS		Class of new object
+ *		COUNT		Number of object creations during tracing
+ *
+ * Filename and class names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::object-create-done
+{
+	@objs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-24s %-36s %8s\n", "FILE", "CLASS", "COUNT");
+	printa(" %-24.24s %-36s %@8d\n", @objs);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_objnew.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,146 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_stat.d - Ruby operation stats using DTrace.
+ *             Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_stat.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * This traces activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Ruby programs executed per second, including
+ *				those without Ruby provider support
+ *		METHOD/s	Methods called, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed, per second
+ *		RAIS/s		Raises, per second
+ *		RESC/s		Rescues, per second
+ *		GC/s		Garbage collects, per second
+ *
+ * The numbers are 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
+ * Ruby software is probably not running with the DTrace Ruby provider.
+ * See Ruby/Readme.
+ *
+ * Filename and method names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = methods = objnew = objfree = gc = raised = rescue = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s %6s %6s %6s\n", "TIME", "EXEC/s",
+	    "METHOD/s", "OBJNEW/s", "OBJFRE/s", "RAIS/s", "RESC/s", "GC/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "ruby"/
+{
+	execs++;
+}
+
+ruby*:::function-entry
+{
+	methods++;
+}
+
+ruby*:::object-create-start
+{
+	objnew++;
+}
+
+ruby*:::object-free
+{
+	objfree++;
+}
+
+ruby*:::raise
+{
+	raised++;
+}
+
+ruby*:::rescue
+{
+	rescue++;
+}
+
+ruby*:::gc-begin
+{
+	gc++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d %6d %6d %6d\n", walltimestamp,
+	    execs / interval, methods / interval, objnew / interval,
+	    objfree / interval, raised / interval, rescue / interval,
+	    gc / interval);
+	execs = methods = objnew = objfree = gc = raised = rescue = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_stat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_syscalls.d - count Ruby calls and syscalls using DTrace.
+ *                 Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_syscalls.d 20 2007-09-12 09:28:22Z brendan $
+ *
+ * USAGE: rb_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the Ruby program
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and method names are printed if available.
+ * The filename for syscalls may be printed as "ruby", if the program
+ * was invoked using the form "ruby filename" rather than running the
+ * program with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby$target:::function-entry
+{
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	@calls[basename(copyinstr(arg2)), "method", this->name] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,133 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_syscolors.d - trace Ruby method flow plus syscalls, in color.
+ *                  Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_syscolors.d 27 2007-09-13 09:26:01Z brendan $
+ *
+ * USAGE: rb_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Ruby method entries and returns, and indents child
+ * function calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the Ruby program
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (method/line/syscall)
+ *		NAME		Ruby method or syscall name
+ *
+ * Filename and method names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	/*
+	 * The following are terminal color escape sequences.
+	 * Change them to whatever you prefer, eg HTML font tags.
+	 */
+        color_ruby = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+ruby$target:::function-entry,
+ruby$target:::function-return,
+ruby$target:::line,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+ruby$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_ruby,
+	    cpu, pid, this->delta, basename(copyinstr(arg2)), arg3, "method",
+	    self->depth * 2, "", this->name, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+ruby$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	this->name = strjoin(strjoin(copyinstr(arg0), "::"), copyinstr(arg1));
+	self->depth--;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_ruby,
+	    cpu, pid, this->delta, basename(copyinstr(arg2)), arg3, "method",
+	    self->depth * 2, "", this->name, color_off);
+	self->last = timestamp;
+}
+
+ruby$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth--;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "\"", "syscall", self->depth * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Ruby/rb_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Ruby/rb_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * rb_who.d - trace Ruby line execution by process using DTrace.
+ *            Written for the Ruby DTrace provider.
+ *
+ * $Id: rb_who.d 49 2007-09-17 12:03:20Z brendan $
+ *
+ * This traces Ruby activity from all Ruby programs on the system that are
+ * running with Ruby provider support.
+ *
+ * USAGE: rb_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Ruby
+ *		UID		User ID of the owner
+ *		LINES		Number of times a line was executed
+ *		FILE		Pathname of the Ruby program
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+ruby*:::line
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %10s %s\n", "PID", "UID", "LINES", "FILE");
+	printa("   %6d %6d %@10d %s\n", @lines);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Ruby/rb_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,35 @@
+Shell - DTracing Shell Scripting
+
+   These scripts trace activity of various shell programming languages,
+   and make use of specific shell DTrace providers, which are either
+   integrated or available for download from the shells page listed below.
+   Each script has a prefix to make the shell language clear. 
+
+	http://www.opensolaris.org/os/community/dtrace/shells/
+
+   sh - the Bourne Shell. This provider was written by Alan Hargreaves and
+   is currently available both as a diff and in binary form from the shells
+   page.
+
+   Since the DTrace Shell providers are under development, there is a chance
+   that they have changed slightly by the time you are reading this, causing
+   these scripts to either break or behave oddly. Firstly, check for newer
+   versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the providers when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider sh {
+	    probe function-entry(file, function, lineno);
+	    probe function-return(file, function, rval);
+	    probe builtin-entry(file, function, lineno);
+	    probe builtin-return(file, function, rval);
+	    probe command-entry(file, function, lineno);
+	    probe command-return(file, function, rval);
+	    probe script-start(file);
+	    probe script-done(file, rval);
+	    probe subshell-entry(file, childpid);
+	    probe subshell-return(file, rval);
+	    probe line(file, lineno);
+	};
+

Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,119 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calldist.d - measure Bourne shell elapsed times for types of operation.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_calldist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calldist.d 	# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of elapsed time for shell
+ * operations. Use sh_calltime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the shell or shellscript
+ *		2		Type of call (func/builtin/cmd)
+ *		3		Name of call
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = timestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->elapsed = timestamp - self->builtin;
+	self->builtin = 0;
+
+	@types[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+sh*:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh*:::command-return
+/self->command/
+{
+	this->elapsed = timestamp - self->command;
+	self->command = 0;
+
+	@types[basename(copyinstr(arg0)), "cmd", copyinstr(arg1)] =
+	    quantize(this->elapsed / 1000);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("Elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("Exclusive function elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("Inclusive function elapsed times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,72 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calls.d - count Bourne calls (func/builtin/cmd/subsh) using DTrace.
+ *              Written for the sh DTrace provider.
+ *
+ * $Id: sh_calls.d 52 2007-09-24 04:28:01Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/subsh)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	@calls[basename(copyinstr(arg0)), "func", copyinstr(arg1)] = count();
+}
+
+sh*:::builtin-entry
+{
+	@calls[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] = count();
+}
+
+sh*:::command-entry
+{
+	@calls[basename(copyinstr(arg0)), "cmd", copyinstr(arg1)] = count();
+}
+
+sh*:::subshell-entry
+/arg1 != 0/
+{
+	@calls[basename(copyinstr(arg0)), "subsh", "-"] = count();
+}
+
+dtrace:::END
+{
+	printf(" %-22s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-22s %-10s %-32s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_calls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,136 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_calltime.d - measure Bourne shell elapsed times for types of operation.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_calltime.d 46 2007-09-17 10:25:36Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_calltime.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->function[self->depth] = timestamp;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->function[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->elapsed_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->elapsed_excl);
+	@types_excl["-", "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = timestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->elapsed = timestamp - self->builtin;
+	self->builtin = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "builtin", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "builtin", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+sh*:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh*:::command-return
+/self->command/
+{
+	this->elapsed = timestamp - self->command;
+	self->command = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "cmd", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "cmd", this->name] = sum(this->elapsed);
+	@types["-", "total", "-"] = sum(this->elapsed);
+
+	self->exclude[self->depth] += this->elapsed;
+}
+
+dtrace:::END
+{
+	printf("\nCounts,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nElapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function elapsed times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,142 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_cpudist.d - measure Bourne shell on-CPU times for types of operation.
+ *                Written for the sh DTrace provider.
+ *
+ * $Id: sh_cpudist.d 28 2007-09-13 10:49:37Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_cpudist.d 		# hit Ctrl-C to end
+ *
+ * This script prints distribution plots of on-CPU time for shell
+ * operations. Use sh_cputime.d for summary reports.
+ *
+ * FIELDS:
+ *		1		Filename of the shell or shellscript
+ *		2		Type of call (func/builtin/cmd)
+ *		3		Name of call
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->function[self->depth] = vtimestamp;
+	self->exclude[self->depth] = 0;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@types_incl[this->file, "func", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[this->file, "func", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = vtimestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->oncpu = vtimestamp - self->builtin;
+	self->builtin = 0;
+
+	@types[basename(copyinstr(arg0)), "builtin", copyinstr(arg1)] =
+	    quantize(this->oncpu / 1000);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+sh*:::command-entry
+{
+	incmd[pid] = basename(copyinstr(arg0));
+	depth[pid] = self->depth;
+}
+
+sh*:::command-return
+{
+	incmd[pid] = 0;
+}
+
+proc:::exec-success
+{
+	/*
+	 * Due to thread timing after fork(), this probe can fire before
+	 * sh*:::command-entry has, which means we can't predicate this
+	 * exec() away just yet. Store the vtimestamp in case it is needed.
+	 */
+	self->command = vtimestamp;
+}
+
+proc:::exit
+/incmd[ppid] == NULL/
+{
+	self->command = 0;
+}
+
+proc:::exit
+/incmd[ppid] != NULL/
+{
+	this->oncpu = vtimestamp - self->command;
+	self->command = 0;
+
+	@types[incmd[ppid], "cmd", execname] = quantize(this->oncpu / 1000);
+
+	self->exclude[depth[ppid]] += this->oncpu;
+	incmd[ppid] = 0;
+	depth[ppid] = 0;
+}
+
+dtrace:::END
+{
+	printf("On-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types);
+
+	printf("Exclusive function on-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_excl);
+
+	printf("Inclusive function on-CPU times (us),\n\n");
+	printa("   %s, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,158 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_cputime.d - measure Bourne shell on-CPU times for types of operation.
+ *                Written for the sh DTrace provider.
+ *
+ * $Id: sh_cputime.d 46 2007-09-17 10:25:36Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_cputime.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::function-entry
+{
+	self->depth++;
+	self->function[self->depth] = vtimestamp;
+	self->exclude[self->depth] = 0;
+}
+
+sh*:::function-return
+/self->function[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->function[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->function[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "func", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types_incl[this->file, "func", this->name] = sum(this->oncpu_incl);
+	@types_excl[this->file, "func", this->name] = sum(this->oncpu_excl);
+	@types_excl["-", "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+sh*:::builtin-entry
+{
+	self->builtin = vtimestamp;
+}
+
+sh*:::builtin-return
+/self->builtin/
+{
+	this->oncpu = vtimestamp - self->builtin;
+	self->builtin = 0;
+	this->file = basename(copyinstr(arg0));
+	this->name = copyinstr(arg1);
+
+	@num[this->file, "builtin", this->name] = count();
+	@num["-", "total", "-"] = count();
+	@types[this->file, "builtin", this->name] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[self->depth] += this->oncpu;
+}
+
+sh*:::command-entry
+{
+	incmd[pid] = basename(copyinstr(arg0));
+	depth[pid] = self->depth;
+}
+
+sh*:::command-return
+{
+	incmd[pid] = 0;
+}
+
+proc:::exec-success
+{
+	/*
+	 * Due to thread timing after fork(), this probe can fire before
+	 * sh*:::command-entry has, which means we can't predicate this
+	 * exec() away just yet. Store the vtimestamp in case it is needed.
+	 */
+	self->command = vtimestamp;
+}
+
+proc:::exit
+/incmd[ppid] == NULL/
+{
+	self->command = 0;
+}
+
+proc:::exit
+/incmd[ppid] != NULL/
+{
+	this->oncpu = vtimestamp - self->command;
+	self->command = 0;
+
+	@num[incmd[ppid], "cmd", execname] = count();
+	@num["-", "total", "-"] = count();
+	@types[incmd[ppid], "cmd", execname] = sum(this->oncpu);
+	@types["-", "total", "-"] = sum(this->oncpu);
+
+	self->exclude[depth[ppid]] += this->oncpu;
+	incmd[ppid] = 0;
+	depth[ppid] = 0;
+}
+
+dtrace:::END
+{
+	printf("\nCounts,\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa("   %-20s %-10s %-32s %@8d\n", @num);
+
+	normalize(@types, 1000);
+	printf("\nOn-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types);
+
+	normalize(@types_excl, 1000);
+	printf("\nExclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_excl);
+
+	normalize(@types_incl, 1000);
+	printf("\nInclusive function on-CPU times (us),\n");
+	printf("   %-20s %-10s %-32s %8s\n", "FILE", "TYPE", "NAME", "TOTAL");
+	printa("   %-20s %-10s %-32s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,85 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flow.d - snoop Bourne shell execution showing function flow using DTrace.
+ *             Written for the sh DTrace provider.
+ *
+ * $Id: sh_flow.d 41 2007-09-17 02:20:10Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flow.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		NAME		Shell function, builtin or command name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *		>		builtin
+ *		|		external command
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	self->depth = 0;
+	printf("%3s %-16s %-16s -- %s\n", "C", "TIME(us)", "FILE", "NAME");
+}
+
+sh*:::function-entry
+{
+	printf("%3d %-16d %-16s %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+}
+
+sh*:::function-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
+
+sh*:::builtin-entry
+{
+	printf("%3d %-16d %-16s %*s> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}
+
+sh*:::command-entry
+{
+	printf("%3d %-16d %-16s %*s| %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), self->depth * 2, "", copyinstr(arg1));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowinfo.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowinfo.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowinfo.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,152 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flowinfo.d - snoop Bourne shell flow with additional info.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_flowinfo.d 52 2007-09-24 04:28:01Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flowinfo.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins and external commands are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/subsh)
+ *		NAME		Shell function, builtin or command name
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	self->depth = 0;
+	printf("%3s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh*:::function-entry,
+sh*:::function-return,
+sh*:::builtin-entry,
+sh*:::builtin-return,
+sh*:::command-entry,
+sh*:::command-return,
+sh*:::subshell-entry,
+sh*:::subshell-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+sh*:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "func", self->depth * 2,
+	    "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "builtin",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:%-4d %-8s %*s-> %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- %s\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "cmd",
+	    self->depth * 2, "", copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::subshell-entry
+/arg1 != 0/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s-> pid %d\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "subsh",
+	    self->depth * 2, "", arg1);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::subshell-return
+/self->last/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %10d  %16s:-    %-8s %*s<- = %d\n", cpu, pid,
+	    this->delta, basename(copyinstr(arg0)), "subsh",
+	    self->depth * 2, "", arg1);
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowinfo.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,118 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_flowtime.d - snoop Bourne shell execution with flow and delta times.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_flowtime.d 45 2007-09-17 08:54:56Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_flowtime.d			# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		FILE		Filename that this function belongs to
+ *		NAME		Shell function or builtin name
+ *
+ * LEGEND:
+ *		->		function entry
+ *		<-		function return
+ *		 >		builtin
+ *		 |		external command
+ *
+ * DELTAs:
+ *		->		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
+ *
+ * See sh_flowinfo.d for more verbose and more straightforward delta times.
+ *
+ * Filename and function names are printed if available.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+self uint64_t last;
+
+dtrace:::BEGIN
+{
+	printf("%3s %-16s %-16s %9s -- %s\n", "C", "TIME(us)", "FILE",
+	    "DELTA(us)", "NAME");
+}
+
+sh*:::function-entry,
+sh*:::function-return,
+sh*:::builtin-return,
+sh*:::command-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+sh*:::function-entry
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s-> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh*:::function-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %-16d %-16s %9d %*s<- %s\n", cpu, timestamp / 1000,
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::builtin-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s> %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}
+
+sh*:::command-return
+{
+	this->elapsed = (timestamp - self->last) / 1000;
+	printf("%3d %-16d %-16s %9d %*s| %s\n", cpu, timestamp / 1000, 
+	    basename(copyinstr(arg0)), this->elapsed, self->depth * 2, "",
+	    copyinstr(arg1));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_lines.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_lines.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_lines.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,55 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_lines.d - trace Bourne shell line execution using DTrace.
+ *              Written for the sh DTrace provider.
+ *
+ * $Id: sh_lines.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_lines.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		LINE		Line number
+ *		COUNT		Number of times a line was executed
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::line
+{
+	@calls[basename(copyinstr(arg0)), arg1] = count();
+}
+
+dtrace:::END
+{
+	printf(" %32s:%-6s %10s\n", "FILE", "LINE", "COUNT");
+	printa(" %32s:%-6d %@10d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_lines.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_pidcolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_pidcolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_pidcolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,203 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_pidcolors.d - Demonstration of deeper DTrace Bourne shell analysis.
+ *                  Written for the sh DTrace provider.
+ *
+ * $Id: sh_pidcolors.d 27 2007-09-13 09:26:01Z brendan $
+ *
+ * USAGE: sh_pidcolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This extends sh_syscolors.d by including some "pid" provider tracing
+ * as a starting point for deeper analysis. Currently 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. Customise it to whichever
+ * parts of /usr/bin/sh or the system libraries you are interested in.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/line/shell)
+ *		NAME		Shell function, builtin or command name
+ *
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_shell = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_lib = "\033[2;34m";		/* blue, faint */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh$target:::function-entry,
+sh$target:::function-return,
+sh$target:::builtin-entry,
+sh$target:::command-entry,
+syscall:::entry,
+syscall:::return,
+/* Customize Here, */
+pid$target:a.out:e*:entry,
+pid$target:a.out:e*:return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+sh$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+/* Customise Here, */
+pid$target:a.out:e*:entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_lib,
+	    cpu, pid, this->delta, basename(execname), "sh",
+	    self->depth * 2, "", probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+/* Customise Here, */
+pid$target:a.out:e*:return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_lib,
+	    cpu, pid, this->delta, basename(execname), "sh",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_pidcolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,133 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_stat.d - Bourne shell operation stats using DTrace.
+ *             Written for the sh DTrace provider.
+ *
+ * $Id: sh_stat.d 52 2007-09-24 04:28:01Z brendan $
+ *
+ * This traces activity from all sh processes on the system that are running
+ * with sh provider support.
+ *
+ * USAGE: sh_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Bourne shells executed per second, including
+ *				those without sh provider support
+ *		FUNC/s		Functions called, per second
+ *		BLTIN/s		Builtins called, per second
+ *		SUB-SH/s	Sub-shells called, per second
+ *		CMD/s		External commands called, per second
+ *
+ * The numbers are 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 sh
+ * scripts may be running without the DTrace sh provider. See Shell/Readme.
+ *
+ * Filename and function names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = funcs = builtins = subs = cmds = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %8s %8s %8s %8s %8s\n", "TIME", "EXEC/s", "FUNCS/s",
+	    "BLTINS/s", "SUB-SH/s", "CMD/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "sh"/
+{
+	execs++;
+}
+
+sh*:::function-entry
+{
+	funcs++;
+}
+
+sh*:::builtin-entry
+{
+	builtins++;
+}
+
+sh*:::subshell-entry
+/arg0 != 0/
+{
+	subs++;
+}
+
+sh*:::command-entry
+{
+	cmds++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %8d %8d %8d %8d %8d\n", walltimestamp, execs / interval,
+	    funcs / interval, builtins / interval, subs / interval,
+	    cmds / interval);
+	execs = funcs = builtins = subs = cmds = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_stat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,83 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_syscalls.d - count Bourne calls and syscalls using DTrace.
+ *                 Written for the sh DTrace provider.
+ *
+ * $Id: sh_syscalls.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * USAGE: sh_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		TYPE		Type of call (func/builtin/cmd/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * Filename and function names are printed if available.
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+self string filename;
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh$target:::function-entry,
+sh$target:::builtin-entry,
+sh$target:::command-entry
+/self->filename == NULL/
+{
+	self->filename = basename(copyinstr(arg0));
+}
+
+sh$target:::function-entry
+{
+	@calls[self->filename, "func", copyinstr(arg1)] = count();
+}
+
+sh$target:::builtin-entry
+{
+	@calls[self->filename, "builtin", copyinstr(arg1)] = count();
+}
+
+sh$target:::command-entry
+{
+	@calls[self->filename, "cmd", copyinstr(arg1)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[basename(execname), "syscall", probefunc] = count();
+}
+
+dtrace:::END
+{
+	printf("\nCalls for PID %d,\n\n", $target);
+	printf(" %-32s %-10s %-22s %8s\n", "FILE", "TYPE", "NAME", "COUNT");
+	printa(" %-32s %-10s %-22s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,169 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_syscolors.d - trace Bourne shell flow plus syscalls, in color.
+ *                  Written for the sh DTrace provider.
+ *
+ * $Id: sh_syscolors.d 27 2007-09-13 09:26:01Z brendan $
+ *
+ * USAGE: sh_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches shell function entries and returns, and indents child
+ * function calls. Shell builtins, commands and lines are also printed.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		FILE		Filename of the shell script
+ *		LINE		Line number of filename
+ *		TYPE		Type of call (func/builtin/cmd/line/shell)
+ *		NAME		Shell function, builtin or command name
+ *
+ * The filename for syscalls may be printed as the shell name, if the
+ * script was invoked using the form "shell filename" rather than running
+ * the script with an interpreter line.
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_shell = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%s %6s %10s  %16s:%-4s %-8s -- %s\n", "C", "PID", "DELTA(us)",
+	    "FILE", "LINE", "TYPE", "NAME");
+}
+
+sh$target:::function-entry,
+sh$target:::function-return,
+sh$target:::builtin-entry,
+sh$target:::command-entry,
+sh$target:::line,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+sh$target:::function-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::function-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), "func",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::builtin-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::builtin-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "builtin",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::command-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-> %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->depth++;
+	self->last = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s<- %s%s\n", color_shell,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg2, "cmd",
+	    self->depth * 2, "", copyinstr(arg1), color_off);
+	self->last = timestamp;
+}
+
+sh$target:::line
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:%-4d %-8s %*s-- %s\n", color_line,
+	    cpu, pid, this->delta, basename(copyinstr(arg0)), arg1, "line",
+	    self->depth * 2, "", color_off);
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%d %6d %10d  %16s:-    %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, basename(execname), "syscall",
+	    self->depth * 2, "", probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_wasted.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_wasted.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_wasted.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_wasted.d - measure Bourne shell elapsed times for "wasted" commands.
+ *               Written for the sh DTrace provider.
+ *
+ * $Id: sh_wasted.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * USAGE: sh_wasted.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This script measures "wasted" commands - those which are called externally
+ * but are in fact builtins to the shell. Ever seen a script which calls
+ * /usr/bin/echo needlessly? This script measures that cost.
+ *
+ * FIELDS:
+ *		FILE		Filename of the shell or shellscript
+ *		NAME		Name of call
+ *		TIME		Total elapsed time for calls (us)
+ *
+ * IDEA: Mike Shapiro
+ *
+ * Filename and call names are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	isbuiltin["echo"] = 1;
+	isbuiltin["test"] = 1;
+	/* add builtins here */
+
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	self->start = timestamp;
+}
+
+sh$target:::command-entry
+{
+	self->command = timestamp;
+}
+
+sh$target:::command-return
+{
+	this->elapsed = timestamp - self->command;
+	this->path = copyinstr(arg1);
+	this->cmd = basename(this->path);
+}
+
+sh$target:::command-return
+/self->command && !isbuiltin[this->cmd]/
+{
+	@types_cmd[basename(copyinstr(arg0)), this->path] = sum(this->elapsed);
+	self->command = 0;
+}
+
+sh$target:::command-return
+/self->command/
+{
+	@types_wasted[basename(copyinstr(arg0)), this->path] =
+	    sum(this->elapsed);
+	self->command = 0;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}
+
+dtrace:::END
+{
+	this->elapsed = (timestamp - self->start) / 1000;
+	printf("Script duration: %d us\n", this->elapsed);
+
+	normalize(@types_cmd, 1000);
+	printf("\nExternal command elapsed times,\n");
+	printf("   %-30s %-22s %8s\n", "FILE", "NAME", "TIME(us)");
+	printa("   %-30s %-22s %@8d\n", @types_cmd);
+
+	normalize(@types_wasted, 1000);
+	printf("\nWasted command elapsed times,\n");
+	printf("   %-30s %-22s %8s\n", "FILE", "NAME", "TIME(us)");
+	printa("   %-30s %-22s %@8d\n", @types_wasted);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_wasted.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Shell/sh_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Shell/sh_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Shell/sh_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,56 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * sh_who.d - trace Bourne shell line execution by process using DTrace.
+ *            Written for the sh DTrace provider.
+ *
+ * $Id: sh_who.d 25 2007-09-12 09:51:58Z brendan $
+ *
+ * This traces shell activity from all Bourne shells on the system that are
+ * running with sh provider support.
+ *
+ * USAGE: sh_who.d	 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of the shell
+ *		UID		User ID of the owner
+ *		LINES		Number of times a line was executed
+ *		FILE		Pathname of the shell or shellscript
+ *
+ * Filenames are printed if available.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+sh*:::line
+{
+	@lines[pid, uid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %s\n", "PID", "UID", "LINES", "FILE");
+	printa("   %6d %6d %@6d %s\n", @lines);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Shell/sh_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Snippits/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Snippits/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Snippits/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,11 @@
+Snippits - DTrace code snippits
+
+   This directory has useful snippits of D scripting in seperate files.
+
+   When coding in DTrace, I frequently refer to the same chunks of code
+   from the same scripts, when I need to do certain things that I have
+   solved in the past. I also refer other people to them when asked.
+   This directory is a library for such "snippits" of code.
+
+   This directory does not contain runnable DTrace scripts.
+

Added: trunk/cddl/contrib/dtracetoolkit/Snippits/fd2pathname.txt
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Snippits/fd2pathname.txt	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Snippits/fd2pathname.txt	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,32 @@
+You have a file descriptor (probably from a syscall), and you want the
+corresponding pathname.
+
+If you are on newer versions of DTrace, there is the fds[] array,
+
+# dtrace -n 'syscall::read:entry { @[fds[arg0].fi_pathname] = count(); }'
+dtrace: description 'syscall::read:entry ' matched 1 probe
+^C
+
+  /etc/minor_perm                                                   2
+  /etc/mnttab                                                       2
+  /etc/motd                                                         2
+  /etc/magic                                                        4
+  /usr/sbin/clri                                                    5
+  /devices/pseudo/clone at 0:ptm                                       6
+  /sbin/mount                                                       6
+  /dev/pts/28                                                       7
+  /devices/pseudo/consms at 0:mouse                                   31
+  /devices/pseudo/conskbd at 0:kbd                                    47
+  <unknown>                                                       351
+
+easy.
+
+but if you are on an older version of DTrace, try this to convert from
+this->fd to self->vpath,
+
+        this->filep =
+	    curthread->t_procp->p_user.u_finfo.fi_list[this->fd].uf_file;
+        this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+        self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ?
+            cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+


Property changes on: trunk/cddl/contrib/dtracetoolkit/Snippits/fd2pathname.txt
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/System/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/System/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/System/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+System - System based analysis
+
+   This would include measuring system wide activity.

Added: trunk/cddl/contrib/dtracetoolkit/System/sar-c.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/System/sar-c.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/System/sar-c.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,101 @@
+#!/usr/sbin/dtrace -s
+/*
+ * sar-c.d - sar -c demo in DTrace.
+ *           Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching similar data as sar -c
+ * from DTrace. This program is intended as a starting point for other
+ * DTrace scripts, by beginning with familiar statistics.
+ *
+ * $Id: sar-c.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	sar-c.d
+ *
+ * FIELDS:
+ *		scall/s		System calls
+ *		sread/s		reads
+ *		swrit/s		writes
+ *		fork/s		forks
+ *		exec/s		execs
+ *		rchar/s		read characters
+ *		wchar/s		write characters
+ *
+ * IDEA: David Rubio, who also wrote the original.
+ *
+ * NOTES:
+ *  As this program does not use Kstat, there is no summary since boot line.
+ *
+ * SEE ALSO:	sar(1)
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 12-Jun-2005  Brendan Gregg   Created this.
+ * 12-Jun-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+inline int SCREEN = 21;
+
+/*
+ * Initialise variables
+ */
+dtrace:::BEGIN
+{
+	scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+	rchar = 0; wchar = 0;
+	lines = SCREEN + 1;
+}
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN,
+tick-1sec
+/lines++ > SCREEN/
+{
+	printf("%-20s %7s %7s %7s %7s %7s %8s %8s\n",
+	    "Time", "scall/s", "sread/s", "swrit/s", "fork/s",
+	    "exec/s", "rchar/s", "wchar/s");
+	lines = 0;
+}
+
+/*
+ * Probe events
+ */
+syscall:::entry    { scall++; }
+sysinfo:::sysread  { sread++; }
+sysinfo:::syswrite { swrit++; }
+sysinfo:::sysfork  { fork++;  }
+sysinfo:::sysvfork { fork++;  }
+sysinfo:::sysexec  { exec++;  }
+sysinfo:::readch   { rchar += arg0; }
+sysinfo:::writech  { wchar += arg0; }
+
+/*
+ * Print output line
+ */
+profile:::tick-1sec
+{
+	/* print line */
+	printf("%20Y %7d %7d %7d %4d.00 %4d.00 %8d %8d\n",
+	    walltimestamp, scall, sread, swrit, fork, exec, rchar, wchar);
+
+	/* clear counters */
+	scall = 0; sread = 0; swrit = 0; fork = 0; exec = 0;
+	rchar = 0; wchar = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/System/sar-c.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/System/syscallbysysc.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/System/syscallbysysc.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/System/syscallbysysc.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,10 @@
+#!/usr/sbin/dtrace -s
+/*
+ * syscallbysysc.d - report on syscalls by syscall. DTrace OneLiner.
+ *
+ * This is a DTrace OneLiner from the DTraceToolkit.
+ *
+ * $Id: syscallbysysc.d 3 2007-08-01 10:50:08Z brendan $
+ */
+
+syscall:::entry { @num[probefunc] = count(); }


Property changes on: trunk/cddl/contrib/dtracetoolkit/System/syscallbysysc.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/System/topsyscall
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/System/topsyscall	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/System/topsyscall	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,184 @@
+#!/usr/bin/ksh
+#
+# topsyscall - display top syscalls by syscall name.
+#              Written using DTrace (Solaris 10 3/05).
+#
+# This program continually prints a report of the top system calls,
+# and refreshes the display every 1 second or as specified at the
+# command line.
+#
+# $Id: topsyscall 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:        topsyscall [-Cs] [interval [count]]
+#
+#		    -C		# don't clear the screen
+#		    -s		# print per second values
+#
+# FIELDS:
+#		load avg	load averages, see uptime(1)
+#		syscalls	total syscalls in this interval
+#		syscalls/s	syscalls per second
+#		SYSCALL		system call name
+#		COUNT		total syscalls in this interval
+#		COUNT/s		syscalls per second
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# 13-Jun-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+count=-1; interval=1; opt_persec=0; opt_clear=1
+
+### Process options
+while getopts Chs name
+do
+        case $name in
+        C)      opt_clear=0 ;;
+        s)      opt_persec=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: topsyscall [-s] [interval [count]]
+		           -C          # don't clear the screen
+		           -s          # print per second values
+		   eg,
+		       topsyscall      # default, 1 second updates
+		       topsyscall 5    # 5 second updates
+		END
+		exit 1
+        esac
+done
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+
+ /* constants */
+ inline int OPT_clear  = '$opt_clear';
+ inline int OPT_persec = '$opt_persec';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$count';
+ inline int SCREEN     = 20;
+ inline string CLEAR   = "'$clearstr'";
+
+ /* variables */
+ dtrace:::BEGIN
+ {
+	secs = INTERVAL;
+	counts = COUNTER;
+	printf("Tracing... Please wait.\n");
+ }
+
+ /* record syscall event */
+ syscall:::entry
+ {
+	@Name[probefunc] = count();
+	@Total = count();
+ }
+
+ /* timer */
+ profile:::tick-1sec
+ {
+        secs--;
+ }
+
+ /* update screen */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+        /* fetch load averages */
+        this->load1a  = `hp_avenrun[0] / 65536;
+        this->load5a  = `hp_avenrun[1] / 65536;
+        this->load15a = `hp_avenrun[2] / 65536;
+        this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+        this->load5b  = ((`hp_avenrun[1] % 65536) * 100) / 65536;
+        this->load15b = ((`hp_avenrun[2] % 65536) * 100) / 65536;
+
+	/* clear screen */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+
+        /* print load average */
+        printf("%Y, load average: %d.%02d, %d.%02d, %d.%02d",
+            walltimestamp, this->load1a, this->load1b, this->load5a,
+            this->load5b, this->load15a, this->load15b);
+
+	/* calculate per second values if needed */
+	OPT_persec ? normalize(@Total, INTERVAL) : 1;
+	OPT_persec ? normalize(@Name, INTERVAL) : 1;
+
+	/* print syscall count */
+	printf("   %s: ", OPT_persec ? "syscalls/s" : "syscalls");
+	printa("%@d\n", at Total);
+
+	/* print report */
+	trunc(@Name, SCREEN);
+	printf("\n   %-25s %12s\n", "SYSCALL", 
+	    OPT_persec ? "COUNT/s" : "COUNT");
+	printa("   %-25s %@12d\n", @Name);
+	printf("\n");
+
+	/* reset variables */
+	trunc(@Name);
+	clear(@Total);
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@Name);
+	trunc(@Total);
+ }
+'
+

Added: trunk/cddl/contrib/dtracetoolkit/System/uname-a.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/System/uname-a.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/System/uname-a.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -s
+/*
+ * uname-a.d - "uname -a" demo in DTrace.
+ *             Written using DTrace (Solaris 10 3/05).
+ *
+ * This has been written to demonstrate fetching the "uname -a" info
+ * from a DTrace script, which turns out to be all kernel variables.
+ * This is intended as a starting point for other DTrace scripts, by
+ * beginning with familiar statistics.
+ *
+ * $Id: uname-a.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	uname-a.d
+ *
+ * FIELDS:	See uname(1) manpage for documentation.
+ *
+ * SEE ALSO:	uname
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * 24-Jul-2005	Brendan Gregg	Created this.
+ * 24-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+#pragma D option bufsize=8k
+
+/* print system info */
+dtrace:::BEGIN
+{
+	printf("%s %s %s %s %s %s %s",
+	    `utsname.sysname,
+	    `utsname.nodename,
+	    `utsname.release,
+	    `utsname.version,
+	    `utsname.machine,
+	    `architecture,
+	    `platform);
+
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/System/uname-a.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,39 @@
+Tcl - DTracing Tcl Programs
+
+   These scripts trace activity of the Tcl programming language, making use
+   of the Tcl DTrace provider which was integrated into the Tcl source in
+   version tcl8.4.16. See the Tcl DTrace wiki page for details:
+
+	http://wiki.tcl.tk/19923
+
+   This provider was written by Daniel Steffen and is currently available
+   by downloading and compiling the Tcl source with the --enable-dtrace
+   option to configure.
+
+   Since the DTrace Tcl provider could be developed a little further, there is
+   a chance that it has changed slightly by the time you are reading this,
+   causing these scripts to either break or behave oddly. Firstly, check for
+   newer versions of the DTraceToolkit; if it hasn't been updated and you need
+   to use these scripts immediately, then updating them shouldn't take
+   too long. The following was the state of the provider when these scripts
+   were written - check for changes and update the scripts accordingly,
+
+	provider tcl {
+	    probe proc-entry(procname, argc, argv);
+	    probe proc-return(procname, retcode);
+	    probe proc-result(procname, retcode, retval, retobj);
+	    probe proc-args(procname, args, ...);
+	    probe cmd-entry(cmdname, argc, argv);
+	    probe cmd-return(cmdname, retval);
+	    probe cmd-args(procname, args, ...);
+	    probe inst-start(instname, depth, stackobj);
+	    probe inst-done(instname, depth, stackobj);
+	    probe obj-create(object);
+	    probe obj-free(object);
+	    proobe tcl-probe(strings, ...);
+	};
+
+   Update: it looks like two new probes have recently been added to the
+   provider: proc-info and cmd-info. I'll need to update these scripts to
+   make use of these new probes.
+

Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calldist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calldist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calldist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,111 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_calldist.d - measure Tcl elapsed time for different types of operation.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calldist.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * USAGE: tcl_calldist.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_calldist.d	# default, truncate to 10 lines
+ *        tcl_calldist.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (proc/cmd/total)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = timestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->proc[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "proc", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "proc", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = timestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->cmd[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "cmd", this->name] =
+	    quantize(this->elapsed_incl / 1000);
+	@types_excl[pid, "cmd", this->name] =
+	    quantize(this->elapsed_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive elapsed times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calldist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,63 @@
+#!/usr/sbin/dtrace -ZCs
+/*
+ * tcl_calls.d - count Tcl calls (proc/cmd) using DTrace.
+ *               Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calls.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of proc or cmd call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		proc		procedure
+ *		cmd		command
+ *
+ * PORTIONS: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry
+{
+	@calls[pid, "proc", copyinstr(arg0)] = count();
+}
+
+tcl*:::cmd-entry
+{
+	@calls[pid, "cmd", copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calltime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calltime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calltime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_calltime.d - measure Tcl elapsed times for different types of operation.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_calltime.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * USAGE: tcl_calltime.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_calltime.d	# default, truncate to 10 lines
+ *        tcl_calltime.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (proc/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total elapsed time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = timestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->proc[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "proc", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "proc", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "proc", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = timestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->elapsed_incl = timestamp - self->cmd[self->depth];
+	this->elapsed_excl = this->elapsed_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "cmd", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "cmd", this->name] = sum(this->elapsed_incl);
+	@types_excl[pid, "cmd", this->name] = sum(this->elapsed_excl);
+	@types_excl[0, "total", "-"] = sum(this->elapsed_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->elapsed_incl;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive elapsed times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_calltime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cpudist.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cpudist.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cpudist.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,111 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_cpudist.d - measure Tcl on-CPU time for different types of operation.
+ *                 Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_cpudist.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * USAGE: tcl_cpudist.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_cpudist.d		# default, truncate to 10 lines
+ *        tcl_cpudist.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		1		Process ID
+ *		2		Type of call (proc/cmd/total)
+ *		3		Name of call
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = vtimestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->proc[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "proc", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "proc", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = vtimestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->cmd[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@types_incl[pid, "cmd", this->name] =
+	    quantize(this->oncpu_incl / 1000);
+	@types_excl[pid, "cmd", this->name] =
+	    quantize(this->oncpu_excl / 1000);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	trunc(@types_excl, top);
+	printf("\nTop %d exclusive on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	printf("\nTop %d inclusive on-CPU times (us),\n", top);
+	printa("   PID=%d, %s, %s %@d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cpudist.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cputime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cputime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cputime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -CZs
+/*
+ * tcl_cputime.d - measure Tcl on-CPU times for different types of operation.
+ *                 Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_cputime.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * USAGE: tcl_cputime.d [top]	# hit Ctrl-C to end
+ *    eg,
+ *        tcl_cputime.d		# default, truncate to 10 lines
+ *        tcl_cputime.d 25	# truncate each report section to 25 lines
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (proc/cmd/total)
+ *		NAME		Name of call
+ *		TOTAL		Total on-CPU time for calls (us)
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#define TOP	10		/* default output truncation */
+#define B_FALSE	0
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+	top = $1 != 0 ? $1 : TOP;
+}
+
+tcl*:::proc-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->proc[self->depth] = vtimestamp;
+}
+
+tcl*:::proc-return
+/self->proc[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->proc[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->proc[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "proc", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "proc", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "proc", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+tcl*:::cmd-entry
+{
+	self->depth++;
+	self->exclude[self->depth] = 0;
+	self->cmd[self->depth] = vtimestamp;
+}
+
+tcl*:::cmd-return
+/self->cmd[self->depth]/
+{
+	this->oncpu_incl = vtimestamp - self->cmd[self->depth];
+	this->oncpu_excl = this->oncpu_incl - self->exclude[self->depth];
+	self->cmd[self->depth] = 0;
+	self->exclude[self->depth] = 0;
+	this->name = copyinstr(arg0);
+
+	@num[pid, "cmd", this->name] = count();
+	@num[0, "total", "-"] = count();
+	@types_incl[pid, "cmd", this->name] = sum(this->oncpu_incl);
+	@types_excl[pid, "cmd", this->name] = sum(this->oncpu_excl);
+	@types_excl[0, "total", "-"] = sum(this->oncpu_excl);
+
+	self->depth--;
+	self->exclude[self->depth] += this->oncpu_incl;
+}
+
+dtrace:::END
+{
+	trunc(@num, top);
+	printf("\nTop %d counts,\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa("   %6d %-10s %-48s %@8d\n", @num);
+
+	trunc(@types_excl, top);
+	normalize(@types_excl, 1000);
+	printf("\nTop %d exclusive on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_excl);
+
+	trunc(@types_incl, top);
+	normalize(@types_incl, 1000);
+	printf("\nTop %d inclusive on-CPU times (us),\n", top);
+	printf("   %6s %-10s %-48s %8s\n", "PID", "TYPE", "NAME", "TOTAL");
+	printa("   %6d %-10s %-48s %@8d\n", @types_incl);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_cputime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,86 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_flow.d - snoop Tcl execution showing procedure flow using DTrace.
+ *              Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_flow.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_flow.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		->		procedure entry
+ *		<-		procedure return
+ *		 >		command entry
+ *		 <		command return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "CALL");
+}
+
+tcl*:::proc-entry
+{
+	printf("%3d %6d %-16d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::proc-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}
+
+tcl*:::cmd-entry
+{
+	printf("%3d %6d %-16d %*s > %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::cmd-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s < %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flowtime.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flowtime.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flowtime.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,105 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_flowtime.d - snoop Tcl execution showing procedure flow and delta times.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_flowtime.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_flowtime.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TIME(us)	Time since boot, us
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		->		procedure entry
+ *		<-		procedure return
+ *		 >		command entry
+ *		 <		command return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s %9s -- %s\n", "C", "PID", "TIME(us)",
+	    "DELTA(us)", "CALL");
+}
+
+tcl*:::proc-entry,
+tcl*:::proc-return,
+tcl*:::cmd-entry,
+tcl*:::cmd-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+tcl*:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %*s > %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %*s < %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_flowtime.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_ins.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_ins.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_ins.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,57 @@
+#!/usr/sbin/dtrace -ZCs
+/*
+ * tcl_ins.d - count Tcl instructions using DTrace.
+ *             Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_ins.d 64 2007-10-04 08:35:29Z claire $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_calls.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (see below)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * TYPEs:
+ *		inst		instruction
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::inst-start
+{
+	@calls[pid, "inst", copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_ins.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_insflow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_insflow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_insflow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,123 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_insflow.d - snoop Tcl execution showing procedure flow and delta times.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_insflow.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_insflow.d		# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TIME(us)	Time since boot, us
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (proc/cmd/inst)
+ *		CALL		Tcl command or procedure name
+ *
+ * LEGEND:
+ *		proc		procedure
+ *		cmd		command
+ *		inst		instruction
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s %9s %5s -- %s\n", "C", "PID", "TIME(us)",
+	    "DELTA(us)", "TYPE", "CALL");
+}
+
+tcl*:::proc-entry,
+tcl*:::proc-return,
+tcl*:::cmd-entry,
+tcl*:::cmd-return
+/self->last == 0/
+{
+	self->last = timestamp;
+}
+
+tcl*:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "proc", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "proc", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "cmd", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "cmd", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}
+
+tcl*:::inst-start
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%3d %6d %-16d %9d %5s %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "inst", self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+	self->last = timestamp;
+}
+
+tcl*:::inst-done
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %9d %5s %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    this->delta, "inst", self->depth * 2, "", copyinstr(arg0));
+	self->last = timestamp;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_insflow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_proccalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_proccalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_proccalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,53 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_methodcalls.d - count Tcl method calls DTrace.
+ *                     Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_proccalls.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_methodcalls.d 	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		COUNT		Number of calls during sample
+ *		PROCEDURE	Tcl procedure name
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry
+{
+	@calls[pid, copyinstr(arg0)] = count();
+}
+
+dtrace:::END
+{
+	printf(" %6s %8s %s\n", "PID", "COUNT", "PROCEDURE");
+	printa(" %6d %@8d %s\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_proccalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_procflow.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_procflow.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_procflow.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,70 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_procflow.d - snoop Tcl execution showing procedure flow using DTrace.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_procflow.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_procflow.d	# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		TIME(us)	Time since boot, us
+ *		PID		Process ID
+ *		PROCEDURE	Tcl procedure name
+ *
+ * LEGEND:
+ *		->		proc entry
+ *		<-		proc return
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+	printf("%3s %6s %-16s -- %s\n", "C", "PID", "TIME(us)", "PROCEDURE");
+}
+
+tcl*:::proc-entry
+{
+	printf("%3d %6d %-16d %*s-> %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+	self->depth++;
+}
+
+tcl*:::proc-return
+{
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%3d %6d %-16d %*s<- %s\n", cpu, pid, timestamp / 1000,
+	    self->depth * 2, "", copyinstr(arg0));
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_procflow.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_stat.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_stat.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_stat.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,137 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_stat.d - Tcl operation stats using DTrace.
+ *            Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_stat.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_stat.d [interval [count]]
+ *
+ * FIELDS:
+ *		EXEC/s		Tcl programs executed per second, including
+ *				those without Tcl provider support
+ *		PROC/s		Procedures called, per second
+ *		CMD/s		Commands created, per second
+ *		OBJNEW/s	Objects created, per second
+ *		OBJFRE/s	Objects freed, per second
+ *		OP/s		Bytecode operations, per second
+ *
+ * The numbers are 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 you
+ * may have older Tcl software that does not have the integrated DTrace
+ * provider (or newer software where the provider has changed).
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option defaultargs
+
+inline int SCREEN = 21;
+
+dtrace:::BEGIN
+{
+	execs = procs = cmds = objnew = objfree = ops = 0;
+	lines = SCREEN + 1;
+	interval = $1 ? $1 : 1;
+	counts = $2 ? $2 : -1;
+	secs = interval;
+	first = 1;
+}
+
+profile:::tick-1sec
+{
+	secs--;
+}
+
+/*
+ * Print Header
+ */
+dtrace:::BEGIN,
+profile:::tick-1sec
+/first || (secs == 0 && lines > SCREEN)/
+{
+	printf("%-20s %6s %8s %8s %8s %8s %8s\n", "TIME", "EXEC/s",
+	    "PROC/s", "CMD/s", "OBJNEW/s", "OBJFRE/s", "OP/s");
+	lines = 0;
+	first = 0;
+}
+
+/*
+ * Tally Data
+ */
+proc:::exec-success
+/execname == "tcl" || execname == "tclsh"/
+{
+	execs++;
+}
+
+tcl*:::proc-entry
+{
+	procs++;
+}
+
+tcl*:::cmd-entry
+{
+	cmds++;
+}
+
+tcl*:::obj-create
+{
+	objnew++;
+}
+
+tcl*:::obj-free
+{
+	objfree++;
+}
+
+tcl*:::inst-start
+{
+	ops++;
+}
+
+/*
+ * Print Output
+ */
+profile:::tick-1sec
+/secs == 0/
+{
+	printf("%-20Y %6d %8d %8d %8d %8d %8d\n", walltimestamp,
+	    execs / interval, procs / interval, cmds / interval,
+	    objnew / interval, objfree / interval, ops / interval);
+	execs = procs = cmds = objnew = objfree = ops = 0;
+	secs = interval;
+	lines++;
+	counts--;
+}
+
+/*
+ * End
+ */
+profile:::tick-1sec
+/counts == 0/
+{
+        exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_stat.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscalls.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscalls.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscalls.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,66 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_syscalls.d - count Tcl calls and syscalls using DTrace.
+ *                  Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_syscalls.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_syscalls.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID
+ *		TYPE		Type of call (method/syscall)
+ *		NAME		Name of call
+ *		COUNT		Number of calls during sample
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl$target:::proc-entry
+{
+	@calls[pid, "proc", copyinstr(arg0)] = count();
+}
+
+tcl$target:::cmd-entry
+{
+	@calls[pid, "cmd", copyinstr(arg0)] = count();
+}
+
+syscall:::entry
+/pid == $target/
+{
+	@calls[pid, "syscall", probefunc] = count();
+}
+
+
+dtrace:::END
+{
+	printf(" %6s %-8s %-52s %8s\n", "PID", "TYPE", "NAME", "COUNT");
+	printa(" %6d %-8s %-52s %@8d\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscalls.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscolors.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscolors.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscolors.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,139 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_syscolors.d - trace Tcl program flow plus syscalls, in color.
+ *                   Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_syscolors.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_syscolors.d { -p PID | -c cmd }	# hit Ctrl-C to end
+ *
+ * This watches Tcl method entries and returns, and indents child
+ * method calls.
+ *
+ * FIELDS:
+ *		C		CPU-id
+ *		PID		Process ID
+ *		TID		Thread ID
+ *		DELTA(us)	Elapsed time from previous line to this line
+ *		TYPE		Type of call (proc/cmd/syscall)
+ *		NAME		Tcl proc/cmd or syscall name
+ *
+ * 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.
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+#pragma D option switchrate=10
+
+self int depth;
+
+dtrace:::BEGIN
+{
+        color_tcl = "\033[2;35m";		/* violet, faint */
+        color_line = "\033[1;35m";		/* violet, bold */
+        color_syscall = "\033[2;32m";		/* green, faint */
+        color_off = "\033[0m";			/* default */
+
+	printf("%3s %6s %9s %-8s -- %s\n", "C", "PID", "DELTA(us)", "TYPE",
+	    "NAME");
+}
+
+tcl$target:::method-entry,
+tcl$target:::method-return,
+syscall:::entry,
+syscall:::return
+/self->last == 0 && pid == $target/
+{
+	self->last = timestamp;
+}
+
+tcl$target:::proc-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "proc", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depth++;
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::proc-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "proc", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::cmd-entry
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "cmd", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depth++;
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+tcl$target:::cmd-return
+{
+	this->delta = (timestamp - self->last) / 1000;
+	self->depth -= self->depth > 0 ? 1 : 0;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_tcl, cpu,
+	    pid, this->delta, "cmd", self->depth * 2, "", copyinstr(arg0),
+	    color_off);
+	self->depthlast = self->depth;
+	self->last = timestamp;
+}
+
+syscall:::entry
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s-> %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+syscall:::return
+/pid == $target/
+{
+	this->delta = (timestamp - self->last) / 1000;
+	printf("%s%3d %6d %9d %-8s %*s<- %s%s\n", color_syscall,
+	    cpu, pid, this->delta, "syscall", self->depthlast * 2, "",
+	    probefunc, color_off);
+	self->last = timestamp;
+}
+
+proc:::exit
+/pid == $target/
+{
+	exit(0);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_syscolors.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_who.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_who.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_who.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,62 @@
+#!/usr/sbin/dtrace -Zs
+/*
+ * tcl_who.d - trace Tcl calls by process using DTrace.
+ *           Written for the Tcl DTrace provider.
+ *
+ * $Id: tcl_who.d 63 2007-10-04 04:34:38Z brendan $
+ *
+ * This traces activity from all Tcl processes on the system with DTrace
+ * provider support (tcl8.4.16).
+ *
+ * USAGE: tcl_who.d 		# hit Ctrl-C to end
+ *
+ * FIELDS:
+ *		PID		Process ID of Tcl
+ *		UID		User ID of the owner
+ *		CALLS		Number of calls made (proc + cmd)
+ *		ARGS		Process name and arguments
+ *
+ * Calls is a measure of activity, and is a count of the procedures and
+ * commands that Tcl called.
+ *
+ * The argument list is truncated at 55 characters (up to 80 is easily
+ * available). To easily read the full argument list, use other system tools;
+ * on Solaris use "pargs PID".
+ *
+ * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-Sep-2007	Brendan Gregg	Created this.
+ */
+
+#pragma D option quiet
+
+dtrace:::BEGIN
+{
+	printf("Tracing... Hit Ctrl-C to end.\n");
+}
+
+tcl*:::proc-entry,
+tcl*:::cmd-entry
+{
+	@calls[pid, uid, curpsinfo->pr_psargs] = count();
+}
+
+dtrace:::END
+{
+	printf("   %6s %6s %6s %-55s\n", "PID", "UID", "CALLS", "ARGS");
+	printa("   %6d %6d %@6d %-55.55s\n", @calls);
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/Tcl/tcl_who.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/User/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/User/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/User/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+User - User based analysis
+
+   This would include activity by UID.

Added: trunk/cddl/contrib/dtracetoolkit/User/setuids.d
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/User/setuids.d	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/User/setuids.d	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,82 @@
+#!/usr/sbin/dtrace -s
+/*
+ * setuids.d - snoop setuid calls. This can examine user logins.
+ *             Written in DTrace (Solaris 10 3/05).
+ *
+ * $Id: setuids.d 3 2007-08-01 10:50:08Z brendan $
+ *
+ * USAGE:	setuids.d
+ *
+ * FIELDS:
+ *		UID	user ID (from)
+ *		SUID	set user ID (to)
+ *		PPID	parent process ID
+ *		PID	process ID
+ *		PCMD	parent command
+ *		CMD	command (full arguments)
+ *
+ * SEE ALSO: BSM auditing
+ *
+ * COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+ *
+ * CDDL HEADER START
+ *
+ *  The contents of this file are subject to the terms of the
+ *  Common Development and Distribution License, Version 1.0 only
+ *  (the "License").  You may not use this file except in compliance
+ *  with the License.
+ *
+ *  You can obtain a copy of the license at Docs/cddl1.txt
+ *  or http://www.opensolaris.org/os/licensing.
+ *  See the License for the specific language governing permissions
+ *  and limitations under the License.
+ *
+ * CDDL HEADER END
+ *
+ * 09-May-2004	Brendan Gregg	Created this.
+ * 08-May-2005	   "      " 	Used modern variable builtins.
+ * 28-Jul-2005	   "      "	Last update.
+ */
+
+#pragma D option quiet
+
+/*
+ * Print header
+ */
+dtrace:::BEGIN
+{
+	printf("%5s %5s %5s %5s %-12s %s\n",
+	    "UID", "SUID", "PPID", "PID", "PCMD", "CMD");
+}
+
+/*
+ * Save values
+ */
+syscall::setuid:entry
+{
+	self->uid = uid;
+	self->suid = arg0;
+	self->ok = 1;
+}
+
+/*
+ * Print output on success
+ */
+syscall::setuid:return
+/arg0 == 0 && self->ok/
+{
+	printf("%5d %5d %5d %5d %-12s %S\n",
+	    self->uid, self->suid, ppid, pid,
+	    curthread->t_procp->p_parent->p_user.u_comm,
+	    curpsinfo->pr_psargs);
+}
+
+/*
+ * Cleanup
+ */
+syscall::setuid:return
+{
+	self->uid = 0;
+	self->suid = 0;
+	self->ok = 0;
+}


Property changes on: trunk/cddl/contrib/dtracetoolkit/User/setuids.d
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/Version
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Version	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Version	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1 @@
+DTraceToolkit version 0.99, 30-Sep-2007

Added: trunk/cddl/contrib/dtracetoolkit/Zones/Readme
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Zones/Readme	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Zones/Readme	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,3 @@
+Zones - Zones based analysis
+
+   This would include activity by Zone.

Added: trunk/cddl/contrib/dtracetoolkit/Zones/zvmstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/Zones/zvmstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/Zones/zvmstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,277 @@
+#!/usr/bin/ksh
+#
+# zvmstat - print vmstat style info per Zone.
+#           This uses DTrace (Solaris 10 3/05).
+#
+# This program must be run from the global zone as root.
+#
+# $Id: zvmstat 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE: 	zvmstat [-ht] [interval [count]]
+#
+#		zvmstat         # default output
+#			-t      # print times
+#  eg,
+#		zvmstat 1       # print every 1 second
+#		zvmstat 10 5    # print 5 x 10 second samples
+#		zvmstat -t 5    # print every 5 seconds with time
+#
+#
+# FIELDS:
+#		re		page reclaims
+#		mf		minor faults
+#		fr		pages freed
+#		sr		scan rate
+#		epi		executable pages paged in
+#		epo		executable pages paged out
+#		epf		executable pages freed
+#		api		anonymous pages paged in
+#		apo		anonymous pages paged out
+#		apf		anonymous pages freed
+#		fpi		filesystem pages paged in
+#		fpo		filesystem pages paged out
+#		fpf		filesystem pages freed
+#
+# NOTES: 
+# - Zone status should really be provided by Kstat, which currently
+#   provides system wide values, per CPU and per processor set, but not per
+#   zone. DTrace can fill this role in the meantime until Kstat supports zones.
+# - First output does not contain summary since boot.
+#
+# SEE ALSO: prstat -Z
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# BUGS:
+# - First output may not contain all zones due to how loops are achieved.
+#   Check for newer versions.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 11-May-2005   Brendan Gregg   Created this.
+# 26-Jul-2005	   "      "	Improved code.
+# 08-Jan-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_time=0; interval=1; counts=1
+
+### process options
+while getopts ht name
+do
+	case $name in
+	t)      opt_time=1 ;;
+	h|?)    cat <<-END >&2
+		USAGE: zvmstat [-ht] [interval [count]]
+		       zvmstat         # default output
+		               -t      # print times
+		   eg,
+		       zvmstat 1       # print every 1 second
+		       zvmstat 10 5    # print 5 x 10 second samples
+		       zvmstat -t 5    # print every 5 seconds with time
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+### option logic
+if (( "0$1" > 0 )); then
+        interval=$1; counts=-1; shift
+fi
+if (( "0$1" > 0 )); then
+        counts=$1; shift
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace -n '
+ #pragma D option quiet
+ #pragma D option destructive
+ #pragma D option switchrate=10
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_time   = '$opt_time';
+ inline int INTERVAL   = '$interval';
+ inline int COUNTER    = '$counts';
+
+ /* 
+  * Initialise variables
+  */
+ dtrace:::BEGIN 
+ {
+	secs = INTERVAL; 
+	counts = COUNTER;
+	zonemax = 0;
+	listing = 1;
+	re[""] = 0; pi[""] = 0; po[""] = 0;
+	mf[""] = 0; sr[""] = 0; fr[""] = 0;
+	epi[""] = 0; epo[""] = 0; epf[""] = 0;
+	api[""] = 0; apo[""] = 0; apf[""] = 0;
+	fpi[""] = 0; fpo[""] = 0; fpf[""] = 0;
+ }
+
+ /*
+  * Build zonelist array
+  *
+  * Here we want the output of a command to be saved into an array
+  * inside dtrace. This is done by running the command, sending the
+  * output to /dev/null, and by probing its write syscalls from dtrace. 
+  *
+  * This is an example of a "scraper".
+  */
+
+ /*
+  * List zones
+  */
+ dtrace:::BEGIN 
+ {
+	/* run zoneadm */
+	system("/usr/sbin/zoneadm list > /dev/null; echo END > /dev/null");
+ }
+
+ /*
+  * Scrape zone listing
+  */
+ syscall::write:entry
+ /listing && (execname == "zoneadm") && 
+ (curthread->t_procp->p_parent->p_ppid == $pid)/
+ {
+	/* read zoneadm output */
+	zonelist[zonemax] = stringof(copyin(arg1, arg2 - 1));
+
+	/* increment max number of zones */
+	zonemax++;
+ }
+
+ /*
+  * Finish scraping zones
+  */
+ syscall::write:entry
+ /listing && (execname == "sh") && (ppid == $pid)/
+ {
+	/*
+	 * this end tag lets us know our zonelist has finished.
+	 * thanks A. Packer.
+	 */
+	listing = stringof(copyin(arg1, arg2 - 1)) == "END" ? 0 : 1;
+ }
+
+ /*
+  * Record vminfo counters
+  */
+ vminfo:::pgrec      { re[zonename] += arg0; }
+ vminfo:::as_fault   { mf[zonename] += arg0; }
+ vminfo:::scan       { sr[zonename] += arg0; }
+ vminfo:::execpgin   { epi[zonename] += arg0; }
+ vminfo:::execpgout  { epo[zonename] += arg0; }
+ vminfo:::execfree   { epf[zonename] += arg0; fr[zonename] += arg0; }
+ vminfo:::anonpgin   { api[zonename] += arg0; }
+ vminfo:::anonpgout  { apo[zonename] += arg0; }
+ vminfo:::anonfree   { apf[zonename] += arg0; fr[zonename] += arg0; }
+ vminfo:::fspgin     { fpi[zonename] += arg0; }
+ vminfo:::fspgout    { fpo[zonename] += arg0; }
+ vminfo:::fsfree     { fpf[zonename] += arg0; fr[zonename] += arg0; }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Check for exit
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Print header line
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* set counters */
+	secs = INTERVAL;
+	counts--;
+	zonei = 0;
+
+	/* print time */
+	OPT_time ? printf("\n%Y,\n",walltimestamp) : 1;
+
+	/* print output line */
+	printf("%10s %4s %5s %4s %5s %4s %4s %4s %4s %4s %4s %4s %4s %4s\n",
+	    "ZONE", "re", "mf", "fr", "sr", "epi", "epo", "epf", "api", "apo",
+	    "apf", "fpi", "fpo", "fpf");
+
+	/* ensure zone writes are triggered */
+	printf(" \b");
+ }
+
+ /*
+  * Print zone status line
+  *
+  * This is a fairly interesting function in that it loops over the keys in 
+  * an associative array and prints out the values. DTrace cant really do 
+  * loops, and generally doesnt need to. We "cheat" by generating writes
+  * in the above probe which in turn trigger the probe below which 
+  * contains the contents of each loop. Dont do this at home! We are
+  * supposed to use aggreagations instead, wherever possible.
+  *
+  * This is an example of a "feedback loop".
+  */
+ syscall::write:return
+ /pid == $pid && zonei < zonemax/
+ {
+	/* fetch zonename */
+	self->zone = zonelist[zonei];
+
+	/* print output */
+	printf("%10s %4d %5d %4d %5d %4d %4d %4d %4d %4d %4d %4d %4d %4d\n",
+	    self->zone, re[self->zone], mf[self->zone], fr[self->zone],
+	    sr[self->zone], epi[self->zone], epo[self->zone],
+	    epf[self->zone], api[self->zone], apo[self->zone],
+	    apf[self->zone], fpi[self->zone], fpo[self->zone],
+	    fpf[self->zone]);
+	
+	/* clear values */
+	re[self->zone] = 0; mf[self->zone] = 0; fr[self->zone] = 0;
+	sr[self->zone] = 0; epi[self->zone] = 0; epo[self->zone] = 0;
+	epf[self->zone] = 0; api[self->zone] = 0; apo[self->zone] = 0;
+	apf[self->zone] = 0; fpi[self->zone] = 0; fpo[self->zone] = 0;
+	fpf[self->zone] = 0;
+	self->zone = 0;
+	
+	/* go to next zone */
+	zonei++;
+ }
+'
+

Added: trunk/cddl/contrib/dtracetoolkit/dexplorer
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/dexplorer	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/dexplorer	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,547 @@
+#!/usr/bin/ksh
+#
+# dexplorer - DTrace system explorer, runs a collection of scripts.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This program automatically runs a collection of DTrace scripts to examine
+# many areas of the system, and places the output in a meaningful directory
+# structure that is tar'd and gzip'd.
+#
+# $Id: dexplorer 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	dexplorer [-yDT] [-d outputdir] [-i interval]
+#
+#                  -q              # quiet mode
+#                  -y              # "yes", don't prompt for confirmation
+#                  -D              # don't delete output dir
+#                  -T              # don't create output tar.gz
+#                  -d outputdir    # output directory
+#                  -i interval     # interval for each sample
+#    eg,
+#               dexplorer          # default is 5 second samples
+#               dexplorer -y -i30  # no prompting, with 30 second samples
+#
+# SEE ALSO:	DTraceToolkit
+#
+# THANKS: David Visser, et all. for the idea and encouragement.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# CODE:
+#
+#  This is currently a monolithic script, and while it contains only
+#  a few dozen straigftforward DTrace scripts I think it's desirable to
+#  keep it that way. The scripts themselves have designed to be very
+#  generic (eg, switching on all sdt:::), and are aggregations to keep a 
+#  limit on the size of the output.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 23-Jun-2005	Brendan Gregg	Created this.
+# 28-Jun-2005	   "      "	Last update.
+
+#
+#  Default variables
+#
+interval=5				# time of each sample
+verbose=1				# print screen output
+prompt=1				# prompt before run
+tar=1					# create tar file
+delete=1				# delete output dirs
+dtrace=/usr/sbin/dtrace			# path to dtrace
+root=.					# default output dir
+PATH=/usr/bin:/usr/sbin			# safe path
+dir=de_`uname -n`_`date +%Y%m%d%H%M`	# OUTPUT FILENAME
+samples=20				# max number of tests
+current=0				# current sample
+
+#
+#  Process options
+#
+while getopts d:hi:qyDT name
+do
+	case $name in
+	d)      root=$OPTARG ;;
+	i)      interval=$OPTARG ;;
+	q)      verbose=0 ;;
+	y)      prompt=0 ;;
+	D)      delete=0 ;;
+	T)      tar=0 ;;
+	h|?)    cat <<-END >&2
+		USAGE: dexplorer [-qyDT] [-d outputdir] [-i interval]
+		 
+		        -q               # quiet mode
+		        -y               # "yes", don't prompt for confirmation
+		        -D               # don't delete output dir
+		        -T               # don't create output tar.gz
+		        -d outputdir     # output directory
+		        -i interval      # interval for each sample
+		   eg,
+		       dexplorer         # default is 5 second samples
+		       dexplorer -y -i30 # no prompting, with 30 second samples
+		END
+		exit 1
+	esac
+done
+shift $(( OPTIND - 1 ))
+
+#
+#  Confirm path
+#
+if [[ "$prompt" == "1" ]] ; then
+	if [[ "$root" == "." ]]; then
+		print "Output dir will be the current dir ($PWD)."
+	else
+		print "Output dir will be $root"
+	fi
+	print -n "Hit enter for yes, or type path: "
+	read ans junk
+	if [[ "$ans" == [yY] || "$ans" == [yY]es ]]; then
+		print "WARNING: I didn't ask for \"$ans\"!"
+		print "\tI was asking for the path or just enter."
+		print "\tignoring \"$ans\"..."
+	fi
+	if [[ "$ans" != "" ]]; then
+		root=$ans
+		print "Output is now $root."
+	fi
+fi
+
+#
+#  Sanity checks
+#
+if [[ "$interval" == *[a-zA-Z]* ]]; then
+	print "ERROR2: Invalid interval $interval.\n"
+	print "Please use a number of seconds."
+	exit 2
+fi
+if (( ${#interval} < 1 )); then
+	print "ERROR3: Length of interval $interval too short.\n"
+	print "Minimum 1 second."
+	exit 3
+fi
+if [[ ! -d "$root" ]]; then
+	print "ERROR4: Output directory \"$root\" does not exist.\n"
+	print "Perhaps try a mkdir first?"
+	print "or use an existing dir, eg \"/tmp\""
+	exit 4
+fi
+if [[ ! -w "$root" ]]; then
+	print "ERROR5: Can't write to output directory \"$root\".\n"
+	print "Are you logged in as root?"
+	print "Perhaps try another directory, eg \"/tmp\""
+	exit 5
+fi
+if [[ `$dtrace -b1k -qn 'BEGIN { trace(pid); exit(0); }'` == "" ]]; then
+	print "ERROR6: Unable to run dtrace!\n"
+	print "Perhaps this is a permission problem? Try running as root."
+	exit 6
+fi
+
+# calculate total time
+(( total = interval * samples ))
+if (( total > 180 )); then
+	(( total = total / 60 ))
+	total="$total minutes"
+else
+	total="$total seconds"
+fi
+
+#
+#  Common Functions
+#
+function decho {
+	if (( verbose )); then print "$*"; fi
+}
+clean="sed /^\$/d"
+header='dtrace:::BEGIN {
+		printf("%Y, ", walltimestamp);
+		printf("%s %s %s %s %s, ", `utsname.sysname, `utsname.nodename,
+		    `utsname.release, `utsname.version, `utsname.machine);
+		printf("%d secs\n",'$interval');
+	}
+	profile:::tick-'$interval'sec { exit(0); }
+	'
+function dstatus {
+	if (( verbose )); then 
+		(( percent = current * 100 / samples ))
+		printf "%3d%% $*\n" $percent
+		(( current = current + 1 ))
+	fi
+}
+
+########################################
+#  START                               #
+########################################
+
+#
+#  Make dirs
+#
+err=0
+cd $root
+(( err = err + $? ))
+mkdir $dir
+(( err = err + $? ))
+cd $dir
+(( err = err + $? ))
+base1=${PWD##*/}
+base2=${dir##*/}
+if [[ "$base1" != "$base2" || "$err" != "0" ]]; then
+	print "ERROR7: tried to mkdir $dir from $root, but something failed.\n"
+	print "Check directories before rerunning."
+	exit 7
+fi
+mkdir Cpu
+mkdir Disk
+mkdir Mem
+mkdir Net
+mkdir Proc
+mkdir Info
+
+#
+#  Create Log
+#
+decho "Starting dexplorer ver 0.76."
+decho "Sample interval is $interval seconds. Total run is > $total."
+( print "dexplorer ver 0.76\n------------------"
+print -n "System: "
+uname -a
+print -n "Start:  "
+date ) > log
+
+#
+#  Capture Standard Info
+#
+args='pid,ppid,uid,gid,projid,zoneid,pset,pri,nice,'
+args=$args'class,vsz,rss,time,pcpu,pmem,args'
+uname -a > Info/uname-a		# System
+psrinfo -v > Info/psrinfo-v	# CPU
+prtconf > Info/prtconf		# Memory (+ devices)
+df -k > Info/df-k		# Disk
+ifconfig -a > Info/ifconfig-a	# Network
+ps -eo $args > Info/ps-o	# Processes
+uptime > Info/uptime		# Load
+
+#
+#  Cpu Tests, DTrace
+#
+
+dstatus "Interrupts by CPU..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { @num[cpu] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-16s %16s\n", "CPU", "INTERRUPTS");
+		printa("%-16d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_by_cpu
+
+dstatus "Interrupt times..."
+$dtrace -qn "$header"'
+	sdt:::interrupt-start { self->ts = vtimestamp; }
+	sdt:::interrupt-complete
+	/self->ts && arg0 != 0/
+	{
+		this->devi = (struct dev_info *)arg0;
+		self->name = this->devi != 0 ?
+		    stringof(`devnamesp[this->devi->devi_major].dn_name) : "?";
+		this->inst = this->devi != 0 ? this->devi->devi_instance : 0;
+		@num[self->name, this->inst] = sum(vtimestamp - self->ts);
+		self->name = 0;
+	}
+	sdt:::interrupt-complete { self->ts = 0; }
+	dtrace:::END
+	{ 
+		printf("%11s    %16s\n", "DEVICE", "TIME (ns)");
+		printa("%10s%-3d %@16d\n", @num);
+	}
+' | $clean > Cpu/interrupt_time
+
+dstatus "Dispatcher queue length by CPU..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		this->num = curthread->t_cpu->cpu_disp->disp_nrunnable;
+		@length[cpu] = lquantize(this->num, 0, 100, 1);
+	}
+	dtrace:::END { printa(" CPU %d%@d\n", @length); }
+' | $clean > Cpu/dispqlen_by_cpu
+
+dstatus "Sdt counts..."
+$dtrace -qn "$header"'
+	sdt:::{ @num[probefunc, probename] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %-32s %10s\n", "FUNC", "NAME", "COUNT");
+		printa("%-32s %-32s %@10d\n", @num);
+	}
+' | $clean > Cpu/sdt_count
+
+#
+#  Disk Tests, DTrace
+#
+
+dstatus "Pages paged in by process..."
+$dtrace -qn "$header"'
+	vminfo:::pgpgin { @pg[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "PAGES");
+		printa("%6d %-16s %@16d\n", @pg);
+	}
+' | $clean > Disk/pgpgin_by_process
+
+dstatus "Files opened successfully count..."
+$dtrace -qn "$header"'
+	syscall::open*:entry { self->file = copyinstr(arg0); self->ok = 1; }
+	syscall::open*:return /self->ok && arg0 != -1/ 
+	{ 
+		@num[self->file] = count();
+	}
+	syscall::open*:return /self->ok/ { self->file = 0; self->ok = 0; }
+	dtrace:::END
+	{ 
+		printf("%-64s %8s\n", "FILE", "COUNT");
+		printa("%-64s %@8d\n", @num);
+	}
+' | $clean > Disk/fileopen_count
+
+dstatus "Disk I/O size distribution by process..."
+$dtrace -qn "$header"'
+	io:::start { @size[pid, execname] = quantize(args[0]->b_bcount); }
+' | $clean > Disk/sizedist_by_process
+
+#
+#  Mem Tests, DTrace
+#
+
+dstatus "Minor faults by process..."
+$dtrace -qn "$header"'
+	vminfo:::as_fault { @mem[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "MINFAULTS");
+		printa("%6d %-16s %@16d\n", @mem);
+	}
+' | $clean > Mem/minf_by_process
+
+
+dstatus "Vminfo data by process..."
+$dtrace -qn "$header"'
+	vminfo::: { @data[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n",
+		    "PID", "CMD", "STATISTIC", "VALUE");
+		printa("%6d %-16s %-16s %@16d\n", @data);
+	}
+' | $clean > Mem/vminfo_by_process
+
+#
+#  Net Tests, DTrace
+#
+
+dstatus "Mib data by mib statistic..."
+$dtrace -qn "$header"'
+	mib::: { @data[probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "STATISTIC", "VALUE");
+		printa("%-32s %@16d\n", @data);
+	}
+' | $clean > Net/mib_data
+
+dstatus "TCP write bytes by process..."
+$dtrace -qn "$header"'
+	fbt:ip:tcp_output:entry
+	{
+		this->size = msgdsize(args[1]);
+		@size[pid, execname] = sum(this->size);
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %12s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@12d\n", @size);
+	}
+' | $clean > Net/tcpw_by_process
+
+#
+#  Proc Tests, DTrace
+#
+
+dstatus "Sample process @ 1000 Hz..."
+$dtrace -qn "$header"'
+	profile:::profile-1000
+	{
+		@num[pid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %12s %s\n", "PID", "SAMPLES", "ARGS");
+		printa("%6d %@12d %S\n", @num);
+	}
+' | $clean > Proc/sample_process
+
+dstatus "Syscall count by process..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[pid, execname, probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%6s %-24s %-24s %8s\n",
+		    "PID", "CMD", "SYSCALL", "COUNT");
+		printa("%6d %-24s %-24s %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_by_process
+
+dstatus "Syscall count by syscall..."
+$dtrace -qn "$header"'
+	syscall:::entry { @num[probefunc] = count(); }
+	dtrace:::END
+	{ 
+		printf("%-32s %16s\n", "SYSCALL", "COUNT");
+		printa("%-32s %@16d\n", @num);
+	}
+' | $clean > Proc/syscall_count
+
+dstatus "Read bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::readch { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/readb_by_process
+
+dstatus "Write bytes by process..."
+$dtrace -qn "$header"'
+	sysinfo:::writech { @bytes[pid, execname] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %16s\n", "PID", "CMD", "BYTES");
+		printa("%6d %-16s %@16d\n", @bytes);
+	}
+' | $clean > Proc/writeb_by_process
+
+dstatus "Sysinfo counts by process..."
+$dtrace -qn "$header"'
+	sysinfo::: { @num[pid, execname, probename] = sum(arg0); }
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-16s %16s\n", 
+		    "PID", "CMD", "STATISTIC", "COUNT");
+		printa("%6d %-16s %-16s %@16d\n", @num);
+	}
+' | $clean > Proc/sysinfo_by_process
+
+dstatus "New process counts with arguments..."
+$dtrace -qn "$header"'
+	proc:::exec-success
+	{
+		@num[pid, ppid, curpsinfo->pr_psargs] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %6s %8s %s\n", "PID", "PPID", "COUNT", "ARGS");
+		printa("%6d %6d %@8d %S\n", @num);
+	}
+' | $clean > Proc/newprocess_count
+
+dstatus "Signal counts..."
+$dtrace -qn "$header"'
+	proc:::signal-send { 
+		@num[execname,args[2],stringof(args[1]->pr_fname)] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%-16s %-8s %-16s %8s\n",
+		    "FROM", "SIG", "TO", "COUNT");
+		printa("%-16s %-8d %-16s %@8d\n", @num);
+	}
+' | $clean > Proc/signal_count
+
+dstatus "Syscall error counts..."
+$dtrace -qn "$header"'
+	syscall:::return /(int)arg0 == -1/
+	{
+		@num[pid, execname, probefunc, errno] = count();
+	}
+	dtrace:::END
+	{ 
+		printf("%6s %-16s %-32s %-6s %8s\n",
+		    "PID", "CMD", "SYSCALL", "ERRNO", "COUNT");
+		printa("%6d %-16s %-32s %-6d %@8d\n", @num);
+	}
+' | $clean > Proc/syscall_errors
+
+
+###########
+#  Done
+#
+( print -n "End:    "
+date ) >> log
+decho "100% Done."
+if (( tar )); then
+	cd ..
+	tar cf $dir.tar $dir
+	gzip $dir.tar
+	decho "File is $dir.tar.gz"
+fi
+if (( delete && tar )); then
+	cd $dir
+	# this could be all an "rm -r $dir", but since it will be run 
+	# as root on production servers - lets be analy cautious,
+	rm Cpu/interrupt_by_cpu
+	rm Cpu/interrupt_time
+	rm Cpu/dispqlen_by_cpu
+	rm Cpu/sdt_count
+	rm Disk/pgpgin_by_process
+	rm Disk/fileopen_count
+	rm Disk/sizedist_by_process
+	rm Mem/minf_by_process
+	rm Mem/vminfo_by_process
+	rm Net/mib_data
+	rm Net/tcpw_by_process
+	rm Proc/sample_process
+	rm Proc/syscall_by_process
+	rm Proc/syscall_count
+	rm Proc/readb_by_process
+	rm Proc/writeb_by_process
+	rm Proc/sysinfo_by_process
+	rm Proc/newprocess_count
+	rm Proc/signal_count
+	rm Proc/syscall_errors
+	rmdir Cpu
+	rmdir Disk
+	rmdir Mem
+	rmdir Net
+	rmdir Proc
+	rm Info/uname-a
+	rm Info/psrinfo-v
+	rm Info/prtconf
+	rm Info/df-k
+	rm Info/ifconfig-a
+	rm Info/ps-o
+	rm Info/uptime
+	rmdir Info
+	rm log
+	cd ..
+	rmdir $dir
+else
+	decho "Directory is $dir"
+fi
+

Modified: trunk/cddl/contrib/dtracetoolkit/dtruss
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/dtruss	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/dtracetoolkit/dtruss	2016-10-14 02:22:44 UTC (rev 9164)
@@ -3,7 +3,7 @@
 # dtruss - print process system call time details.
 #          Written using DTrace (Solaris 10 3/05).
 #
-# $Id: dtruss,v 1.1.1.1 2012-07-21 15:08:09 laffer1 Exp $
+# $Id: dtruss 9 2007-08-07 10:21:07Z brendan $
 #
 # USAGE: dtruss [-acdeflhoLs] [-t syscall] { -p PID | -n name | command }
 #


Property changes on: trunk/cddl/contrib/dtracetoolkit/dtruss
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Added: trunk/cddl/contrib/dtracetoolkit/dvmstat
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/dvmstat	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/dvmstat	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,250 @@
+#!/usr/bin/sh
+#
+# dvmstat - vmstat by PID/name/command.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This program provides vmstat like data for one particular PID, a 
+# process name, or when running a command. It prints statistics
+# every second.
+#
+# $Id: dvmstat 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	dvmstat { -p PID | -n name | command }
+#  eg,
+#		dvmstat -p 1871       # examine PID 1871
+#		dvmstat -n tar        # examine processes called "tar"
+#		dvmstat df -h         # run and examine "df -h"
+#
+# FIELDS: 
+#		re	page reclaims		Kbytes
+#		maj	major faults		Kbytes
+#		mf	minor faults		Kbytes
+#		fr	page frees		Kbytes
+#		epi	executable page ins	Kbytes
+#		epo	executable page out	Kbytes
+#		api	anonymous page ins	Kbytes
+#		apo	anonymous page outs	Kbytes
+#		fpi	filesystem page ins	Kbytes
+#		fpo	filesystem page outs	Kbytes
+#		sy	system calls		number
+#
+# SEE ALSO:	vmstat(1M)
+#
+# NOTES:
+#
+# When using dvmstat to run a command - if the command takes some time
+# to execute, dvmstat will print output every second. If the command runs
+# in less than a second, then the only one line of output will be printed.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 12-Jun-2005	Brendan Gregg	Created this.
+# 08-Jan-2006	   "      "	Last update.
+# 
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_pid=0; opt_name=0; pid=0; pname="."; opt_command=0; command=""
+
+### Process options
+while getopts hn:p: name
+do
+        case $name in
+        p)      opt_pid=1; pid=$OPTARG ;;
+        n)      opt_name=1; pname=$OPTARG ;;
+        h|?)    cat <<-END >&2
+		USAGE: dvmstat [-h] { -p PID | -n name | command }
+		           -p PID          # examine this PID
+		           -n name         # examine this process name
+		  eg,
+		       dvmstat -p 1871     # examine PID 1871
+		       dvmstat -n tar      # examine processes called "tar"
+		       dvmstat df -h       # run and examine "df -h"
+		END
+                exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 ]; then
+        opt_command=1
+        if [ "$*" = "" ]; then
+                $0 -h
+                exit
+        fi
+        command="$*"
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_pid      = '$opt_pid';
+ inline int OPT_name     = '$opt_name';
+ inline int OPT_command  = '$opt_command';
+ inline int PID          = '$pid';
+ inline string NAME      = "'$pname'";
+ inline string COMMAND   = "'$command'";
+ inline int SCREEN       = 21;
+
+ /*
+  * Initialise variables
+  */
+ dtrace:::BEGIN
+ {
+	epi = 0; epo = 0; api = 0; apo = 0; fpi = 0; fpo = 0;
+	re = 0; mf = 0; maj = 0; fr = 0; sy = 0;
+	lines = SCREEN + 1;
+	header = 0;
+ }
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN,
+ dtrace:::END,
+ profile:::tick-1sec
+ /(OPT_command && probename == "END") || 
+  (!(OPT_command && probename == "BEGIN") && lines++ > SCREEN)/
+ {
+	printf("%6s %5s %5s %4s %4s %4s %4s %4s %4s %4s %6s\n",
+	    "re", "maj", "mf", "fr", "epi", "epo", "api", "apo", 
+	    "fpi", "fpo", "sy");
+	lines = 0;
+ }
+
+ /*
+  * Probe events
+  *
+  * this intentionally does not use an associative array for storing data,
+  * for reasons of performance.
+  */
+
+ vminfo:::execpgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { epi += arg0; }
+
+ vminfo:::execpgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { epo += arg0; }
+
+ vminfo:::anonpgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { api += arg0; }
+
+ vminfo:::anonpgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { apo += arg0; }
+
+ vminfo:::fspgin
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fpi += arg0; }
+
+ vminfo:::fspgout
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fpo += arg0; }
+
+ vminfo:::pgrec
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { re += arg0; }
+
+ vminfo:::as_fault
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { mf += arg0; }
+
+ vminfo:::maj_fault
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { maj += arg0; }
+
+ vminfo:::dfree
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { fr += arg0; }
+
+ syscall:::entry
+ /(OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ { sy++; }
+
+ /* 
+  * Print output line
+  */
+ profile:::tick-1sec,
+ dtrace:::END
+ {
+	/* convert to Kbytes */
+	re  *= `_pagesize / 1024;
+	maj *= `_pagesize / 1024;
+	mf  *= `_pagesize / 1024;
+	fr  *= `_pagesize / 1024;
+	epi *= `_pagesize / 1024;
+	epo *= `_pagesize / 1024;
+	api *= `_pagesize / 1024;
+	apo *= `_pagesize / 1024;
+	fpi *= `_pagesize / 1024;
+	fpo *= `_pagesize / 1024;
+
+	/* print line */
+	printf("%6d %5d %5d %4d %4d %4d %4d %4d %4d %4d %6d\n",
+	    re, maj, mf, fr, epi, epo, api, apo, fpi, fpo, sy);
+
+	/* clear counters */
+	epi = 0; epo = 0; api = 0; apo = 0; fpi = 0; fpo = 0;
+	re = 0; mf = 0; maj = 0; fr = 0; sy = 0;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+        /usr/sbin/dtrace -n "$dtrace" -x evaltime=exec -c "$command" >&2
+else
+        /usr/sbin/dtrace -n "$dtrace" >&2
+fi
+

Added: trunk/cddl/contrib/dtracetoolkit/errinfo
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/errinfo	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/errinfo	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,180 @@
+#!/usr/bin/perl
+#
+# errinfo - report on syscall failures and print errno error messages.
+#	    Written using Perl and DTrace (Solaris 10 03/05)
+#
+# When system calls fail, an errno variable is set to convay a meaningful
+# message to the end user - so long as the program does something with it
+# (eg, "ls" printing "No such file or directory"). This program fetches
+# and prints details for all syscall failures along with their message,
+# whether the failing program is already printing this info or not.
+#
+# $Id: errinfo 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	errinfo [-ch] [-p PID] [-n name]
+#
+#		-c		# counts - aggregate style
+#		-p PID		# examine this PID only
+#		-n name		# examine processes with this name only
+#	eg,
+#		errinfo			# default output - snoop event style
+#		errinfo -n ssh		# examine "ssh" processes only
+#		errinfo -cn ssh		# examine "ssh" using counts
+#
+# FIELDS:
+#		EXEC		Program name (truncated)
+#		SYSCALL		System call name
+#		ERR		Value of errno
+#		DESC		Description of errno message
+#
+# SEE ALSO:	/usr/include/sys/errno.h
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 18-Apr-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+use Getopt::Std;
+
+#
+#  Defaults
+#
+$FILTER = "";
+$COUNT = 0;
+
+#
+#  Command line arguments
+#
+&Usage() if $ARGV[0] eq "--help";
+getopts('ch:n:p:') || &Usage();
+&Usage() if $opt_h;
+$COUNT = 1 if $opt_c;
+$FILTER = "&& execname == \"$opt_n\"" if defined $opt_n;
+$FILTER = "&& pid == $opt_p" if defined $opt_p;
+
+#
+#  Load errno descriptions
+#
+open(ERRNO,"/usr/include/sys/errno.h") || die "ERROR1: reading errno.h: $!\n";
+while (chomp($line = <ERRNO>)) {
+	next unless $line =~ /^#define/;
+	($errno,$desc) = $line =~ /^#define\s+\S+\s+(\d+)\s+\/\*(.*)\*\//;
+	$Errno{$errno} = $desc;
+}
+close ERRNO;
+
+#
+#  Declare DTrace script
+#
+ if ($COUNT) {		# aggregate style
+$dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	syscall:::return 
+	/errno != 0 && pid != \$pid $FILTER/ 
+	{ 
+		\@Errs[execname, probefunc, errno] = count(); 
+	}
+	dtrace:::END {
+		printa("%s %s %d %\@d\\n", \@Errs);
+	}'
+END
+ } else {		# snoop style
+$dtrace = <<END; 
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	#pragma D option switchrate=5hz
+	syscall:::return 
+	/errno != 0 && pid != \$pid $FILTER/ 
+	{ 
+		printf("%s %s %d\\n", execname, probefunc, errno); 
+	}'
+END
+ }
+
+#
+#  Cleanup on signals
+#
+$SIG{INT} = \&Cleanup_Signal;    # Ctrl-C
+$SIG{QUIT} = \&Cleanup_Signal;   # Ctrl-\
+$SIG{TERM} = \&Cleanup_Signal;   # TERM
+
+#
+#  Run DTrace, process output
+#
+
+if ($COUNT) {
+	print STDERR "Tracing... Hit Ctrl-C to end.\n";
+	$header = 1;
+} else {
+	printf("%16s %16s %4s  %s\n","EXEC","SYSCALL","ERR","DESC");
+}
+
+### Open DTrace
+open(DTRACE,"$dtrace |") || die "ERROR2: Can't start dtrace (perms?): $!\n";
+
+### Process DTrace output
+while (chomp($line = <DTRACE>)) {
+
+	### Print count header
+	if ($COUNT && $header) {
+		printf("\n%16s %16s %4s %6s  %s\n",
+		 "EXEC","SYSCALL","ERR","COUNT","DESC");
+		$header = 0;
+	}
+
+	### Split data
+	($execname,$syscall,$errno,$counts) = split(' ',$line);
+	next if $errno eq "";
+
+	### Fetch errno description
+	$desc = $Errno{$errno};
+
+	### Print output line
+	if ($COUNT) {
+		printf("%16s %16s %4d %6d %s\n",
+		 $execname,$syscall,$errno,$counts,$desc);
+	} else {
+		printf("%16s %16s %4d %s\n",$execname,$syscall,$errno,$desc);
+	}
+}
+close(DTRACE);
+
+#
+#  Triggered by signals
+#
+sub Cleanup_Signal {
+}
+
+#
+#  Usage message
+#
+sub Usage {
+        print STDERR "USAGE: errinfo [-ch] [-p PID] [-n name]\n";
+	print STDERR <<ENDUSAGE;
+     eg,
+       errinfo       # default output - snoop event style
+          -c         # counts - aggregate style
+          -p 871     # examine PID 871 only
+          -n ssh     # examine processes with the name "ssh" only
+          -cn ssh    # examine "ssh" using counts
+ENDUSAGE
+        exit(1);
+}

Added: trunk/cddl/contrib/dtracetoolkit/execsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/execsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/execsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,167 @@
+#!/bin/sh
+#
+# execsnoop - snoop process execution as it occurs.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: execsnoop 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	execsnoop [-a|-A|-ehsvJ] [-c command]
+#
+#		execsnoop	# default output
+#
+#		-a		# print all data
+#		-A		# dump all data, space delimited
+#		-e		# safe output - parseable
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-J		# print jail ID
+#		-c command	# command name to snoop
+#	eg,
+#		execsnoop -v		# human readable timestamps
+#		execsnoop -J		# print jail ID
+#		execsnoop -c ls		# snoop ls commands only
+#
+# The parseable output ensures that the ARGS field doesn't contain
+# any "\n"s, which normally sometimes can - and would wreck postprocessing.
+#
+# FIELDS:
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		JAIL ID		Jail ID	
+#		TIME		timestamp for the command, us
+#		STRTIME		timestamp for the command, string
+#
+# SEE ALSO: BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Mar-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005 	   "      "	Rewritten for performance.
+# 14-May-2005 	   "      "	Added zonename.
+# 02-Jul-2005 	   "      "	Added projid, safe printing.
+# 11-Sep-2005	   "      "	Increased switchrate.
+# 11-Sep-2005	   "      "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_dump=0; opt_cmd=0; opt_time=0; opt_timestr=0; filter=0; command=.
+opt_jailid=0; opt_safe=0
+
+### process options
+while getopts aAc:ehsvJ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_jailid=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cmd=1; command=$OPTARG ;;
+	e)	opt_safe=1 ;;
+	s)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	J)	opt_jailid=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: execsnoop [-a|-A|-ehjsvJ] [-c command]
+		       execsnoop                # default output
+		                -a              # print all data
+		                -A              # dump all data, space delimited
+		                -e              # safe output, parseable
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -J              # print jail ID 
+		                -c command      # command name to snoop
+		  eg,
+		        execsnoop -v            # human readable timestamps
+		        execsnoop -J		# print jail ID 
+		        execsnoop -c ls         # snoop ls commands only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_time=0; opt_timestr=0; opt_jailid=0
+fi
+if [ $opt_cmd -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	= '$opt_dump';
+ inline int OPT_cmd 	= '$opt_cmd';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int OPT_jailid  = '$opt_jailid';
+ inline int OPT_safe 	= '$opt_safe';
+ inline int FILTER 	= '$filter';
+ inline string COMMAND 	= "'$command'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print optional headers */
+ 	OPT_time    ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_jailid    ? printf("%-10s ", "JAIL ID") : 1;
+
+	/* print main headers */
+	OPT_dump    ? printf("%s %s %s %s %s %s %s\n",
+	    "TIME", "JAIL ID", "UID", "PID", "PPID", "COMM", "ARGS") :
+	    printf("%5s %6s %6s %s\n", "UID", "PID", "PPID", "ARGS");
+ }
+
+ /*
+  * Print exec event
+  */
+ syscall::execve:return
+ /(FILTER == 0) || (OPT_cmd == 1 && COMMAND == execname)/ 
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_jailid ? printf("%-10d ", curpsinfo->pr_jailid) : 1;
+
+	/* print main data */
+	OPT_dump ? printf("%d %d %d %d %d %s ", timestamp/1000,
+	    curpsinfo->pr_jailid, uid, pid, ppid, execname) :
+	    printf("%5d %6d %6d ", uid, pid, ppid);
+	OPT_safe ? printf("%S\n", curpsinfo->pr_psargs) :
+	    printf("%s\n", curpsinfo->pr_psargs);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/hotkernel
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/hotkernel	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/hotkernel	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,125 @@
+#!/usr/bin/perl -w
+#
+# hotkernel - sample on-CPU kernel-level functions and modules.
+#             Written using Perl and DTrace (Solaris 10 03/05)
+#
+# This samples the on-CPU function at 1001 Hertz, for a simple yet
+# effective kernel-level profiling tool for sampling exclusive function time.
+# The output will identify which function is on the CPU the most - which is
+# the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+# exclusive time.
+#
+# $Id: hotkernel 65 2007-10-04 11:09:40Z brendan $
+#
+# USAGE:        hotkernel [-hm]
+#
+#		-h              # help
+#		-m              # match modules, not functions
+#       eg,
+#		hotkernel       # sample kernel functions
+#		hotkernel -m    # sample kernel modules
+#
+# FIELDS:
+#		FUNCTION        Function name
+#		MODULE          Module name
+#		COUNT           Number of samples
+#		PCNT            Percentage of total samples
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 29-Jun-2006	Brendan Gregg	Created this.
+# 29-Jun-2006	   "      "	Last update.
+#
+
+use strict;
+use Getopt::Std;
+
+#
+# Command Line Arguments
+#
+my $args;
+usage() if defined $ARGV[0] and $ARGV[0] eq "--help";
+getopts('hm') or usage();
+usage() if defined $main::opt_h and $main::opt_h;
+my $mods = defined $main::opt_m and $main::opt_m ? 1 : 0;
+
+#
+# Cleanup on signals
+#
+$SIG{INT} = \&cleanupsig;    # Ctrl-C
+$SIG{QUIT} = \&cleanupsig;   # Ctrl-\
+$SIG{TERM} = \&cleanupsig;   # TERM
+
+#
+# Declare DTrace script
+#
+my $dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	profile:::profile-1001hz
+	/arg0/
+	{
+		\@pc[arg0] = count();
+	}
+	dtrace:::END
+	{
+		printa("%a %\@d\\n", \@pc);
+	}
+'
+END
+
+#
+# Run DTrace, process output
+#
+my %Count;
+my $total;
+open DTRACE, "$dtrace |" or die "ERROR1: Can't run dtrace (perms?): $!\n";
+print "Sampling... Hit Ctrl-C to end.\n";
+while (my $line = <DTRACE>) {
+    next if $line =~ /^\s*$/;
+    my ($addr, $count) = split ' ', $line;
+    my ($name, $offset) = split /\+/, $addr;
+    next if $name eq "0x0";
+    $name =~ s/\`.*// if $mods;
+    $Count{$name} += $count;
+    $total += $count;
+}
+close DTRACE;
+
+#
+# Print final report
+#
+printf "\n%-52s %8s %6s\n", $mods ? "MODULE" : "FUNCTION", "COUNT", "PCNT";
+foreach my $name (sort { $Count{$a} <=> $Count{$b} } keys %Count) {
+    printf "%-52s %8d %5.1f%%\n", $name, $Count{$name},
+                                  100 * $Count{$name} / ($total ? $total : 1);
+}
+
+#
+# Subroutines
+#
+sub cleanupsig {
+}
+sub usage {
+    print STDERR "USAGE: hotkernel [-hm]\n";
+    print STDERR "   eg,\n";
+    print STDERR "       hotkernel       # sample kernel functions\n";
+    print STDERR "       hotkernel -m    # sample kernel modules\n";
+    exit 1;
+}

Added: trunk/cddl/contrib/dtracetoolkit/hotuser
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/hotuser	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/hotuser	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,139 @@
+#!/usr/bin/perl -w
+#
+# hotuser - sample on-CPU user-level functions and libraries.
+#           Written using Perl and DTrace (Solaris 10 03/05)
+#
+# This samples the on-CPU function at 1001 Hertz, for a simple yet
+# effective user-level profiling tool for sampling exclusive function time.
+# The output will identify which function is on the CPU the most - which
+# is the hottest. See Notes/ALLexclusive_notes.txt for an explanation of
+# exclusive time.
+#
+# $Id: hotuser 65 2007-10-04 11:09:40Z brendan $
+#
+# USAGE:        hotuser [-hl] { -c command | -p PID }
+#
+#		-h              # help
+#		-l              # match libraries, not functions
+#		-p PID          # examine this PID
+#		-c command      # run and examine this command
+#       eg,
+#		hotuser -p 81   # sample user functions from PID 81
+#		hotuser -lp 81  # sample user libraries from PID 81
+#		hotuser -p `pgrep -n Xorg`	# sample Xorg
+#
+# FIELDS:
+#		FUNCTION        Function name
+#		LIBRARY         Library name
+#		COUNT           Number of samples
+#		PCNT            Percentage of total samples
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 29-Jun-2006	Brendan Gregg	Created this.
+# 29-Jun-2006	   "      "	Last update.
+#
+
+use strict;
+use Getopt::Std;
+
+#
+# Command Line Arguments
+#
+my $args;
+usage() if defined $ARGV[0] and $ARGV[0] eq "--help";
+getopts('c:hlp:') or usage();
+usage() if defined $main::opt_h and $main::opt_h;
+my $libs = defined $main::opt_l and $main::opt_l ? 1 : 0;
+if (defined $main::opt_c) {
+    $args = "-c $main::opt_c";
+}
+elsif (defined $main::opt_p) {
+    $args = "-p $main::opt_p";
+}
+else {
+    usage();
+}
+
+#
+# Cleanup on signals
+#
+$SIG{INT} = \&cleanupsig;    # Ctrl-C
+$SIG{QUIT} = \&cleanupsig;   # Ctrl-\
+$SIG{TERM} = \&cleanupsig;   # TERM
+
+#
+# Declare DTrace script
+#
+my $dtrace = <<END;
+/usr/sbin/dtrace -n '
+	#pragma D option quiet
+	profile:::profile-1001hz
+	/pid == \$target/ 
+	{
+		\@pc[arg1] = count();
+	}
+	dtrace:::END
+	{
+		printa("OUT: %A %\@d\\n", \@pc);
+	}
+' '$args'
+END
+
+#
+# Run DTrace, process output
+#
+my %Count;
+my $total;
+open DTRACE, "$dtrace |" or die "ERROR1: Can't run dtrace (perms?): $!\n";
+print "Sampling... Hit Ctrl-C to end.\n";
+while (my $line = <DTRACE>) {
+    next if $line =~ /^\s*$/;
+    next if $line !~ /^OUT: /;
+    my ($tag, $addr, $count) = split ' ', $line;
+    my ($name, $offset) = split /\+/, $addr;
+    next if $name eq "0x0";
+    $name =~ s/\`.*// if $libs;
+    $Count{$name} += $count;
+    $total += $count;
+}
+close DTRACE;
+
+#
+# Print final report
+#
+printf "\n%-52s %8s %6s\n", $libs ? "LIBRARY" : "FUNCTION", "COUNT", "PCNT";
+foreach my $name (sort { $Count{$a} <=> $Count{$b} } keys %Count) {
+    printf "%-52s %8d %5.1f%%\n", $name, $Count{$name},
+                                  100 * $Count{$name} / ($total ? $total : 1);
+}
+
+#
+# Subroutines
+#
+sub cleanupsig {
+}
+sub usage {
+    print STDERR "USAGE: hotuser [-hl] { -c command | -p PID }\n";
+    print STDERR "   eg,\n";
+    print STDERR "       hotuser -p 81     # sample user funcs for PID 81\n";
+    print STDERR "       hotuser -lp 81    # sample user libs for PID 81\n";
+    print STDERR "       hotuser -p `pgrep -n Xorg`     # sample Xorg\n";
+    exit 1;
+}

Added: trunk/cddl/contrib/dtracetoolkit/install
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/install	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/install	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,151 @@
+#!/usr/bin/ksh
+#
+# install - installer for the DTraceToolkit
+#
+# This is a fairly simple script, most of it is error checking.
+# All the script does is copy the DTraceToolkit files to another directory,
+# with various checks. The user could have copied the files themselves, this
+# script doesn't do anything special to them. It's really here in case
+# people extrace the toolkit and go looking for an installer.
+#
+# 15-May-2005	Brendan Gregg	Created this.
+
+DEBUG=0		# print debug data
+TEETH=1		# does this script have teeth
+SLEEP=1		# pause on messages
+PATH=/usr/bin
+
+### Ensure we know where we are,
+dir=${0%/*}
+cd $dir
+(( DEBUG )) && print "DEBUG: dir $dir"
+
+### Print welcome,
+print "DTraceToolkit Installation\n---------------------------"
+cat Version
+print "\nhit Ctrl-C any time you wish to quit.\n\n"
+
+### Fetch location,
+print -n "Enter target directory for installation [/opt/DTT]: "
+read loc junk
+if [[ "$loc" == "" ]]; then loc="/opt/DTT"; fi
+print ""
+(( DEBUG )) && print "DEBUG: loc $loc"
+
+### Sanity check,
+if print "$loc" | grep '^[./]*$' > /dev/null; then 
+	print "ERROR1: Location \"$loc\" is ambiguous.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tTry a full path, like \"/opt/DTT\"\n."
+	print ".\tSorry!\n"
+	exit 1
+fi
+
+### Evilness check,
+if print "$loc" | grep '[^a-zA-Z0-9_.-/]' > /dev/null; then 
+	print "ERROR2: Sorry, location \"$loc\" contains bad characters.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tTry a path like \"/opt/DTT\"\n."
+	print ".\tSorry!\n"
+	exit 2
+fi
+
+### Process location,
+basename=${loc%/*}
+nodename=${loc##*/}
+if [[ "$basename" == "" ]]; then basename="/"; fi
+(( DEBUG )) && print "DEBUG: basename $basename"
+(( DEBUG )) && print "DEBUG: nodename $nodename"
+
+### Check parent dir exists,
+if [[ ! -d "$basename" ]]; then
+	print "ERROR3: Parent directory \"$basename\" does not exist!\n."
+	(( SLEEP )) && sleep 1
+	print ".\tI'm not sure what you want me to do here, if you were"
+	print ".\tserious about the above parent directory - then run"
+	print ".\ta \"mkdir -p $basename\" first, then rerun this script.\n."
+	print ".\tSorry!\n"
+	exit 3
+fi
+
+### Check parent dir perms,
+if [[ ! -w "$basename" ]]; then
+	print "ERROR4: Can't write to parent directory \"$basename\"!\n."
+	(( SLEEP )) && sleep 1
+	print ".\tSince I can't write to this directory, I can't install the"
+	print ".\tDTraceToolkit. You are currently logged in as,\n."
+	id | sed 's/^/.		/'
+	print ".\n.\tand the directory has permissions,\n."
+	ls -ld "$basename" | awk '{ print ".\t\t",$1,$2,$3,$4,"..." }'
+	owner=`ls -ld "$basename" | awk '{ print $3 }'`
+	print ".\n.\tMaybe you need to run \"su - $owner\" first?\n."
+	print ".\tSorry!\n"
+	exit 4
+fi
+
+### Check if toolkit is already installed,
+if [[ -d "$loc" ]]; then
+	print "Warning: Possible old version of the DTraceToolkit found."
+	print "\tThis will DELETE the files in $loc, then install the toolkit."
+	(( SLEEP )) && sleep 1
+	if [[ ! -f "$loc/Version" ]]; then
+		print "\nWARNING: $loc doesn't look like an old DTraceToolkit!"
+		(( SLEEP )) && sleep 1
+	fi
+	print -n "\nContinue (will run \"rm -rf $loc\"). Are you sure (y/N)?: "
+	read ans junk
+	if [[ "$ans" != "y" ]]; then
+		print "\nExiting..."
+		exit 5
+	fi
+	if (( TEETH )); then
+		rm -rf "$loc"
+	else
+		print COMMAND: rm -rf \"$loc\"
+	fi
+fi
+
+### Make new toolkit dir,
+print "\nMaking directory \"$loc\"...\n"
+if (( TEETH )); then
+	mkdir -p "$loc"
+else
+	print COMMAND: mkdir -p \"$loc\"
+fi
+if [[ ! -d "$loc" || ! -w "$loc" ]]; then
+	print "ERROR6: Creation of \"$loc\" failed.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tCheck directory location and try again.\n."
+	print ".\tSorry!\n"
+	exit 6
+fi
+
+### Copy files across,
+print "\nCopying DTraceToolkit files...\n"
+if (( TEETH )); then
+	tar cf - . | (cd "$loc"; tar xvf -)
+else 
+	print COMMAND: "tar cf - . | (cd \"$loc\"; tar xvf -)"
+fi
+error=$?
+if [[ ! -f "$loc/install" ]]; then error=1; fi
+if (( error )); then
+	print "ERROR7: Failure during copy.\n."
+	(( SLEEP )) && sleep 1
+	print ".\tCheck source \"$dir\" and destination \"$loc\", then"
+	print ".\ttry again.\n."
+	print ".\tSorry!\n"
+	exit 7
+fi
+
+### Delete installer,
+if (( TEETH )); then
+	rm "$loc/install"
+else
+	print COMMAND: rm \"$loc/install\"
+fi
+
+### Finished,
+print "\nFinished.\n"
+print "Installed to \"$loc\". See $loc/Guide for how to get started.\n"
+

Added: trunk/cddl/contrib/dtracetoolkit/iopattern
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/iopattern	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/iopattern	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,277 @@
+#!/usr/bin/ksh
+#
+# iopattern - print disk I/O pattern.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# This prints details on the I/O access pattern for the disks, such as
+# percentage of events that were of a random or sequential nature.
+# By default totals for all disks are printed.
+#
+# $Id: iopattern 65 2007-10-04 11:09:40Z brendan $
+#
+# USAGE:	iopattern [-v] [-d device] [-f filename] [-m mount_point] 
+#			  [interval [count]]
+#
+#		       -v       	# print timestamp, string
+#		       -d device	# instance name to snoop (eg, dad0)
+#		       -f filename	# full pathname of file to snoop
+#		       -m mount_point	# this FS only (will skip raw events)
+#  eg,
+#		iopattern   	# default output, 1 second intervals
+#		iopattern 10  	# 10 second samples
+#		iopattern 5 12	# print 12 x 5 second samples
+#	        iopattern -m /  # snoop events on filesystem / only
+# 	
+# FIELDS:
+#		%RAN  		percentage of events of a random nature
+#		%SEQ 	 	percentage of events of a sequential nature
+#		COUNT		number of I/O events
+#		MIN		minimum I/O event size
+#		MAX		maximum I/O event size
+#		AVG		average I/O event size
+#		KR		total kilobytes read during sample
+#		KW		total kilobytes written during sample
+#		DEVICE		device name
+#		MOUNT		mount point
+#		FILE		filename
+#		TIME		timestamp, string
+# 
+# NOTES:
+#
+#  An event is considered random when the heads seek. This program prints
+#  the percentage of events that are random. The size of the seek is not
+#  measured - it's either random or not.
+#
+# SEE ALSO: iosnoop, iotop
+# 
+# IDEA: Ryan Matteson
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 25-Jul-2005	Brendan Gregg	Created this.
+# 25-Jul-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_time=0
+filter=0; device=.; filename=.; mount=.; interval=1; count=-1
+
+### process options
+while getopts d:f:hm:v name
+do
+	case $name in
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	v)	opt_time=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iopattern [-v] [-d device] [-f filename] [-m mount_point]
+		                 [interval [count]]
+ 
+		                -v              # print timestamp
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		   eg,
+		        iopattern         # default output, 1 second samples
+		        iopattern 10      # 10 second samples
+		        iopattern 5 12    # print 12 x 5 second samples
+		        iopattern -m /    # snoop events on filesystem / only
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ 
+ #pragma D option quiet
+
+ int last_loc[string];
+
+ /*
+  * Program start
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+	diskcnt = 0;
+	diskmin = 0;
+	diskmax = 0;
+	diskran = 0;
+	diskr = 0;
+	diskw = 0;
+        counts = COUNTER;
+        secs = INTERVAL;
+	LINES = 20;
+	line = 0;
+	last_event[""] = 0;
+ }
+
+ /*
+  * Print header
+  */
+ profile:::tick-1sec
+ /line <= 0 /
+ {
+	/* print optional headers */
+	OPT_time   ? printf("%-20s ", "TIME")  : 1;
+	OPT_device ? printf("%-9s ", "DEVICE") : 1;
+	OPT_mount  ? printf("%-12s ", "MOUNT") : 1;
+	OPT_file   ? printf("%-12s ", "FILE") : 1;
+
+	/* print header */
+	printf("%4s %4s %6s %6s %6s %6s %6s %6s\n",
+	    "%RAN", "%SEQ", "COUNT", "MIN", "MAX", "AVG", "KR", "KW");
+
+	line = LINES;
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::done
+ { 
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? self->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? self->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? self->ok = 1 : 1;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /self->ok/
+ {
+	/*
+	 * Save details
+	 */
+	this->loc = args[0]->b_blkno * 512;
+	this->pre = last_loc[args[1]->dev_statname];
+	diskr += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	diskw += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+	diskran += this->pre == this->loc ? 0 : 1;
+	diskcnt++;
+	diskmin = diskmin == 0 ? args[0]->b_bcount :
+	    (diskmin > args[0]->b_bcount ? args[0]->b_bcount : diskmin);
+	diskmax = diskmax < args[0]->b_bcount ? args[0]->b_bcount : diskmax;
+
+	/* save disk location */
+	last_loc[args[1]->dev_statname] = this->loc + args[0]->b_bcount;
+
+	/* cleanup */
+	self->ok = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Output
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* calculate diskavg */
+	diskavg = diskcnt > 0 ? (diskr + diskw) / diskcnt : 0;
+
+	/* convert counters to Kbytes */
+	diskr /= 1024;
+	diskw /= 1024;
+
+	/* convert to percentages */
+	diskran = diskcnt == 0 ? 0 : (diskran * 100) / diskcnt;
+	diskseq = diskcnt == 0 ? 0 : 100 - diskran;
+
+	/* print optional fields */
+	OPT_time   ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_device ? printf("%-9s ", DEVICE) : 1;
+	OPT_mount  ? printf("%-12s ", MOUNT) : 1;
+	OPT_file   ? printf("%-12s ", FILENAME) : 1;
+
+	/* print data */
+	printf("%4d %4d %6d %6d %6d %6d %6d %6d\n",
+	    diskran, diskseq, diskcnt, diskmin, diskmax, diskavg,
+	    diskr, diskw);
+
+	/* clear data */
+	diskmin = 0;
+	diskmax = 0;
+	diskcnt = 0;
+	diskran = 0;
+	diskr = 0;
+	diskw = 0;
+
+	secs = INTERVAL;
+	counts--;
+	line--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/iosnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/iosnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/iosnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,367 @@
+#!/usr/bin/sh
+#
+# iosnoop - A program to print disk I/O events as they happen, with useful
+#           details such as UID, PID, filename, command, etc. 
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+#
+# $Id: iosnoop 8 2007-08-06 05:55:26Z brendan $
+#
+# USAGE: 	iosnoop [-a|-A|-DeghiNostv] [-d device] [-f filename] 
+#			[-m mount_point] [-n name] [-p PID]
+#
+#		iosnoop		# default output
+#
+#		-a		# print all data (mostly)
+#		-A		# dump all data, space delimited
+#		-D		# print time delta, us (elapsed)
+#		-e		# print device name
+#		-g		# print command arguments
+#		-i		# print device instance
+#		-N		# print major and minor numbers
+#		-o		# print disk delta time, us 
+#		-s		# print start time, us
+#		-t 		# print completion time, us
+#		-v		# print completion time, string
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#  eg,
+#		iosnoop -v	# human readable timestamps
+#		iosnoop -N	# print major and minor numbers
+#		iosnoop -m /	# snoop events on the root filesystem only
+# 	
+# FIELDS:
+#		UID		user ID
+#		PID		process ID
+#		PPID		parennt process ID
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		SIZE		size of operation, bytes
+#		BLOCK		disk block for the operation (location)
+#		STIME	 	timestamp for the disk request, us
+#		TIME		timestamp for the disk completion, us
+#		DELTA		elapsed time from request to completion, us
+#		DTIME		time for disk to complete request, us
+#		STRTIME		timestamp for the disk completion, string
+#		DEVICE  	device name
+#		INS     	device instance number
+#		D		direction, Read or Write
+#		MOUNT		mount point
+#		FILE		filename (basename) for io operation
+# 
+# NOTE:
+# - There are two different delta times reported. -D prints the
+#   elapsed time from the disk request (strategy) to the disk completion
+#   (iodone); -o prints the time for the disk to complete that event 
+#   since it's last event (time between iodones), or, the time to the 
+#   strategy if the disk had been idle. 
+# - When filtering on PID or process name, be aware that poor disk event
+#   times may be due to events that have been filtered away, for example
+#   another process that may be seeking the disk heads elsewhere.
+#
+# SEE ALSO: BigAdmin: DTrace, http://www.sun.com/bigadmin/content/dtrace
+#	    Solaris Dynamic Tracing Guide, http://docs.sun.com
+#	    DTrace Tools, http://www.brendangregg.com/dtrace.html
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 12-Mar-2004	Brendan Gregg	Created this, build 51.
+# 23-May-2004	   "	  "	Fixed mntpt bug.
+# 10-Oct-2004	   "      "	Rewritten to use the io provider, build 63.
+# 04-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005	   "      "	Rewritten for perfromance.
+# 15-Jul-2005	   "      "	Improved DTIME calculation.
+# 25-Jul-2005	   "      "	Added -p, -n. Improved code.
+# 17-Sep-2005	   "      "	Increased switchrate.
+# 17-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_dump=0; opt_device=0; opt_delta=0; opt_devname=0; opt_file=0; opt_args=0; 
+opt_mount=0; opt_start=0 opt_end=0; opt_endstr=0; opt_ins=0; opt_nums=0
+opt_dtime=0; filter=0; device=.; filename=.; mount=.; pname=.; pid=0
+opt_name=0; opt_pid=0
+
+### process options
+while getopts aAd:Def:ghim:Nn:op:stv name
+do
+	case $name in
+	a)	opt_devname=1; opt_args=1; opt_endstr=1; opt_nums=1 ;;
+	A)	opt_dump=1 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	D)	opt_delta=1 ;;
+	e)	opt_devname=1 ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	g)	opt_args=1 ;;
+	i)	opt_ins=1 ;;
+	N)	opt_nums=1 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	o)	opt_dtime=1 ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	s)	opt_start=1 ;;
+	t)	opt_end=1 ;;
+	v)	opt_endstr=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iosnoop [-a|-A|-DeghiNostv] [-d device] [-f filename]
+		               [-m mount_point] [-n name] [-p PID]
+		       iosnoop          # default output
+		                -a      # print all data (mostly)
+		                -A      # dump all data, space delimited
+		                -D      # print time delta, us (elapsed)
+		                -e      # print device name
+		                -g      # print command arguments
+		                -i      # print device instance
+		                -N      # print major and minor numbers
+		                -o      # print disk delta time, us
+		                -s      # print start time, us
+		                -t      # print completion time, us
+		                -v      # print completion time, string
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		                -n name         # this process name only 
+		                -p PID          # this PID only 
+		   eg,
+		        iosnoop -v      # human readable timestamps
+		        iosnoop -N      # print major and minor numbers
+		        iosnoop -m /    # snoop events on filesystem / only
+		END
+		exit 1
+	esac
+done
+
+### option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_delta=0; opt_devname=0; opt_args=2; opt_start=0; 
+	opt_end=0; opt_endstr=0; opt_nums=0; opt_ins=0; opt_dtime=0
+fi
+if [ $opt_device -eq 1 -o $opt_file -eq 1 -o $opt_mount -eq 1 -o \
+    $opt_name -eq 1 -o $opt_pid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	= '$opt_dump';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_delta 	= '$opt_delta';
+ inline int OPT_devname = '$opt_devname';
+ inline int OPT_file 	= '$opt_file';
+ inline int OPT_args 	= '$opt_args';
+ inline int OPT_ins  	= '$opt_ins';
+ inline int OPT_nums  	= '$opt_nums';
+ inline int OPT_dtime 	= '$opt_dtime';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_start 	= '$opt_start';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_end 	= '$opt_end';
+ inline int OPT_endstr 	= '$opt_endstr';
+ inline int FILTER 	= '$filter';
+ inline int PID 	= '$pid';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string NAME 	= "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+	/* print optional headers */
+ 	OPT_start   ? printf("%-14s ","STIME")   : 1;
+ 	OPT_end     ? printf("%-14s ","TIME")    : 1;
+ 	OPT_endstr  ? printf("%-20s ","STRTIME") : 1;
+ 	OPT_devname ? printf("%-7s ","DEVICE")   : 1;
+ 	OPT_ins     ? printf("%-3s ","INS")      : 1;
+ 	OPT_nums    ? printf("%-3s %-3s ","MAJ","MIN") : 1;
+ 	OPT_delta   ? printf("%-10s ","DELTA")   : 1;
+ 	OPT_dtime   ? printf("%-10s ","DTIME")   : 1;
+
+	/* print main headers */
+	OPT_dump ? 
+	    printf("%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s\n",
+ 	    "TIME", "STIME", "DELTA", "DEVICE", "INS", "MAJ", "MIN", "UID",
+	    "PID", "PPID", "D", "BLOCK", "SIZE", "MOUNT", "FILE", "PATH",
+	    "COMM","ARGS") :
+ 	    printf("%5s %5s %1s %8s %6s ", "UID", "PID", "D", "BLOCK", "SIZE");
+	OPT_args == 0 ? printf("%10s %s\n", "COMM", "PATHNAME") : 1;
+ 	OPT_args == 1 ? printf("%28s %s\n", "PATHNAME", "ARGS") : 1;
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start
+ { 
+	/* default is to trace unless filtering, */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? self->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? self->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount) ? self->ok = 1 : 1;
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+ }
+
+ /*
+  * Reset last_event for disk idle -> start
+  * this prevents idle time being counted as disk time.
+  */
+ io:genunix::start
+ /! pending[args[1]->dev_statname]/
+ {
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /self->ok/
+ {
+	/* these are used as a unique disk event key, */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+
+	/* save disk event details, */
+ 	start_uid[this->dev, this->blk] = uid;
+ 	start_pid[this->dev, this->blk] = pid;
+ 	start_ppid[this->dev, this->blk] = ppid;
+ 	start_args[this->dev, this->blk] = (char *)curpsinfo->pr_psargs;
+ 	start_comm[this->dev, this->blk] = execname;
+ 	start_time[this->dev, this->blk] = timestamp;
+
+	/* increase disk event pending count */
+	pending[args[1]->dev_statname]++;
+
+	self->ok = 0;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /start_time[args[0]->b_edev, args[0]->b_blkno]/
+ {
+	/* decrease disk event pending count */
+	pending[args[1]->dev_statname]--;
+
+	/*
+	 * Process details
+	 */
+
+ 	/* fetch entry values */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+ 	this->suid = start_uid[this->dev, this->blk];
+ 	this->spid = start_pid[this->dev, this->blk];
+ 	this->sppid = start_ppid[this->dev, this->blk];
+ 	self->sargs = (int)start_args[this->dev, this->blk] == 0 ? 
+ 	    "" : start_args[this->dev, this->blk];
+ 	self->scomm = start_comm[this->dev, this->blk];
+ 	this->stime = start_time[this->dev, this->blk];
+	this->etime = timestamp; /* endtime */
+	this->delta = this->etime - this->stime;
+	this->dtime = last_event[args[1]->dev_statname] == 0 ? 0 :
+	    timestamp - last_event[args[1]->dev_statname];
+
+ 	/* memory cleanup */
+ 	start_uid[this->dev, this->blk]  = 0;
+ 	start_pid[this->dev, this->blk]  = 0;
+ 	start_ppid[this->dev, this->blk] = 0;
+ 	start_args[this->dev, this->blk] = 0;
+ 	start_time[this->dev, this->blk] = 0;
+ 	start_comm[this->dev, this->blk] = 0;
+ 	start_rw[this->dev, this->blk]   = 0;
+
+	/*
+	 * Print details
+	 */
+
+	/* print optional fields */
+ 	OPT_start   ? printf("%-14d ", this->stime/1000) : 1;
+ 	OPT_end     ? printf("%-14d ", this->etime/1000) : 1;
+ 	OPT_endstr  ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_devname ? printf("%-7s ", args[1]->dev_statname) : 1;
+ 	OPT_ins     ? printf("%3d ", args[1]->dev_instance) : 1;
+ 	OPT_nums    ? printf("%3d %3d ",
+	    args[1]->dev_major, args[1]->dev_minor) : 1;
+ 	OPT_delta   ? printf("%-10d ", this->delta/1000) : 1;
+ 	OPT_dtime   ? printf("%-10d ", this->dtime/1000) : 1;
+
+	/* print main fields */
+	OPT_dump ? 
+ 	    printf("%d %d %d %s %d %d %d %d %d %d %s %d %d %s %s %s %s %S\n",
+ 	    this->etime/1000, this->stime/1000, this->delta/1000,
+ 	    args[1]->dev_statname, args[1]->dev_instance, args[1]->dev_major,
+	    args[1]->dev_minor, this->suid, this->spid, this->sppid, 
+	    args[0]->b_flags & B_READ ? "R" : "W", 
+	    args[0]->b_blkno, args[0]->b_bcount, args[2]->fi_mount,
+	    args[2]->fi_name, args[2]->fi_pathname, self->scomm, self->sargs) :
+ 	    printf("%5d %5d %1s %8d %6d ",
+ 	    this->suid, this->spid, args[0]->b_flags & B_READ ? "R" : "W",
+	    args[0]->b_blkno, args[0]->b_bcount);
+	OPT_args == 0 ? printf("%10s %s\n", self->scomm, args[2]->fi_pathname)
+	    : 1;
+ 	OPT_args == 1 ? printf("%28s %S\n",
+	    args[2]->fi_pathname, self->sargs) : 1;
+
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+
+	/* cleanup */
+	self->scomm = 0;
+	self->sargs = 0;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending[args[1]->dev_statname] < 0/
+ {
+	pending[args[1]->dev_statname] = 0;
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/iotop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/iotop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/iotop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,422 @@
+#!/usr/bin/ksh
+#
+# iotop - display top disk I/O events by process.
+#         Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring disk events that have made it past system caches.
+#
+# $Id: iotop 8 2007-08-06 05:55:26Z brendan $
+#
+# USAGE:	iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename] 
+#		      [-m mount_point] [-t top] [interval [count]]
+#
+#		iotop   	# default output, 5 second intervals
+#
+#		-C		# don't clear the screen
+#		-D		# print delta times, elapsed, us
+#		-j		# print project ID
+#		-o		# print disk delta times, us
+#		-P		# print %I/O (disk delta times)
+#		-Z		# print zone ID
+#		-d device	# instance name to snoop (eg, dad0)
+#		-f filename	# full pathname of file to snoop
+#		-m mount_point	# this FS only (will skip raw events)
+#		-t top		# print top number only
+#	eg,
+#		iotop 1  	# 1 second samples
+#		iotop -C	# don't clear the screen
+#		iotop -P	# print %I/O (time based)
+#		iotop -j	# print project IDs
+#		iotop -Z 	# print zone IDs
+#		iotop -t 20 	# print top 20 lines only
+#		iotop -C 5 12	# print 12 x 5 second samples
+# 	
+# FIELDS:
+#		UID		user ID
+#		PID		process ID
+#		PPID		parent process ID
+#		PROJ		project ID
+#		ZONE		zone ID
+#		CMD		process command name
+#		DEVICE  	device name
+#		MAJ     	device major number
+#		MIN     	device minor number
+#		D		direction, Read or Write
+#		BYTES		total size of operations, bytes
+#		ELAPSED		total elapsed from request to completion, us
+#		DISKTIME	total time for disk to complete request, us
+#		%I/O		percent disk I/O, based on time (DISKTIME)
+#		load		1 min load average
+#		disk_r		total disk read Kbytes for sample
+#		disk_w		total disk write Kbytes for sample
+# 
+# NOTE:
+# * There are two different delta times reported. -D prints the
+#   elapsed time from the disk request (strategy) to the disk completion
+#   (iodone); -o prints the time for the disk to complete that event 
+#   since it's last event (time between iodones), or, the time to the
+#   strategy if the disk had been idle. 
+# * The %I/O value can exceed 100%. It represents how busy a process is
+#   making the disks, in terms of a single disk. A value of 200% could 
+#   mean 2 disks are busy at 100%, or 4 disks at 50%...
+#
+# SEE ALSO: iosnoop
+#	    BigAdmin: DTrace, http://www.sun.com/bigadmin/content/dtrace
+#	    Solaris Dynamic Tracing Guide, http://docs.sun.com
+#	    DTrace Tools, http://www.brendangregg.com/dtrace.html
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# KNOWN BUGS: 
+# - This can print errors while running on servers with Veritas volumes.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 15-Jul-2005	Brendan Gregg	Created this.
+# 20-Apr-2006	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_device=0; opt_file=0; opt_mount=0; opt_clear=1; opt_proj=0; opt_zone=0
+opt_percent=0; opt_def=1; opt_bytes=1; filter=0; device=.; filename=.; mount=.
+opt_top=0; opt_elapsed=0; opt_dtime=0; interval=5; count=-1; top=0
+
+### process options
+while getopts CDd:f:hjm:oPt:Z name
+do
+	case $name in
+	C)	opt_clear=0 ;;
+	D)	opt_elapsed=1; opt_bytes=0 ;;
+	d)	opt_device=1; device=$OPTARG ;;
+	f)	opt_file=1; filename=$OPTARG ;;
+	j)	opt_proj=1; opt_def=0 ;;
+	m)	opt_mount=1; mount=$OPTARG ;;
+	o)	opt_dtime=1; opt_bytes=0 ;;
+	P)	opt_percent=1; opt_dtime=1; opt_bytes=0 ;;
+	t)	opt_top=1; top=$OPTARG ;;
+	Z)	opt_zone=1; opt_def=0 ;;
+	h|?)	cat <<-END >&2
+		USAGE: iotop [-C] [-D|-o|-P] [-j|-Z] [-d device] [-f filename]
+		             [-m mount_point] [-t top] [interval [count]]
+ 
+		                -C      # don't clear the screen
+		                -D      # print delta times, elapsed, us
+		                -j      # print project ID
+		                -o      # print disk delta times, us
+		                -P      # print %I/O (disk delta times)
+		                -Z      # print zone ID
+		                -d device       # instance name to snoop 
+		                -f filename     # snoop this file only
+		                -m mount_point  # this FS only 
+		                -t top  	# print top number only
+		   eg,
+		        iotop         # default output, 5 second samples
+		        iotop 1       # 1 second samples
+		        iotop -P      # print %I/O (time based)
+		        iotop -m /    # snoop events on filesystem / only
+		        iotop -t 20   # print top 20 lines only
+		        iotop -C 5 12 # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+        opt_proj=0
+fi
+if (( opt_elapsed && opt_dtime )); then
+        opt_elapsed=0
+fi
+if (( opt_device || opt_mount || opt_file )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_elapsed = '$opt_elapsed';
+ inline int OPT_dtime 	= '$opt_dtime';
+ inline int OPT_percent	= '$opt_percent';
+ inline int OPT_device 	= '$opt_device';
+ inline int OPT_mount 	= '$opt_mount';
+ inline int OPT_file 	= '$opt_file';
+ inline int OPT_top 	= '$opt_top';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline int TOP 	= '$top';
+ inline string DEVICE 	= "'$device'";
+ inline string FILENAME = "'$filename'";
+ inline string MOUNT 	= "'$mount'";
+ inline string CLEAR 	= "'$clearstr'";
+ 
+ #pragma D option quiet
+
+ /* boost the following if you get "dynamic variable drops" */
+ #pragma D option dynvarsize=8m
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	last_event[""] = 0;
+
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        disk_r = 0;
+        disk_w = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ io:genunix::start,
+ io:genunix::done 
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_device == 1 && DEVICE == args[1]->dev_statname)? this->ok = 1 : 1;
+	(OPT_file == 1 && FILENAME == args[2]->fi_pathname) ? this->ok = 1 : 1;
+	(OPT_mount == 1 && MOUNT == args[2]->fi_mount)  ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Reset last_event for disk idle -> start
+  * this prevents idle time being counted as disk time.
+  */
+ io:genunix::start
+ /! pending[args[1]->dev_statname]/
+ {
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+ }
+
+ /*
+  * Store entry details
+  */
+ io:genunix::start
+ /this->ok/
+ {
+	/* these are used as a unique disk event key, */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+
+	/* save disk event details, */
+ 	start_uid[this->dev, this->blk] = uid;
+ 	start_pid[this->dev, this->blk] = pid;
+ 	start_ppid[this->dev, this->blk] = ppid;
+ 	start_comm[this->dev, this->blk] = execname;
+ 	start_time[this->dev, this->blk] = timestamp;
+ 	start_proj[this->dev, this->blk] = curpsinfo->pr_projid;
+ 	start_zone[this->dev, this->blk] = curpsinfo->pr_zoneid;
+ 	start_rw[this->dev, this->blk] = args[0]->b_flags & B_READ ? "R" : "W";
+	disk_r += args[0]->b_flags & B_READ ? args[0]->b_bcount : 0;
+	disk_w += args[0]->b_flags & B_READ ? 0 : args[0]->b_bcount;
+
+	/* increase disk event pending count */
+	pending[args[1]->dev_statname]++;
+ }
+
+ /*
+  * Process and Print completion
+  */
+ io:genunix::done
+ /this->ok/
+ {
+	/* decrease disk event pending count */
+	pending[args[1]->dev_statname]--;
+
+	/*
+	 * Process details
+	 */
+
+ 	/* fetch entry values */
+ 	this->dev = args[0]->b_edev;
+ 	this->blk = args[0]->b_blkno;
+ 	this->suid = start_uid[this->dev, this->blk];
+ 	this->spid = start_pid[this->dev, this->blk];
+ 	this->sppid = start_ppid[this->dev, this->blk];
+ 	this->sproj = start_proj[this->dev, this->blk];
+ 	this->szone = start_zone[this->dev, this->blk];
+ 	self->scomm = start_comm[this->dev, this->blk];
+ 	this->stime = start_time[this->dev, this->blk];
+	this->etime = timestamp; /* endtime */
+	this->elapsed = this->etime - this->stime;
+ 	self->rw = start_rw[this->dev, this->blk];
+	this->dtime = last_event[args[1]->dev_statname] == 0 ? 0 :
+	    timestamp - last_event[args[1]->dev_statname];
+
+ 	/* memory cleanup */
+ 	start_uid[this->dev, this->blk]  = 0;
+ 	start_pid[this->dev, this->blk]  = 0;
+ 	start_ppid[this->dev, this->blk] = 0;
+ 	start_time[this->dev, this->blk] = 0;
+ 	start_comm[this->dev, this->blk] = 0;
+ 	start_zone[this->dev, this->blk] = 0;
+ 	start_proj[this->dev, this->blk] = 0;
+ 	start_rw[this->dev, this->blk]   = 0;
+
+	/*
+	 * Choose statistic to track
+	 */
+	OPT_bytes   ? this->value = args[0]->b_bcount    : 1;
+	OPT_elapsed ? this->value = this->elapsed / 1000 : 1;
+	OPT_dtime   ? this->value = this->dtime / 1000   : 1;
+	
+	/*
+	 * Save details
+	 */
+	OPT_def ? @out[this->suid, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+	OPT_proj ? @out[this->sproj, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+	OPT_zone ? @out[this->szone, this->spid, this->sppid, self->scomm,
+	    args[1]->dev_statname, args[1]->dev_major, args[1]->dev_minor,
+	    self->rw] = sum(this->value) : 1;
+
+	/* save last disk event */
+	last_event[args[1]->dev_statname] = timestamp;
+
+	self->scomm = 0;
+	self->rw = 0;
+ }
+
+ /*
+  * Prevent pending from underflowing
+  * this can happen if this program is started during disk events.
+  */
+ io:genunix::done
+ /pending[args[1]->dev_statname] < 0/
+ {
+	pending[args[1]->dev_statname] = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	disk_r /= 1024;
+	disk_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  disk_r: %6d KB,  disk_w: %6d KB\n\n",
+	    walltimestamp, this->load1a, this->load1b, disk_r, disk_w);
+
+	/* print headers */
+	OPT_def  ? printf("  UID ") : 1;
+	OPT_proj ? printf(" PROJ ") : 1;
+	OPT_zone ? printf(" ZONE ") : 1;
+	printf("%6s %6s %-16s %-7s %3s %3s %1s",
+	    "PID", "PPID", "CMD", "DEVICE", "MAJ", "MIN", "D");
+	OPT_bytes   ? printf(" %16s\n", "BYTES") : 1;
+	OPT_elapsed ? printf(" %16s\n", "ELAPSED") : 1;
+	OPT_dtime && ! OPT_percent  ? printf(" %16s\n", "DISKTIME") : 1;
+	OPT_dtime && OPT_percent    ? printf(" %6s\n", "%I/O") : 1;
+
+	/* truncate to top lines if needed */
+	OPT_top ? trunc(@out, TOP) : 1;
+
+	/* normalise to percentage if needed */
+	OPT_percent ? normalize(@out, INTERVAL * 10000) : 1;
+
+	/* print data */
+	! OPT_percent ? 
+	    printa("%5d %6d %6d %-16s %-7s %3d %3d %1s %16 at d\n", @out) :
+	    printa("%5d %6d %6d %-16s %-7s %3d %3d %1s %6 at d\n", @out);
+	printf("\n");
+
+	/* clear data */
+	trunc(@out);
+	disk_r = 0;
+	disk_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/opensnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/opensnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/opensnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,244 @@
+#!/bin/sh
+#
+# opensnoop - snoop file opens as they occur.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: opensnoop 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	opensnoop [-a|-A|-ceghsvxZ] [-f pathname] [-n name] [-p PID]
+#
+#		opensnoop	# default output
+#
+#		-a		# print most data
+#		-A		# dump all data, space delimited
+#		-c		# print cwd of process
+#		-e		# print errno value
+#		-g		# print command arguments
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-x		# only print failed opens
+#		-Z		# print zonename
+#		-f pathname	# file pathname to snoop
+#		-n name		# command name to snoop
+#		-p PID		# process ID to snoop
+#	eg,
+#		opensnoop -v			# human readable timestamps
+#		opensnoop -e			# see error codes
+#		opensnoop -f /etc/passwd	# snoop this file only
+# 	
+# FIELDS:
+#		ZONE		Zone name
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		FD		file descriptor (-1 for error)
+#		ERR		errno value (see /usr/include/sys/errno.h)
+#		CWD		print current working directory of process
+#		PATH		pathname for file open
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		TIME		timestamp for the open event, us
+#		STRTIME		timestamp for the open event, string
+#
+# SEE ALSO: truss, BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 09-May-2004	Brendan Gregg	Created this.
+# 21-Jan-2005	   "	  "	Wrapped in sh to provide options.
+# 08-May-2005	   "      "	Rewritten for performance.
+# 14-May-2005	   "      "	Added errno.
+# 28-Jun-2005	   "      "	Added cwd, zonename.
+# 17-Sep-2005	   "      "	Increased switchrate, fixed page fault bug.
+# 16-Jan-2006	   "	  "	Added -n, -p.
+# 16-Jan-2006	   "	  "	Last update.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_dump=0; opt_file=0; opt_time=0; opt_timestr=0; opt_args=0
+opt_zone=0; opt_cwd=0; opt_failonly=0; opt_err=0; filter=0; pathname=.
+opt_name=0; opt_pid=0; pname=.; pid=0
+
+### Process options
+while getopts aAcef:ghn:p:svxZ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_args=1; opt_err=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cwd=1 ;;
+	e)	opt_err=1 ;;
+	g)	opt_args=1 ;;
+	f)	opt_file=1; pathname=$OPTARG ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	s)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	x)	opt_failonly=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: opensnoop [-a|-A|-ceghsvxZ] [-f pathname]
+		                 [-n name] [-p PID]
+		       opensnoop                # default output
+		                -a              # print most data
+		                -A              # dump all data, space delimited
+		                -c              # print cwd of process
+		                -e              # print errno value
+		                -g              # print command arguments
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -x              # only print failed opens
+		                -Z              # print zonename
+		                -f pathname	# pathname name to snoop
+		                -n name		# process name to snoop
+		                -p PID		# process ID to snoop
+		  eg,
+		       opensnoop -v             # human readable timestamps
+		       opensnoop -e             # see error codes
+		       opensnoop -f /etc/motd   # snoop this file only
+		END
+		exit 1
+	esac
+done
+
+### Option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_zone=0; opt_cwd=0; opt_time=0; opt_timestr=0; opt_args=2 
+fi
+if [ $opt_name -eq 1 -o $opt_pid -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	 = '$opt_dump';
+ inline int OPT_file 	 = '$opt_file';
+ inline int OPT_args 	 = '$opt_args';
+ inline int OPT_cwd	 = '$opt_cwd';
+ inline int OPT_err	 = '$opt_err';
+ inline int OPT_zone 	 = '$opt_zone';
+ inline int OPT_time 	 = '$opt_time';
+ inline int OPT_timestr	 = '$opt_timestr';
+ inline int OPT_failonly = '$opt_failonly';
+ inline int OPT_pid	 = '$opt_pid';
+ inline int OPT_name	 = '$opt_name';
+ inline int FILTER 	 = '$filter';
+ inline int PID		 = '$pid';
+ inline string PATHNAME	 = "'$pathname'";
+ inline string NAME	 = "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+ 
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* 
+	 * ternary operators are used to improve performance. 
+	 * OPT_args is unusual in that it can have one of three values.
+	 */
+ 
+	/* print optional headers */
+ 	OPT_time ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_zone ? printf("%-10s ", "ZONE") : 1;
+
+	/* print dump headers */
+	OPT_dump ? printf("%s %s %s %s %s %s %s %s %s %s %s", "ZONE",
+	    "TIME", "UID", "PID", "PPID", "COMM", "FD", "ERR", "CWD", 
+	    "PATH", "ARGS") : printf("%5s %6s ","UID","PID");
+	
+	/* print main headers */
+	OPT_args == 0 ? printf("%-12s ", "COMM") : 1;
+	OPT_dump == 0 ? printf("%3s ", "FD") : 1;
+	OPT_err ? printf("%3s ", "ERR") : 1;
+	OPT_cwd ? printf("%-20s ", "CWD") : 1;
+	OPT_dump == 0 ? printf("%-20s ", "PATH") : 1;
+	OPT_args == 1 ? printf("%s", "ARGS") : 1;
+	printf("\n");
+ }
+
+ /*
+  * Print open event
+  */
+ syscall::open:entry
+ {
+	/* save pathname */
+	self->pathp = arg0;
+
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+	/* OPT_file is checked on return to ensure pathp is mapped */
+ }
+
+ syscall::open:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) && 
+ ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+ 	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_zone ? printf("%-10s ", zonename) : 1;
+
+	/* print dump fields */
+	OPT_dump ? printf("%s %d %d %d %d %s %d %d %s %s %S", zonename,
+	    timestamp/1000, uid, pid, ppid, execname, (int)arg0, errno,
+	    cwd, copyinstr(self->pathp), curpsinfo->pr_psargs) :
+	    printf("%5d %6d ", uid, pid);
+
+	/* print main fields */
+	OPT_args == 0 ? printf("%-12s ", execname) : 1;
+	OPT_dump == 0 ? printf("%3d ", (int)arg0) : 1;
+	OPT_err ? printf("%3d ", errno) : 1;
+	OPT_cwd ? printf("%-20s ", cwd) : 1;
+	OPT_dump == 0 ? printf("%-20s ", copyinstr(self->pathp)) : 1;
+	OPT_args == 1 ? printf("%S", curpsinfo->pr_psargs) : 1;
+	printf("\n");
+
+	/* cleanup */
+	self->pathp = 0;
+	self->ok = 0;
+ }
+
+ /* 
+  * Cleanup 
+  */
+ syscall::open:return
+ /self->ok/
+ {
+	self->pathp = 0;
+	self->ok = 0;
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/procsystime
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/procsystime	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/procsystime	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,233 @@
+#!/bin/sh
+#
+# procsystime - print process system call time details.
+#               Written using DTrace (Solaris 10 3/05).
+#
+# $Id: procsystime 4 2007-08-01 11:01:38Z brendan $
+#
+# USAGE:	procsystime [-acehoT] [ -p PID | -n name | command ]
+#
+#		-p PID          # examine this PID
+#		-n name         # examine this process name
+#		-a              # print all details
+#		-c              # print syscall counts
+#		-e              # print elapsed times
+#		-o              # print CPU times
+#		-T              # print totals
+#         eg,
+#		procsystime -p 1871     # examine PID 1871
+#		procsystime -n tar      # examine processes called "tar"
+#		procsystime -aTn bash   # print all details for bash shells
+#		procsystime df -h       # run and examine "df -h"
+#
+# The elapsed times are interesting, to help identify syscalls that take
+# some time to complete (during which the process may have slept). CPU time
+# helps us identify syscalls that are consuming CPU cycles to run.
+#
+# FIELDS:
+#		SYSCALL         System call name
+#		TIME (ns)       Total time, nanoseconds
+#		COUNT           Number of occurrences
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 27-Apr-2005   Brendan Gregg   Created this.
+# 08-Jun-2005	   "      "	Added command option.
+# 22-Sep-2005	   "      "	Allowed systemwide tracing.
+# 22-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_filter=0; opt_pid=0; opt_name=0; pid=0; pname=".";
+opt_elapsed=0; opt_cpu=0; opt_counts=0; opt_totals=0
+opt_command=0; command="";
+
+### Process options
+while getopts acehn:op:T name
+do
+        case $name in
+        p)      opt_filter=1; opt_pid=1; pid=$OPTARG ;;
+        n)      opt_filter=1; opt_name=1; pname=$OPTARG ;;
+	a)	opt_totals=1; opt_elapsed=1; opt_cpu=1; opt_counts=1 ;;
+	e)	opt_elapsed=1 ;;
+	c)	opt_counts=1 ;;
+	o)	opt_cpu=1 ;;
+	T)	opt_totals=1 ;;
+        h|?)    cat <<-END >&2
+		USAGE: procsystime [-aceho] [ -p PID | -n name | command ]
+		                  -p PID          # examine this PID
+		                  -n name         # examine this process name
+		                  -a              # print all details
+		                  -e              # print elapsed times
+		                  -c              # print syscall counts
+		                  -o              # print CPU times
+		                  -T              # print totals
+		  eg,
+		       procsystime -p 1871     # examine PID 1871
+		       procsystime -n tar      # examine processes called "tar"
+		       procsystime -aTn bash   # print all details for bash
+		       procsystime df -h       # run and examine "df -h"
+		END
+		exit 1
+        esac
+done
+shift `expr $OPTIND - 1`
+
+### Option logic
+if [ $opt_pid -eq 0 -a $opt_name -eq 0 -a "$*" != "" ]; then
+	opt_filter=1
+	opt_command=1
+	command="$*"
+fi
+if [ $opt_elapsed -eq 0 -a $opt_cpu -eq 0 -a $opt_counts -eq 0 ]; then
+	opt_elapsed=1;
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+dtrace='
+ #pragma D option quiet
+
+ /*
+  * Command line arguments
+  */
+ inline int OPT_elapsed  = '$opt_elapsed';
+ inline int OPT_cpu      = '$opt_cpu';
+ inline int OPT_counts   = '$opt_counts';
+ inline int OPT_filter   = '$opt_filter';
+ inline int OPT_pid      = '$opt_pid';
+ inline int OPT_name     = '$opt_name';
+ inline int OPT_totals   = '$opt_totals';
+ inline int OPT_command  = '$opt_command';
+ inline int PID          = '$pid';
+ inline string NAME      = "'$pname'";
+ inline string COMMAND   = "'$command'";
+
+ dtrace:::BEGIN 
+ {
+	self->start = 0;
+	self->vstart = 0;
+ }
+ dtrace:::BEGIN 
+ /! OPT_command/
+ {
+	printf("Tracing... Hit Ctrl-C to end...\n");
+ }
+
+ /*
+  * Set start timestamp and counts
+  */
+ syscall:::entry
+ /(! OPT_filter) ||
+  (OPT_pid && pid == PID) ||
+  (OPT_name && execname == NAME) ||
+  (OPT_command && pid == $target)/
+ {
+	self->ok = 1;
+ }
+ syscall:::entry
+ /self->ok/
+ {
+	OPT_counts ? @Counts[probefunc] = count() : 1;
+	(OPT_counts && OPT_totals) ? @Counts["TOTAL:"] = count() : 1;
+	OPT_elapsed ? self->start = timestamp : 1;
+	OPT_cpu ? self->vstart = vtimestamp : 1;
+	self->ok = 0;
+ }
+
+ /*
+  * Calculate time deltas
+  */
+ syscall:::return
+ /self->start/
+ {
+	this->elapsed = timestamp - self->start;
+	@Elapsed[probefunc] = sum(this->elapsed);
+	OPT_totals ? @Elapsed["TOTAL:"] = sum(this->elapsed) : 1;
+	self->start = 0;
+ }
+ syscall:::return
+ /self->vstart/
+ {
+	this->cpu = vtimestamp - self->vstart;
+	@CPU[probefunc] = sum(this->cpu);
+	OPT_totals ? @CPU["TOTAL:"] = sum(this->cpu) : 1;
+	self->vstart = 0;
+ }
+
+ /*
+  * Elapsed time report
+  */
+ dtrace:::END 
+ /OPT_elapsed/
+ {
+	printf("\nElapsed Times for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","TIME (ns)");
+	printa("%16s %@18d\n", at Elapsed);
+ }
+
+ /*
+  * CPU time report
+  */
+ dtrace:::END 
+ /OPT_cpu/
+ {
+	printf("\nCPU Times for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","TIME (ns)");
+	printa("%16s %@18d\n", at CPU);
+ }
+
+ /*
+  * Syscall count report
+  */
+ dtrace:::END 
+ /OPT_counts/
+ {
+	printf("\nSyscall Counts for ");
+	OPT_pid ? printf("PID %d,\n\n",PID) : 1;
+	OPT_name ? printf("processes %s,\n\n",NAME) : 1;
+	OPT_command ? printf("command %s,\n\n",COMMAND) : 1;
+	(! OPT_filter) ? printf("all processes,\n\n") : 1;
+	printf("%16s %18s\n","SYSCALL","COUNT");
+	OPT_counts ? printa("%16s %@18d\n", at Counts) : 1;
+ }
+'
+
+### Run DTrace
+if [ $opt_command -eq 1 ]; then
+	/usr/sbin/dtrace -n "$dtrace" -x evaltime=exec -c "$command" >&2
+else
+	/usr/sbin/dtrace -n "$dtrace" >&2
+fi
+

Added: trunk/cddl/contrib/dtracetoolkit/rwsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/rwsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/rwsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,234 @@
+#!/usr/bin/ksh
+#
+# rwsnoop - snoop read/write events.
+#           Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring reads and writes at the application level. This matches
+# the syscalls read, write, pread and pwrite.
+#
+# $Id: rwsnoop 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	rwsnoop [-jPtvZ] [-n name] [-p pid]
+# 
+#		rwsnoop		# default output
+#
+#		-j		# print project ID
+#		-P		# print parent process ID
+#		-t		# print timestamp, us
+#		-v		# print time, string
+#		-Z		# print zone ID
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#	eg,
+#		rwsnoop -Z		# print zone ID
+#		rwsnoop -n bash 	# monitor processes named "bash"
+#		rwsnoop > out.txt	# recommended
+#
+# NOTE:
+# 	rwsnoop usually prints plenty of output, which itself will cause
+#	more output. It can be better to redirect the output of rwsnoop
+#	to a file to prevent this.
+#
+# FIELDS:
+#		TIME		Timestamp, us
+#		TIMESTR		Time, string
+#		ZONE		Zone ID
+#		PROJ		Project ID
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		CMD		Process name
+#		D		Direction, Read or Write
+#		BYTES		Total bytes during sample, -1 for error
+#		FILE		Filename, if file based
+#
+# Reads and writes that are not file based, for example with sockets, will
+# print "<unknown>" as the filename.
+#
+# SEE ALSO:	rwtop
+#
+# COPYRIGHT: Copyright (c) 2005 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# TODO:
+#  Track readv and writev.
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 24-Jul-2005   Brendan Gregg   Created this.
+# 17-Sep-2005	   "      "	Increased switchrate.
+# 17-Sep-2005	   "      "	Last update.
+#
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_pid=0; opt_proj=0; opt_zone=0; opt_time=0; opt_timestr=0
+opt_bytes=1; filter=0; pname=.; pid=0; opt_ppid=0
+
+### process options
+while getopts n:Pp:jtvZ name
+do
+	case $name in
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	P)	opt_ppid=1 ;;
+	j)	opt_proj=1 ;;
+	t)	opt_time=1 ;;
+	v)	opt_timestr=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: rwsnoop [-jPtvZ] [-n name] [-p pid]
+ 
+		                -j       # print project ID
+		                -P       # print parent process ID
+		                -t       # print timestamp, us
+		                -v       # print time, string
+		                -Z       # print zone ID
+		                -n name  # this process name only
+		                -p PID   # this PID only
+		   eg,
+		        rwsnoop          # default output
+		        rwsnoop -Z       # print zone ID
+		        rwsnoop -n bash  # monitor processes named "bash"
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_ppid 	= '$opt_ppid';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_time 	= '$opt_time';
+ inline int OPT_timestr	= '$opt_timestr';
+ inline int FILTER 	= '$filter';
+ inline int PID		= '$pid';
+ inline string NAME 	= "'$pname'";
+ 
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print header */
+	OPT_time    ? printf("%-14s ", "TIME") : 1;
+	OPT_timestr ? printf("%-20s ", "TIMESTR") : 1;
+	OPT_proj    ? printf("%5s ", "PROJ") : 1;
+	OPT_zone    ? printf("%5s ", "ZONE") : 1;
+	OPT_ppid    ? printf("%6s ", "PPID") : 1;
+	printf("%5s %6s %-12s %1s %7s %s\n",
+	    "UID", "PID", "CMD", "D", "BYTES", "FILE");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ syscall::*read:entry,
+ syscall::*write:entry
+ /pid != $pid/
+ { 
+	/* default is to trace unless filtering, */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_name == 1 && NAME == execname)? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+
+	/* save file descriptor */
+	self->fd = self->ok ? arg0 : 0;
+ }
+
+ /*
+  * Save read details
+  */
+ syscall::*read:return
+ /self->ok/
+ {
+	self->rw = "R";
+	self->size = arg0;
+ }
+
+ /*
+  * Save write details
+  */
+ syscall::*write:entry
+ /self->ok/
+ {
+	self->rw = "W";
+	self->size = arg2;
+ }
+
+ /*
+  * Process event
+  */
+ syscall::*read:return,
+ syscall::*write:entry
+ /self->ok/
+ {
+	/*
+	 * Fetch filename
+	 */
+	this->filistp = curthread->t_procp->p_user.u_finfo.fi_list;
+	this->ufentryp = (uf_entry_t *)((uint64_t)this->filistp +
+	    (uint64_t)self->fd * (uint64_t)sizeof(uf_entry_t));
+	this->filep = this->ufentryp->uf_file;
+	this->vnodep = this->filep != 0 ? this->filep->f_vnode : 0;
+	self->vpath = this->vnodep ? (this->vnodep->v_path != 0 ? 
+	    cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+
+	/*
+	 * Print details
+	 */
+	OPT_time    ? printf("%-14d ", timestamp / 1000) : 1;
+	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+	OPT_proj    ? printf("%5d ", curpsinfo->pr_projid) : 1;
+	OPT_zone    ? printf("%5d ", curpsinfo->pr_zoneid) : 1;
+	OPT_ppid    ? printf("%6d ", ppid) : 1;
+	printf("%5d %6d %-12.12s %1s %7d %s\n",
+	    uid, pid, execname, self->rw, (int)self->size, self->vpath);
+	
+	self->ok = 0;
+	self->fd = 0;
+	self->rw = 0;
+	self->size = 0;
+	self->vpath = 0;
+ }
+'

Added: trunk/cddl/contrib/dtracetoolkit/rwtop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/rwtop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/rwtop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,292 @@
+#!/usr/bin/ksh
+#
+# rwtop - display top read/write bytes by process.
+#         Written using DTrace (Solaris 10 3/05).
+#
+# This is measuring reads and writes at the application level. This matches
+# read and write system calls.
+#
+# $Id: rwtop 3 2007-08-01 10:50:08Z brendan $
+#
+# USAGE:	rwtop [-cC] [-j|-Z] [-n name] [-p pid]
+#		      [-t top] [interval [count]]
+# 
+#		rwtop		# default output, 5 second samples
+#
+#		-C		# don't clear the screen
+#		-c		# print counts
+#		-j		# print project ID
+#		-Z		# print zone ID
+#		-n name		# this process name only
+#		-p PID		# this PID only
+#		-t top		# print top number only
+#	eg,
+#		rwtop 1		# 1 second samples
+#		rwtop -t 10	# print top 10 only
+#		rwtop -n bash	# monitor processes named "bash"
+#		rwtop -C 5 12	# print 12 x 5 second samples
+#
+# FIELDS:
+#		ZONE		Zone ID
+#		PROJ		Project ID
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		CMD		Process name
+#		D		Direction, Read or Write
+#		BYTES		Total bytes during sample
+#		app_r		total reads during sample, Kbytes
+#		app_w		total writes during sample, Kbytes
+#
+# SEE ALSO:	iotop
+#
+# INSPIRATION:  top(1) by William LeFebvre
+#
+# COPYRIGHT: Copyright (c) 2005, 2006 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 24-Jul-2005   Brendan Gregg   Created this.
+# 20-Apr-2006	   "      "	Last update.
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### default variables
+opt_name=0; opt_pid=0; opt_clear=1; opt_proj=0; opt_zone=0
+opt_def=1; opt_bytes=1; filter=0; pname=.; pid=0
+opt_top=0; opt_count=0; interval=5; count=-1; top=0
+
+### process options
+while getopts Cchn:p:jt:Z name
+do
+	case $name in
+	C)	opt_clear=0 ;;
+	c)	opt_count=1; opt_bytes=0 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	j)	opt_proj=1; opt_def=0 ;;
+	t)	opt_top=1; top=$OPTARG ;;
+	Z)	opt_zone=1; opt_def=0 ;;
+	h|?)	cat <<-END >&2
+		USAGE: rwtop [-cC] [-j|-Z] [-n name] [-p pid]
+		             [-t top] [interval [count]]
+ 
+		                -C        # don't clear the screen
+		                -c        # print counts
+		                -j        # print project ID
+		                -Z        # print zone ID
+		                -n name   # this process name only
+		                -p PID    # this PID only
+		                -t top    # print top number only
+		   eg,
+		        rwtop          # default output, 5 second samples
+		        rwtop 1        # 1 second samples
+		        rwtop -t 10    # print top 10 only
+		        rwtop -n bash  # monitor processes named "bash"
+		        rwtop -C 5 12  # print 12 x 5 second samples
+		END
+		exit 1
+	esac
+done
+
+shift $(( $OPTIND - 1 ))
+
+### option logic
+if [[ "$1" > 0 ]]; then
+        interval=$1; shift
+fi
+if [[ "$1" > 0 ]]; then
+        count=$1; shift
+fi
+if (( opt_proj && opt_zone )); then
+        opt_proj=0
+fi
+if (( opt_name || opt_pid )); then
+	filter=1
+fi
+if (( opt_clear )); then
+        clearstr=`clear`
+else
+        clearstr=.
+fi
+
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_def 	= '$opt_def';
+ inline int OPT_proj 	= '$opt_proj';
+ inline int OPT_zone 	= '$opt_zone';
+ inline int OPT_clear 	= '$opt_clear';
+ inline int OPT_bytes 	= '$opt_bytes';
+ inline int OPT_count	= '$opt_count';
+ inline int OPT_name 	= '$opt_name';
+ inline int OPT_pid 	= '$opt_pid';
+ inline int OPT_top 	= '$opt_top';
+ inline int INTERVAL 	= '$interval';
+ inline int COUNTER 	= '$count';
+ inline int FILTER 	= '$filter';
+ inline int TOP 	= '$top';
+ inline int PID		= '$pid';
+ inline string NAME 	= "'$pname'";
+ inline string CLEAR 	= "'$clearstr'";
+ 
+ #pragma D option quiet
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+        /* starting values */
+        counts = COUNTER;
+        secs = INTERVAL;
+        app_r = 0;
+        app_w = 0;
+
+        printf("Tracing... Please wait.\n");
+ }
+
+ /*
+  * Check event is being traced
+  */
+ sysinfo:::readch,
+ sysinfo:::writech
+ /pid != $pid/
+ { 
+	/* default is to trace unless filtering, */
+	this->ok = FILTER ? 0 : 1;
+
+	/* check each filter, */
+	(OPT_name == 1 && NAME == execname)? this->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? this->ok = 1 : 1;
+ }
+
+ /*
+  * Increment tallys
+  */
+ sysinfo:::readch
+ /this->ok/
+ {
+	app_r += arg0;
+ }
+ sysinfo:::writech
+ /this->ok/
+ {
+	app_w += arg0;
+ }
+
+ /*
+  * Process event
+  */
+ sysinfo:::readch,
+ sysinfo:::writech
+ /this->ok/
+ {
+	/* choose statistic to track */
+	this->value = OPT_bytes ? arg0 : 1;
+	
+	/*
+	 * Save details
+	 */
+	OPT_def ? @out[uid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+	OPT_proj ? @out[curpsinfo->pr_projid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+	OPT_zone ? @out[curpsinfo->pr_zoneid, pid, ppid, execname,
+	    probename == "readch" ? "R" : "W"] = sum(this->value) : 1;
+
+	this->ok = 0;
+ }
+
+ /*
+  * Timer
+  */
+ profile:::tick-1sec
+ {
+	secs--;
+ }
+
+ /*
+  * Print Report
+  */
+ profile:::tick-1sec
+ /secs == 0/
+ {
+	/* fetch 1 min load average */
+	this->load1a  = `hp_avenrun[0] / 65536;
+	this->load1b  = ((`hp_avenrun[0] % 65536) * 100) / 65536;
+
+	/* convert counters to Kbytes */
+	app_r /= 1024;
+	app_w /= 1024;
+
+	/* print status */
+	OPT_clear ? printf("%s", CLEAR) : 1;
+	printf("%Y,  load: %d.%02d,  app_r: %6d KB,  app_w: %6d KB\n\n",
+	    walltimestamp, this->load1a, this->load1b, app_r, app_w);
+
+	/* print headers */
+	OPT_def  ? printf("  UID ") : 1;
+	OPT_proj ? printf(" PROJ ") : 1;
+	OPT_zone ? printf(" ZONE ") : 1;
+	printf("%6s %6s %-16s %1s",
+	    "PID", "PPID", "CMD", "D");
+	OPT_bytes ? printf(" %16s\n", "BYTES") : 1;
+	OPT_count ? printf(" %16s\n", "COUNT") : 1;
+
+	/* truncate to top lines if needed */
+	OPT_top ? trunc(@out, TOP) : 1;
+
+	/* print data */
+	printa("%5d %6d %6d %-16s %1s %16 at d\n", @out);
+	printf("\n");
+
+	/* clear data */
+	trunc(@out);
+	app_r = 0;
+	app_w = 0;
+	secs = INTERVAL;
+	counts--;
+ }
+
+ /*
+  * End of program
+  */
+ profile:::tick-1sec
+ /counts == 0/
+ {
+	exit(0);
+ }
+
+ /*
+  * Cleanup for Ctrl-C
+  */
+ dtrace:::END
+ {
+	trunc(@out);
+ }
+'
+

Added: trunk/cddl/contrib/dtracetoolkit/statsnoop
===================================================================
--- trunk/cddl/contrib/dtracetoolkit/statsnoop	                        (rev 0)
+++ trunk/cddl/contrib/dtracetoolkit/statsnoop	2016-10-14 02:22:44 UTC (rev 9164)
@@ -0,0 +1,286 @@
+#!/usr/bin/sh
+#
+# statsnoop - snoop file stats as they occur.
+#             Written using DTrace (Solaris 10 3/05).
+#
+# $Id: statsnoop 65 2007-10-04 11:09:40Z brendan $
+#
+# USAGE:	statsnoop [-a|-A|-ceghlsvxZ] [-f pathname] [-t syscall]
+#		          [-n name] [-p PID]
+#
+#		statsnoop	# default output
+#
+#		-a		# print most data
+#		-A		# dump all data, space delimited
+#		-c		# print cwd of process
+#		-e		# print errno value
+#		-g		# print command arguments
+#		-l		# print syscall type
+#		-s		# print start time, us
+#		-v		# print start time, string
+#		-x		# only print failed stats
+#		-Z		# print zonename
+#		-f pathname	# file pathname to snoop
+#		-n name		# command name to snoop
+#		-p PID		# process ID to snoop
+#		-t syscall	# stat syscall to trace
+#	eg,
+#		statsnoop -v			# human readable timestamps
+#		statsnoop -S			# syscall type
+#		statsnoop -e			# see error codes
+#		statsnoop -f /etc/passwd	# snoop this file only
+# 	
+# FIELDS:
+#		ZONE		Zone name
+#		UID		User ID
+#		PID		Process ID
+#		PPID		Parent Process ID
+#		FD		file descriptor (-1 for error)
+#		ERR		errno value (see /usr/include/sys/errno.h)
+#		TYPE		syscall type
+#		CWD		current working directory of process
+#		PATH		pathname for file stat
+#		COMM		command name for the process
+#		ARGS		argument listing for the process
+#		TIME		timestamp for the stat event, us
+#		STRTIME		timestamp for the stat event, string
+#
+# SEE ALSO: truss, BSM auditing.
+#
+# COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
+#
+# CDDL HEADER START
+#
+#  The contents of this file are subject to the terms of the
+#  Common Development and Distribution License, Version 1.0 only
+#  (the "License").  You may not use this file except in compliance
+#  with the License.
+#
+#  You can obtain a copy of the license at Docs/cddl1.txt
+#  or http://www.opensolaris.org/os/licensing.
+#  See the License for the specific language governing permissions
+#  and limitations under the License.
+#
+# CDDL HEADER END
+#
+# Author: Brendan Gregg  [Sydney, Australia]
+#
+# 09-Sep-2007	Brendan Gregg	Created this.
+# 
+
+
+##############################
+# --- Process Arguments ---
+#
+
+### Default variables
+opt_dump=0; opt_file=0; opt_time=0; opt_timestr=0; opt_args=0
+opt_zone=0; opt_cwd=0; opt_failonly=0; opt_err=0; filter=0; pathname=.
+opt_name=0; opt_pid=0; opt_type=0; opt_trace=0; pname=.; pid=0; trace=.
+
+### Process options
+while getopts aAcef:ghln:p:st:vxZ name
+do
+	case $name in
+	a)	opt_time=1; opt_timestr=1; opt_args=1; opt_err=1 ;;
+	A)	opt_dump=1 ;;
+	c)	opt_cwd=1 ;;
+	e)	opt_err=1 ;;
+	g)	opt_args=1 ;;
+	f)	opt_file=1; pathname=$OPTARG ;;
+	l)	opt_type=1 ;;
+	n)	opt_name=1; pname=$OPTARG ;;
+	p)	opt_pid=1; pid=$OPTARG ;;
+	s)	opt_time=1 ;;
+	t)	opt_trace=1; trace=$OPTARG ;;
+	v)	opt_timestr=1 ;;
+	x)	opt_failonly=1 ;;
+	Z)	opt_zone=1 ;;
+	h|?)	cat <<-END >&2
+		USAGE: statsnoop [-a|-A|-ceghlsvxZ] [-f pathname] [-t syscall]
+		                 [-n execname] [-p PID]
+		       statsnoop                # default output
+		                -a              # print most data
+		                -A              # dump all data, space delimited
+		                -c              # print cwd of process
+		                -e              # print errno value
+		                -g              # print command arguments
+		                -l              # print syscall type
+		                -s              # print start time, us
+		                -v              # print start time, string
+		                -x              # only print failed stats
+		                -Z              # print zonename
+		                -f pathname	# pathname name to snoop
+		                -n name		# process name to snoop
+		                -p PID		# process ID to snoop
+		                -t syscall	# stat syscall to trace
+		  eg,
+		       statsnoop -v             # human readable timestamps
+		       statsnoop -e             # see error codes
+		       statsnoop -f /etc/motd   # snoop this file only
+		END
+		exit 1
+	esac
+done
+
+### Option logic
+if [ $opt_dump -eq 1 ]; then
+	opt_zone=0; opt_cwd=0; opt_time=0; opt_timestr=0; opt_type=0
+	opt_args=2 
+fi
+if [ $opt_name -eq 1 -o $opt_pid -eq 1 -o $opt_trace -eq 1 ]; then
+	filter=1
+fi
+
+
+#################################
+# --- Main Program, DTrace ---
+#
+/usr/sbin/dtrace -n '
+ /*
+  * Command line arguments
+  */
+ inline int OPT_dump 	 = '$opt_dump';
+ inline int OPT_file 	 = '$opt_file';
+ inline int OPT_args 	 = '$opt_args';
+ inline int OPT_cwd	 = '$opt_cwd';
+ inline int OPT_err	 = '$opt_err';
+ inline int OPT_zone 	 = '$opt_zone';
+ inline int OPT_time 	 = '$opt_time';
+ inline int OPT_timestr	 = '$opt_timestr';
+ inline int OPT_type	 = '$opt_type';
+ inline int OPT_failonly = '$opt_failonly';
+ inline int OPT_pid	 = '$opt_pid';
+ inline int OPT_name	 = '$opt_name';
+ inline int OPT_trace	 = '$opt_trace';
+ inline int FILTER 	 = '$filter';
+ inline int PID		 = '$pid';
+ inline string PATHNAME	 = "'$pathname'";
+ inline string NAME	 = "'$pname'";
+ inline string TRACE	 = "'$trace'";
+
+ #pragma D option quiet
+ #pragma D option switchrate=10hz
+
+ /*
+  * Print header
+  */
+ dtrace:::BEGIN 
+ {
+	/* print optional headers */
+ 	OPT_time ? printf("%-14s ", "TIME") : 1;
+ 	OPT_timestr ? printf("%-20s ", "STRTIME") : 1;
+ 	OPT_zone ? printf("%-10s ", "ZONE") : 1;
+
+	/* print dump headers */
+	OPT_dump ? printf("%s %s %s %s %s %s %s %s %s %s %s", "ZONE",
+	    "TIME", "UID", "PID", "PPID", "COMM", "FD", "ERR", "CWD", 
+	    "PATH", "ARGS") : printf("%5s %6s ","UID","PID");
+	
+	/* print main headers */
+	OPT_args == 0 ? printf("%-12s ", "COMM") : 1;
+	OPT_dump == 0 ? printf("%3s ", "FD") : 1;
+	OPT_err ? printf("%3s ", "ERR") : 1;
+	OPT_cwd ? printf("%-20s ", "CWD") : 1;
+	OPT_type ? printf("%-8s ", "TYPE") : 1;
+	OPT_dump == 0 ? printf("%-20s ", "PATH") : 1;
+	OPT_args == 1 ? printf("%s", "ARGS") : 1;
+	printf("\n");
+ }
+
+ /*
+  * Print stat event
+  */
+ syscall::stat:entry, syscall::stat64:entry, syscall::xstat:entry,
+ syscall::lstat:entry, syscall::lstat64:entry, syscall::lxstat:entry,
+ syscall::fstat:entry, syscall::fstat64:entry, syscall::fxstat:entry
+ {
+	/* default is to trace unless filtering */
+	self->ok = FILTER ? 0 : 1;
+
+	/* check each filter */
+	(OPT_name == 1 && NAME == execname) ? self->ok = 1 : 1;
+	(OPT_pid == 1 && PID == pid) ? self->ok = 1 : 1;
+	(OPT_trace == 1 && TRACE == probefunc) ? self->ok = 1 : 1;
+ }
+
+ syscall::stat:entry, syscall::stat64:entry,
+ syscall::lstat:entry, syscall::lstat64:entry, syscall::lxstat:entry
+ /self->ok/
+ {
+	self->pathp = arg0;
+ }
+
+ syscall::xstat:entry
+ /self->ok/
+ {
+	self->pathp = arg1;
+ }
+
+ syscall::stat:return, syscall::stat64:return, syscall::xstat:return,
+ syscall::lstat:return, syscall::lstat64:return, syscall::lxstat:return
+ /self->ok/
+ {
+	self->path = copyinstr(self->pathp);
+	self->pathp = 0;
+ }
+
+ syscall::fstat:return, syscall::fstat64:entry, syscall::fxstat:entry
+ /self->ok/
+ {
+	self->filep = curthread->t_procp->p_user.u_finfo.fi_list[arg0].uf_file;
+ }
+
+ syscall::fstat:return, syscall::fstat64:return, syscall::fxstat:return
+ /self->ok/
+ {
+        this->vnodep = self->filep != 0 ? self->filep->f_vnode : 0;
+        self->path = this->vnodep ? (this->vnodep->v_path != 0 ?
+            cleanpath(this->vnodep->v_path) : "<unknown>") : "<unknown>";
+	self->filep = 0;
+ }
+
+ syscall::stat:return, syscall::stat64:return, syscall::xstat:return,
+ syscall::lstat:return, syscall::lstat64:return, syscall::lxstat:return,
+ syscall::fstat:return, syscall::fstat64:return, syscall::fxstat:return
+ /self->ok && (! OPT_failonly || (int)arg0 < 0) && 
+     ((OPT_file == 0) || (OPT_file == 1 && PATHNAME == copyinstr(self->pathp)))/
+ {
+	/* print optional fields */
+ 	OPT_time ? printf("%-14d ", timestamp/1000) : 1;
+ 	OPT_timestr ? printf("%-20Y ", walltimestamp) : 1;
+ 	OPT_zone ? printf("%-10s ", zonename) : 1;
+
+	/* print dump fields */
+	OPT_dump ? printf("%s %d %d %d %d %s %d %d %s %s %S", zonename,
+	    timestamp/1000, uid, pid, ppid, execname, (int)arg0, errno,
+	    cwd, self->path, curpsinfo->pr_psargs) :
+	    printf("%5d %6d ", uid, pid);
+
+	/* print main fields */
+	OPT_args == 0 ? printf("%-12.12s ", execname) : 1;
+	OPT_dump == 0 ? printf("%3d ", (int)arg0) : 1;
+	OPT_err ? printf("%3d ", errno) : 1;
+	OPT_cwd ? printf("%-20s ", cwd) : 1;
+	OPT_type ? printf("%-8s ", probefunc) : 1;
+	OPT_dump == 0 ? printf("%-20s ", self->path) : 1;
+	OPT_args == 1 ? printf("%S", curpsinfo->pr_psargs) : 1;
+	printf("\n");
+
+	/* cleanup */
+	self->path = 0;
+	self->ok = 0;
+ }
+
+ /* 
+  * Cleanup 
+  */
+ syscall::stat:return, syscall::stat64:return, syscall::xstat:return,
+ syscall::lstat:return, syscall::lstat64:return, syscall::lxstat:return,
+ syscall::fstat:return, syscall::fstat64:return, syscall::fxstat:return
+ /self->ok/
+ {
+	self->path = 0;
+	self->ok = 0;
+ }
+'

Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv4remote.pl
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv4remote.pl	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv4remote.pl	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv4remote.pl
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv6remote.pl
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv6remote.pl	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv6remote.pl	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/get.ipv6remote.pl
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localicmp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localicmp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localicmp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localicmp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localtcp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4localudp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteicmp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteicmp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteicmp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteicmp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remotetcp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv4remoteudp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6localicmp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6localicmp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6localicmp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6localicmp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6remoteicmp.ksh
===================================================================
--- trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6remoteicmp.ksh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6remoteicmp.ksh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/cmd/dtrace/test/tst/common/ip/tst.ipv6remoteicmp.ksh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh
===================================================================
--- trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mkerrno.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property
Index: trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh
===================================================================
--- trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh	2016-10-14 02:20:05 UTC (rev 9163)
+++ trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh	2016-10-14 02:22:44 UTC (rev 9164)

Property changes on: trunk/cddl/contrib/opensolaris/lib/libdtrace/common/mksignal.sh
___________________________________________________________________
Deleted: svn:executable
## -1 +0,0 ##
-*
\ No newline at end of property


More information about the Midnightbsd-cvs mailing list