head	1.1;
branch	1.1.1;
access;
symbols
	netbsd-11-0-RC7:1.1.1.1
	netbsd-11-0-RC6:1.1.1.1
	netbsd-11-0-RC5:1.1.1.1
	netbsd-11-0-RC4:1.1.1.1
	netbsd-11-0-RC3:1.1.1.1
	netbsd-11-0-RC2:1.1.1.1
	netbsd-11-0-RC1:1.1.1.1
	perseant-exfatfs-base-20250801:1.1.1.1
	netbsd-11:1.1.1.1.0.30
	netbsd-11-base:1.1.1.1
	netbsd-10-1-RELEASE:1.1.1.1
	perseant-exfatfs-base-20240630:1.1.1.1
	perseant-exfatfs:1.1.1.1.0.28
	perseant-exfatfs-base:1.1.1.1
	netbsd-8-3-RELEASE:1.1.1.1
	netbsd-9-4-RELEASE:1.1.1.1
	netbsd-10-0-RELEASE:1.1.1.1
	netbsd-10-0-RC6:1.1.1.1
	netbsd-10-0-RC5:1.1.1.1
	netbsd-10-0-RC4:1.1.1.1
	netbsd-10-0-RC3:1.1.1.1
	netbsd-10-0-RC2:1.1.1.1
	netbsd-10-0-RC1:1.1.1.1
	netbsd-10:1.1.1.1.0.26
	netbsd-10-base:1.1.1.1
	netbsd-9-3-RELEASE:1.1.1.1
	cjep_sun2x-base1:1.1.1.1
	cjep_sun2x:1.1.1.1.0.24
	cjep_sun2x-base:1.1.1.1
	cjep_staticlib_x-base1:1.1.1.1
	netbsd-9-2-RELEASE:1.1.1.1
	cjep_staticlib_x:1.1.1.1.0.22
	cjep_staticlib_x-base:1.1.1.1
	netbsd-9-1-RELEASE:1.1.1.1
	phil-wifi-20200421:1.1.1.1
	phil-wifi-20200411:1.1.1.1
	is-mlppp:1.1.1.1.0.20
	is-mlppp-base:1.1.1.1
	phil-wifi-20200406:1.1.1.1
	netbsd-8-2-RELEASE:1.1.1.1
	netbsd-9-0-RELEASE:1.1.1.1
	netbsd-9-0-RC2:1.1.1.1
	netbsd-9-0-RC1:1.1.1.1
	phil-wifi-20191119:1.1.1.1
	netbsd-9:1.1.1.1.0.18
	netbsd-9-base:1.1.1.1
	phil-wifi-20190609:1.1.1.1
	netbsd-8-1-RELEASE:1.1.1.1
	netbsd-8-1-RC1:1.1.1.1
	pgoyette-compat-merge-20190127:1.1.1.1
	pgoyette-compat-20190127:1.1.1.1
	pgoyette-compat-20190118:1.1.1.1
	pgoyette-compat-1226:1.1.1.1
	pgoyette-compat-1126:1.1.1.1
	pgoyette-compat-1020:1.1.1.1
	pgoyette-compat-0930:1.1.1.1
	pgoyette-compat-0906:1.1.1.1
	pgoyette-compat-0728:1.1.1.1
	netbsd-8-0-RELEASE:1.1.1.1
	phil-wifi:1.1.1.1.0.16
	phil-wifi-base:1.1.1.1
	pgoyette-compat-0625:1.1.1.1
	netbsd-8-0-RC2:1.1.1.1
	pgoyette-compat-0521:1.1.1.1
	pgoyette-compat-0502:1.1.1.1
	pgoyette-compat-0422:1.1.1.1
	netbsd-8-0-RC1:1.1.1.1
	pgoyette-compat-0415:1.1.1.1
	pgoyette-compat-0407:1.1.1.1
	pgoyette-compat-0330:1.1.1.1
	pgoyette-compat-0322:1.1.1.1
	pgoyette-compat-0315:1.1.1.1
	pgoyette-compat:1.1.1.1.0.14
	pgoyette-compat-base:1.1.1.1
	matt-nb8-mediatek:1.1.1.1.0.12
	matt-nb8-mediatek-base:1.1.1.1
	perseant-stdc-iso10646:1.1.1.1.0.10
	perseant-stdc-iso10646-base:1.1.1.1
	netbsd-8:1.1.1.1.0.8
	netbsd-8-base:1.1.1.1
	prg-localcount2-base3:1.1.1.1
	prg-localcount2-base2:1.1.1.1
	prg-localcount2-base1:1.1.1.1
	prg-localcount2:1.1.1.1.0.6
	prg-localcount2-base:1.1.1.1
	pgoyette-localcount-20170426:1.1.1.1
	bouyer-socketcan-base1:1.1.1.1
	pgoyette-localcount-20170320:1.1.1.1
	bouyer-socketcan:1.1.1.1.0.4
	bouyer-socketcan-base:1.1.1.1
	pgoyette-localcount-20170107:1.1.1.1
	pgoyette-localcount-20161104:1.1.1.1
	localcount-20160914:1.1.1.1
	pgoyette-localcount-20160806:1.1.1.1
	pgoyette-localcount-20160726:1.1.1.1
	pgoyette-localcount:1.1.1.1.0.2
	pgoyette-localcount-base:1.1.1.1
	dtracetoolkit-2015-09-29:1.1.1.1
	FreeBSD:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2015.09.30.22.01.08;	author christos;	state Exp;
branches
	1.1.1.1;
next	;
commitid	d9nN99160jbCfkDy;

1.1.1.1
date	2015.09.30.22.01.08;	author christos;	state Exp;
branches;
next	;
commitid	d9nN99160jbCfkDy;


desc
@@



1.1
log
@Initial revision
@
text
@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.
   
   
   
@


1.1.1.1
log
@Import the dtrace toolkit from FreeBSD; simple scripts such as dtruss work
unmodified. For others we'll need to add the missing probes and adjust.
This is not attached to the build.
@
text
@@
