Commit Graph

16 Commits

Author SHA1 Message Date
Devin Teske
5bf5ca772c Introduce dwatch(1) as a tool for making DTrace more useful
Reviewed by:	markj, gnn, bdrewery (earlier version)
Relnotes:	yes
Sponsored by:	Smule, Inc.
Differential Revision:	https://reviews.freebsd.org/D10006
2018-03-06 23:44:19 +00:00
George V. Neville-Neil
18849b5da0 Remove the old version of the DTraceToolkit from the source tree.
The DTraceToolkit is part of the Open DTrace effort and is supported
on FreeBSD as a port (sysutils/DTraceToolkit) which has been updated
to properly track toolkit development upstream.

Sponsored by:	DARPA, AFRL
2016-05-19 19:51:39 +00:00
George V. Neville-Neil
480f4e946d Add an mbuf provider to DTrace.
The mbuf provider is made up of a set of Statically Defined Tracepoints
which help us look into mbufs as they are allocated and freed.  This can be
used to inspect the buffers or for a simplified mbuf leak detector.

New tracepoints are:

mbuf:::m-init
mbuf:::m-gethdr
mbuf:::m-get
mbuf:::m-getcl
mbuf:::m-clget
mbuf:::m-cljget
mbuf:::m-cljset
mbuf:::m-free
mbuf:::m-freem

There is also a translator for mbufs which gives some visibility into the structure,
see mbuf.d for more details.

Reviewed by:	bz, markj
MFC after:	2 weeks
Sponsored by:	Rubicon Communications (Netgate)
Differential Revision:	https://reviews.freebsd.org/D5682
2016-03-22 13:16:52 +00:00
George V. Neville-Neil
342af4d5ef fix tcpdebug: - assign to "flags" in each probe, not only debug-input
compute "len" in the same way in each probe

Submitted by:	Hannes Mehnert
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D5524
2016-03-03 02:46:12 +00:00
Devin Teske
abac203368 Add scripts for watching common entry points.
MFC after:	3 days
X-MFC-to:	stable/10
2016-01-22 07:19:30 +00:00
Bryan Drewery
93e779a26c META MODE: These need object directories to handle staging.
Sponsored by:	EMC / Isilon Storage Division
2015-11-26 01:14:27 +00:00
Pawel Jakub Dawidek
af71f40a98 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
Hiren Panchasara
5341316696 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
George V. Neville-Neil
1dfaa6f1aa udp track shows UDP data as it arrives and leaves the system 2015-03-08 04:29:41 +00:00
George V. Neville-Neil
2c5c06a0d9 TCP connection tracker that uses aggregations to show where connections
originate from.
2015-03-07 19:29:53 +00:00
George V. Neville-Neil
234aa44656 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
George V. Neville-Neil
4ce386ff25 Add a TCP state tracking script based on FreeBSD TCP SDTs 2015-03-07 18:17:15 +00:00
John-Mark Gurney
1a4574596c add my scripts to measure io latency per disk... 2014-08-09 20:40:03 +00:00
Warner Losh
c6063d0da8 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
George V. Neville-Neil
213dc9df2e 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
George V. Neville-Neil
4d37a12307 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