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