xref: /freebsd/tools/test/stress2/misc/all.debug.inc (revision 2e3507c25e42292b45a5482e116d278f5515d04d)
1#
2# SPDX-License-Identifier: BSD-2-Clause
3#
4# Copyright (c) 2020 Peter Holm <pho@FreeBSD.org>
5#
6# Redistribution and use in source and binary forms, with or without
7# modification, are permitted provided that the following conditions
8# are met:
9# 1. Redistributions of source code must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11# 2. Redistributions in binary form must reproduce the above copyright
12#    notice, this list of conditions and the following disclaimer in the
13#    documentation and/or other materials provided with the distribution.
14#
15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25# SUCH DAMAGE.
26#
27#
28
29# Example debug include file for misc/all.sh
30
31pre_debug() {
32	debug_statfs=`vmstat -m | grep -w statfs | awk '{print $2}'`
33	debug_freework=`vmstat -m | grep -w freework | awk '{print $2}'`
34	debug_newblk=`vmstat -m | grep -w newblk | awk '{print $2}'`
35	debug_pts=`vmstat -m | grep -w pts | awk '{print $2}'`
36	debug_routetbl=`vmstat -m | grep -w routetbl | awk '{print $2}'`
37	debug_mount=`vmstat -m | awk '/  mount/{print $2}'`
38	debug_geom=`vmstat -m | grep -w GEOM | awk '{print $2}'`
39#	debug_indirdep=`vmstat -m | grep -w indirdep | awk '{print $2}'`
40}
41
42post_debug() {
43	local debug_new
44
45	debug_new=`vmstat -m | grep -w statfs | awk '{print $2}'`
46	[ $((debug_new - debug_statfs)) -gt 0 ] &&
47	    { printf "stress2: statfs leak: %d/%d.\r\n" \
48	        $((debug_new - debug_statfs)) $debug_new > $console
49		debug_statfs=$debug_new; }
50
51	debug_new=`vmstat -m | grep -w freework | awk '{print $2}'`
52	[ $((debug_new - debug_freework)) -gt 0 -a $debug_new -gt 100 ] &&
53	    { printf "stress2: freework leak: %d/%d.\r\n" \
54	        $((debug_new - debug_freework)) $debug_new > $console
55		debug_freework=$debug_new; }
56
57	debug_new=`vmstat -m | grep -w newblk | awk '{print $2}'`
58	[ $((debug_new - debug_newblk)) -gt 0 -a $debug_new -gt 100 ] &&
59	    { printf "stress2: newblk leak: %d/%d.\r\n" \
60	        $((debug_new - debug_newblk)) $debug_new > $console
61		debug_newblk=$debug_new; }
62
63	debug_new=`vmstat -m | grep -w pts | awk '{print $2}'`
64	[ $((debug_new - debug_pts)) -gt 0 ] &&
65	    { printf "stress2: pts leak: %d/%d\r\n" \
66	        $((debug_new - debug_pts)) $debug_new > $console
67		debug_pts=$debug_new; }
68
69	debug_new=`vmstat -m | grep -w routetbl | awk '{print $2}'`
70	[ $((debug_new - debug_routetbl)) -gt 0 ] &&
71	    { printf "stress2: routetbl leak: %d/%d\r\n" \
72	        $((debug_new - debug_routetbl)) $debug_new > $console
73		debug_routetbl=$debug_new; }
74
75	debug_new=`vmstat -m | awk '/  mount/{print $2}'`
76	[ $((debug_new - debug_mount)) -gt 0 ] &&
77	    { printf "stress2: mount leak: %d/%d\r\n" \
78	        $((debug_new - debug_mount)) $debug_new > $console
79		debug_mount=$debug_new; }
80
81	debug_new=`vmstat -m | awk '/GEOM/{print $2}'`
82	[ $((debug_new - debug_geom)) -gt 0 ] &&
83	    { printf "stress2: GEOM leak: %d/%d\r\n" \
84	        $((debug_new - debug_geom)) $debug_new > $console
85		debug_geom=$debug_new; }
86
87#	debug_new=`vmstat -m | awk '/indirdep/{print $2}'`
88#	[ $((debug_new - debug_indirdep)) -gt 100 -a $debug_new -gt 100 ] &&
89#	    { printf "stress2: indirdep leak: %d/%d\r\n" \
90#	        $((debug_new - debug_indirdep)) $debug_new > $console
91#		debug_indirdep=$debug_new; }
92}
93
94all_debug=1
95