Add BUF_TRACKING and FULL_BUF_TRACKING buffer debugging
authorcem <cem@FreeBSD.org>
Mon, 31 Oct 2016 23:09:52 +0000 (23:09 +0000)
committercem <cem@FreeBSD.org>
Mon, 31 Oct 2016 23:09:52 +0000 (23:09 +0000)
commit7ae132fee10d014535f1cd5ec53a2584871715c7
tree38a4d4d75a173395017b59aa5d986d25e29e841a
parent9d25b3f0046282ba17451e21d1a02b0f7fed2627
Add BUF_TRACKING and FULL_BUF_TRACKING buffer debugging

Upstream the BUF_TRACKING and FULL_BUF_TRACKING buffer debugging code.
This can be handy in tracking down what code touched hung bios and bufs
last. The full history is especially useful, but adds enough bloat that
it shouldn't be enabled in release builds.

Function names (or arbitrary string constants) are tracked in a
fixed-size ring in bufs. Bios gain a pointer to the upper buf for
tracking. SCSI CCBs gain a pointer to the upper bio for tracking.

Reviewed by: markj
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D8366
19 files changed:
sys/amd64/conf/GENERIC
sys/amd64/conf/GENERIC-NODEBUG
sys/cam/cam_ccb.h
sys/cam/cam_periph.c
sys/cam/cam_xpt.c
sys/cam/scsi/scsi_da.c
sys/conf/options
sys/dev/mps/mps_sas.c
sys/geom/geom_dev.c
sys/geom/geom_disk.c
sys/geom/geom_io.c
sys/geom/geom_subr.c
sys/geom/geom_vfs.c
sys/geom/part/g_part.c
sys/kern/vfs_bio.c
sys/kern/vfs_cluster.c
sys/sys/bio.h
sys/sys/buf.h
sys/vm/vm_pager.c