diff options
author | Conrad Meyer <cem@FreeBSD.org> | 2016-10-31 23:09:52 +0000 |
---|---|---|
committer | Conrad Meyer <cem@FreeBSD.org> | 2016-10-31 23:09:52 +0000 |
commit | 8532d381a91f1e201ab95ab7f913b723e8912571 (patch) | |
tree | 38a4d4d75a173395017b59aa5d986d25e29e841a /sys/geom/geom_dev.c | |
parent | 2d5386cc2c570cf781c45cc948a800c8f8d4f0d0 (diff) | |
download | src-8532d381a91f1e201ab95ab7f913b723e8912571.tar.gz src-8532d381a91f1e201ab95ab7f913b723e8912571.zip |
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
Notes
Notes:
svn path=/head/; revision=308155
Diffstat (limited to 'sys/geom/geom_dev.c')
-rw-r--r-- | sys/geom/geom_dev.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c index d74b92e59776..3ccbd583fa2d 100644 --- a/sys/geom/geom_dev.c +++ b/sys/geom/geom_dev.c @@ -668,6 +668,7 @@ g_dev_strategy(struct bio *bp) sc = cp->private; KASSERT(cp->acr || cp->acw, ("Consumer with zero access count in g_dev_strategy")); + biotrack(bp, __func__); #ifdef INVARIANTS if ((bp->bio_offset % cp->provider->sectorsize) != 0 || (bp->bio_bcount % cp->provider->sectorsize) != 0) { |