Commit Graph

33 Commits

Author SHA1 Message Date
pjd
74bf082d07 Add a little, but very useful script for use with programs that work using an
event loop and should sleep only when waiting for events (eg. via kevent(2)).
When a program is going to sleep in the kernel, the script will show its name,
PID, kernel stack trace and userland stack trace. Sleeping in kevent(2) is
ignored as it is expected to be valid.

Sample output:

# ./blocking lynxd

lynxd(15042) is blocking...

              kernel`_cv_wait_sig+0x124
              kernel`seltdwait+0xae
              kernel`sys_poll+0x3a3
              kernel`amd64_syscall+0x343
              kernel`0xffffffff806c79ab

              lynxd`poll+0xa
              lynxd`pqSocketCheck+0xa2
              lynxd`pqWaitTimed+0x29
              lynxd`connectDBComplete+0xd7
              lynxd`PQsetdbLogin+0x2ec
              lynxd`db_connect+0x3c
              lynxd`main+0x198
              lynxd`_start+0x16f
              0x2

lynxd(1925) is blocking...

              kernel`_cv_wait+0x125
              zfs.ko`zio_wait+0x5b
              zfs.ko`dmu_buf_hold_array_by_dnode+0x1dc
              zfs.ko`dmu_read+0xcb
              zfs.ko`zfs_freebsd_getpages+0x37b
              kernel`VOP_GETPAGES_APV+0xa7
              kernel`vnode_pager_getpages+0x9a
              kernel`vm_fault_hold+0x885
              kernel`vm_fault+0x77
              kernel`trap_pfault+0x211
              kernel`trap+0x506
              kernel`0xffffffff806c76c2

              lynxd`EVP_add_cipher+0x13
              lynxd`SSL_library_init+0x11
              lynxd`main+0x94
              lynxd`_start+0x16f
              0x2

lynxd(1925) is blocking...

              kernel`_cv_wait+0x125
              zfs.ko`zio_wait+0x5b
              zfs.ko`dbuf_read+0x791
              zfs.ko`dbuf_findbp+0x12f
              zfs.ko`dbuf_hold_impl+0xa2
              zfs.ko`dbuf_hold+0x1b
              zfs.ko`dmu_buf_hold_array_by_dnode+0x153
              zfs.ko`dmu_read_uio+0x66
              zfs.ko`zfs_freebsd_read+0x3a3
              kernel`VOP_READ_APV+0xa1
              kernel`vn_read+0x13a
              kernel`vn_io_fault+0x10b
              kernel`dofileread+0x95
              kernel`kern_readv+0x68
              kernel`sys_read+0x63
              kernel`amd64_syscall+0x343
              kernel`0xffffffff806c79ab

              lynxd`_read+0xa
              lynxd`__srefill+0x122
              lynxd`fgets+0x78
              lynxd`file_gets+0x1d
              lynxd`BIO_gets+0x64
              lynxd`PEM_read_bio+0xf5
              lynxd`PEM_X509_INFO_read_bio+0x90
              lynxd`X509_load_cert_crl_file+0x47
              lynxd`by_file_ctrl+0x2e
              lynxd`X509_STORE_load_locations+0x4a
              lynxd`sslctx_init+0x255
              lynxd`main+0x215
              lynxd`_start+0x16f
              0x2

Requested by:	gnn
Obtained from:	Wheel Systems http://wheelsystems.com
2015-10-04 00:40:12 +00:00
gnn
e39dbc6166 dd DTrace probe points, translators and a corresponding script
to provide the TCPDEBUG functionality with pure DTrace.

Reviewed by:	rwatson
MFC after:	2 weeks
Sponsored by:	Limelight Networks
Differential Revision:	D3530
2015-09-13 15:50:55 +00:00
gnn
950cbf40e2 Update DTrace nfs scripts to track the proper provider names.
Submitted by:	Alex Burlyga
2015-09-08 00:30:10 +00:00
hiren
c0c1372f36 Add missing DTrace scripts that exist in the source tree to the Makefile for
install.
While here, sort the list.

Differential Revision:	D2950
Submitted by:		Jason Wolfe <j at nitrology.com>
Reviewed by:		gnn, markj, hiren
Sponsored by:		Limelight Networks
2015-06-30 18:23:08 +00:00
sjg
008d7c831f Add META_MODE support.
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
2015-06-13 19:20:56 +00:00
sjg
cead8270d4 Remove NO_OBJ
For meta mode we will want objdirs.

Differential Revision:	D2748
Reviewed by:	brooks imp
2015-06-11 04:22:17 +00:00
sjg
c6cd854579 Remove extra blank lines 2015-06-10 14:08:36 +00:00
sjg
75a137820d dirdeps.mk now sets DEP_RELDIR 2015-06-08 23:35:17 +00:00
sjg
65145fa4c8 Merge sync of head 2015-05-27 01:19:58 +00:00
gnn
ed3629565f Brief demo script showing the various values that can be read via the new SIFTR statically defined tracepoint (SDT).
Reviewed by:	bz, markj
2015-04-29 18:07:58 +00:00
gnn
8103d4419d Summary: Update the ports to read from the packet rather than the
socket structure
2015-03-08 04:33:53 +00:00
gnn
d00722abad udp track shows UDP data as it arrives and leaves the system 2015-03-08 04:29:41 +00:00
gnn
2b04106470 Summary: Remove the pid printing which does not currently work. 2015-03-08 02:47:38 +00:00
gnn
a8297742d9 Set the property to executable. 2015-03-07 21:31:37 +00:00
gnn
8bd004971b Add execute bits to tcpstate script. 2015-03-07 21:28:37 +00:00
gnn
4388fb8eb5 TCP connection tracker that uses aggregations to show where connections
originate from.
2015-03-07 19:29:53 +00:00
gnn
74a863fa51 Add a more complex TCP tracking script, which shows connections and
accepts as well as state transitions.
2015-03-07 19:16:09 +00:00
gnn
5ffbd45332 Add a TCP state tracking script based on FreeBSD TCP SDTs 2015-03-07 18:17:15 +00:00
sjg
b137080f19 Merge from head@274682 2014-11-19 01:07:58 +00:00
sjg
d7cd1d425c Merge head from 7/28 2014-08-19 06:50:54 +00:00
jmg
02082d1d17 add my scripts to measure io latency per disk... 2014-08-09 20:40:03 +00:00
jmg
09ecf18776 make the README a bit more clearer...
Sort the scripts, and remove the trailing backslash...

We really should install more of the toolkit scripts than just 5 of them..
2014-08-09 20:25:17 +00:00
rpaulo
8c26700128 Use dtrace -s instead of /bin/sh for DTrace scripts. 2014-06-26 17:27:36 +00:00
sjg
ed3fc70bf5 Merge from head 2014-05-08 23:54:15 +00:00
imp
2118f42afd Use src.opts.mk in preference to bsd.own.mk except where we need stuff
from the latter.
2014-05-06 04:22:01 +00:00
sjg
724c99a1c9 We do want objdir 2013-10-13 00:27:34 +00:00
sjg
292ec5d301 Updated dependencies 2013-10-13 00:24:00 +00:00
gnn
def7cb61de Remove copy/pasteo in the copyright notice. 2012-07-21 07:14:52 +00:00
gnn
4a93db7b12 Add a new script, hotopen, which shows what uid is opening files
on a per second basis.  While here clean up the Makefile as well.

MFC after:	1 week
2012-07-20 23:56:23 +00:00
gnn
3abf012017 Add a script that traces NFS attribute cache accesses.
Submitted by:	rwatson
MFC after:	2 weeks
2012-07-16 17:48:43 +00:00
gnn
986701592a Fix a case typo.
Pointed out by: jlh@
2012-05-18 20:34:08 +00:00
gnn
8cfd0497b1 Add a DTrace script to show the frequency and latency of NFS client calls.
Submitted by:	rwatson
2012-05-18 16:47:15 +00:00
gnn
a20823e069 Add support for our own DTrace scripts and those from the DTraceToolkit
to the build system.  FreeBSD written scripts are stored in
src/share and the toolkit scripts are brought from the cddl directory
into a working tree via install.

MFC after:	2 weeks
2012-05-18 16:40:15 +00:00