342ecd1f5da09a7ebadacaf578e2f7a1347aa17d
[zfs.git] / scripts / zpios.sh
1 #!/bin/bash
2
3 prog=zpios.sh
4 . ../.script-config
5
6 SPL_OPTIONS="spl_debug_mask=0 spl_debug_subsys=0 ${1}"
7 ZPOOL_OPTIONS=$2
8 KPIOS_OPTIONS=$3
9 PROFILE_KPIOS_LOGS=$4
10 KPIOS_PRE=$5
11 KPIOS_POST=$6
12
13 PROFILE_KPIOS_PRE=/home/behlendo/src/zfs/scripts/profile-kpios-pre.sh
14 PROFILE_KPIOS_POST=/home/behlendo/src/zfs/scripts/profile-kpios-post.sh
15
16 DEVICES="/dev/hda"
17
18 echo ------------------------- ZFS TEST LOG ---------------------------------
19 echo -n "Date = "; date
20 echo -n "Kernel = "; uname -r
21 echo ------------------------------------------------------------------------
22
23 echo
24 ./load-zfs.sh "${SPL_OPTIONS}" "${ZPOOL_OPTIONS}"
25
26 echo ---------------------- SPL Sysctl Tunings ------------------------------
27 sysctl -A | grep spl
28 echo
29
30 echo ------------------- SPL/ZPOOL Module Tunings ---------------------------
31 if [ -d /sys/module/spl/parameters ]; then
32         grep [0-9] /sys/module/spl/parameters/*
33         grep [0-9] /sys/module/zpool/parameters/*
34 else
35         grep [0-9] /sys/module/spl/*
36         grep [0-9] /sys/module/zpool/*
37 fi
38 echo
39
40 echo "${CMDDIR}/zpool/zpool create -f lustre ${DEVICES}"
41 ${CMDDIR}/zpool/zpool create -f lustre ${DEVICES}
42
43 echo "${CMDDIR}/zpool/zpool status lustre"
44 ${CMDDIR}/zpool/zpool status lustre
45
46 echo "Waiting for /dev/kpios to come up..."
47 while [ ! -c /dev/kpios ]; do
48         sleep 1
49 done
50
51 if [ -n "${KPIOS_PRE}" ]; then
52         ${KPIOS_PRE}
53 fi 
54
55 # Usage: zpios
56 #         --chunksize         -c    =values
57 #         --chunksize_low     -a    =value
58 #         --chunksize_high    -b    =value
59 #         --chunksize_incr    -g    =value
60 #         --offset            -o    =values
61 #         --offset_low        -m    =value
62 #         --offset_high       -q    =value
63 #         --offset_incr       -r    =value
64 #         --regioncount       -n    =values
65 #         --regioncount_low   -i    =value
66 #         --regioncount_high  -j    =value
67 #         --regioncount_incr  -k    =value
68 #         --threadcount       -t    =values
69 #         --threadcount_low   -l    =value
70 #         --threadcount_high  -h    =value
71 #         --threadcount_incr  -e    =value
72 #         --regionsize        -s    =values
73 #         --regionsize_low    -A    =value
74 #         --regionsize_high   -B    =value
75 #         --regionsize_incr   -C    =value
76 #         --cleanup           -x
77 #         --verify            -V
78 #         --zerocopy          -z
79 #         --threaddelay       -T    =jiffies
80 #         --regionnoise       -I    =shift
81 #         --chunknoise        -N    =bytes
82 #         --prerun            -P    =pre-command
83 #         --postrun           -R    =post-command
84 #         --log               -G    =log directory
85 #         --pool | --path     -p    =pool name
86 #         --load              -L    =dmuio
87 #         --help              -?    =this help
88 #         --verbose           -v    =increase verbosity
89
90 #        --prerun=${PROFILE_KPIOS_PRE}                            \
91 #        --postrun=${PROFILE_KPIOS_POST}                          \
92
93 CMD="${CMDDIR}/zpios/zpios                                       \
94         --load=dmuio                                             \
95         --path=lustre                                            \
96         --chunksize=1M                                           \
97         --regionsize=4M                                          \
98         --regioncount=64                                         \
99         --threadcount=4                                          \
100         --offset=4M                                              \
101         --cleanup                                                \
102         --verbose                                                \
103         --human-readable                                         \
104         ${KPIOS_OPTIONS}                                         \
105         --log=${PROFILE_KPIOS_LOGS}" 
106 echo
107 date
108 echo ${CMD}
109 $CMD
110 date
111
112 if [ -n "${KPIOS_POST}" ]; then
113         ${KPIOS_POST}
114 fi 
115
116 ${CMDDIR}/zpool/zpool destroy lustre
117
118 echo ---------------------- SPL Sysctl Tunings ------------------------------
119 sysctl -A | grep spl
120 echo
121
122 echo ------------------------ KSTAT Statistics ------------------------------
123 echo ARCSTATS
124 cat /proc/spl/kstat/zfs/arcstats
125 echo
126 echo VDEV_CACHE_STATS
127 cat /proc/spl/kstat/zfs/vdev_cache_stats
128 echo
129 echo SLAB
130 cat /proc/spl/kmem/slab
131 echo
132
133 ./unload-zfs.sh