PCI: pnv_php: Add missing of_node_put()
[linux-2.6-block.git] / samples / sockmap / sockmap_test.sh
1 #Test a bunch of positive cases to verify basic functionality
2 for prog in  "--txmsg_redir --txmsg_skb" "--txmsg_redir --txmsg_ingress" "--txmsg" "--txmsg_redir" "--txmsg_redir --txmsg_ingress" "--txmsg_drop"; do
3 for t in "sendmsg" "sendpage"; do
4 for r in 1 10 100; do
5         for i in 1 10 100; do
6                 for l in 1 10 100; do
7                         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
8                         echo $TEST
9                         $TEST
10                         sleep 2
11                 done
12         done
13 done
14 done
15 done
16
17 #Test max iov
18 t="sendmsg"
19 r=1
20 i=1024
21 l=1
22 prog="--txmsg"
23
24 TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
25 echo $TEST
26 $TEST
27 sleep 2
28 prog="--txmsg_redir"
29 TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
30 echo $TEST
31 $TEST
32
33 # Test max iov with 1k send
34
35 t="sendmsg"
36 r=1
37 i=1024
38 l=1024
39 prog="--txmsg"
40
41 TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
42 echo $TEST
43 $TEST
44 sleep 2
45 prog="--txmsg_redir"
46 TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
47 echo $TEST
48 $TEST
49 sleep 2
50
51 # Test apply with 1B
52 r=1
53 i=1024
54 l=1024
55 prog="--txmsg_apply 1"
56
57 for t in "sendmsg" "sendpage"; do
58         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
59         echo $TEST
60         $TEST
61         sleep 2
62 done
63
64 # Test apply with larger value than send
65 r=1
66 i=8
67 l=1024
68 prog="--txmsg_apply 2048"
69
70 for t in "sendmsg" "sendpage"; do
71         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
72         echo $TEST
73         $TEST
74         sleep 2
75 done
76
77 # Test apply with apply that never reaches limit
78 r=1024
79 i=1
80 l=1
81 prog="--txmsg_apply 2048"
82
83 for t in "sendmsg" "sendpage"; do
84         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
85         echo $TEST
86         $TEST
87         sleep 2
88 done
89
90 # Test apply and redirect with 1B
91 r=1
92 i=1024
93 l=1024
94 prog="--txmsg_redir --txmsg_apply 1"
95
96 for t in "sendmsg" "sendpage"; do
97         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
98         echo $TEST
99         $TEST
100         sleep 2
101 done
102
103 prog="--txmsg_redir --txmsg_apply 1 --txmsg_ingress"
104
105 for t in "sendmsg" "sendpage"; do
106         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
107         echo $TEST
108         $TEST
109         sleep 2
110 done
111
112 prog="--txmsg_redir --txmsg_apply 1 --txmsg_skb"
113
114 for t in "sendmsg" "sendpage"; do
115         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
116         echo $TEST
117         $TEST
118         sleep 2
119 done
120
121
122 # Test apply and redirect with larger value than send
123 r=1
124 i=8
125 l=1024
126 prog="--txmsg_redir --txmsg_apply 2048"
127
128 for t in "sendmsg" "sendpage"; do
129         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
130         echo $TEST
131         $TEST
132         sleep 2
133 done
134
135 prog="--txmsg_redir --txmsg_apply 2048 --txmsg_ingress"
136
137 for t in "sendmsg" "sendpage"; do
138         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
139         echo $TEST
140         $TEST
141         sleep 2
142 done
143
144 prog="--txmsg_redir --txmsg_apply 2048 --txmsg_skb"
145
146 for t in "sendmsg" "sendpage"; do
147         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
148         echo $TEST
149         $TEST
150         sleep 2
151 done
152
153
154 # Test apply and redirect with apply that never reaches limit
155 r=1024
156 i=1
157 l=1
158 prog="--txmsg_apply 2048"
159
160 for t in "sendmsg" "sendpage"; do
161         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
162         echo $TEST
163         $TEST
164         sleep 2
165 done
166
167 # Test cork with 1B not really useful but test it anyways
168 r=1
169 i=1024
170 l=1024
171 prog="--txmsg_cork 1"
172
173 for t in "sendpage" "sendmsg"; do
174         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
175         echo $TEST
176         $TEST
177         sleep 2
178 done
179
180 # Test cork with a more reasonable 100B
181 r=1
182 i=1000
183 l=1000
184 prog="--txmsg_cork 100"
185
186 for t in "sendpage" "sendmsg"; do
187         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
188         echo $TEST
189         $TEST
190         sleep 2
191 done
192
193 # Test cork with larger value than send
194 r=1
195 i=8
196 l=1024
197 prog="--txmsg_cork 2048"
198
199 for t in "sendpage" "sendmsg"; do
200         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
201         echo $TEST
202         $TEST
203         sleep 2
204 done
205
206 # Test cork with cork that never reaches limit
207 r=1024
208 i=1
209 l=1
210 prog="--txmsg_cork 2048"
211
212 for t in "sendpage" "sendmsg"; do
213         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
214         echo $TEST
215         $TEST
216         sleep 2
217 done
218
219 r=1
220 i=1024
221 l=1024
222 prog="--txmsg_redir --txmsg_cork 1"
223
224 for t in "sendpage" "sendmsg"; do
225         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
226         echo $TEST
227         $TEST
228         sleep 2
229 done
230
231 # Test cork with a more reasonable 100B
232 r=1
233 i=1000
234 l=1000
235 prog="--txmsg_redir --txmsg_cork 100"
236
237 for t in "sendpage" "sendmsg"; do
238         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
239         echo $TEST
240         $TEST
241         sleep 2
242 done
243
244 # Test cork with larger value than send
245 r=1
246 i=8
247 l=1024
248 prog="--txmsg_redir --txmsg_cork 2048"
249
250 for t in "sendpage" "sendmsg"; do
251         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
252         echo $TEST
253         $TEST
254         sleep 2
255 done
256
257 # Test cork with cork that never reaches limit
258 r=1024
259 i=1
260 l=1
261 prog="--txmsg_cork 2048"
262
263 for t in "sendpage" "sendmsg"; do
264         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
265         echo $TEST
266         $TEST
267         sleep 2
268 done
269
270
271 # mix and match cork and apply not really useful but valid programs
272
273 # Test apply < cork
274 r=100
275 i=1
276 l=5
277 prog="--txmsg_apply 10 --txmsg_cork 100"
278 for t in "sendpage" "sendmsg"; do
279         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
280         echo $TEST
281         $TEST
282         sleep 2
283 done
284
285 # Try again with larger sizes so we hit overflow case
286 r=100
287 i=1000
288 l=2048
289 prog="--txmsg_apply 4096 --txmsg_cork 8096"
290 for t in "sendpage" "sendmsg"; do
291         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
292         echo $TEST
293         $TEST
294         sleep 2
295 done
296
297 # Test apply > cork
298 r=100
299 i=1
300 l=5
301 prog="--txmsg_apply 100 --txmsg_cork 10"
302 for t in "sendpage" "sendmsg"; do
303         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
304         echo $TEST
305         $TEST
306         sleep 2
307 done
308
309 # Again with larger sizes so we hit overflow cases
310 r=100
311 i=1000
312 l=2048
313 prog="--txmsg_apply 8096 --txmsg_cork 4096"
314 for t in "sendpage" "sendmsg"; do
315         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
316         echo $TEST
317         $TEST
318         sleep 2
319 done
320
321
322 # Test apply = cork
323 r=100
324 i=1
325 l=5
326 prog="--txmsg_apply 10 --txmsg_cork 10"
327 for t in "sendpage" "sendmsg"; do
328         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
329         echo $TEST
330         $TEST
331         sleep 2
332 done
333
334 r=100
335 i=1000
336 l=2048
337 prog="--txmsg_apply 4096 --txmsg_cork 4096"
338 for t in "sendpage" "sendmsg"; do
339         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
340         echo $TEST
341         $TEST
342         sleep 2
343 done
344
345 # Test apply < cork
346 r=100
347 i=1
348 l=5
349 prog="--txmsg_redir --txmsg_apply 10 --txmsg_cork 100"
350 for t in "sendpage" "sendmsg"; do
351         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
352         echo $TEST
353         $TEST
354         sleep 2
355 done
356
357 # Try again with larger sizes so we hit overflow case
358 r=100
359 i=1000
360 l=2048
361 prog="--txmsg_redir --txmsg_apply 4096 --txmsg_cork 8096"
362 for t in "sendpage" "sendmsg"; do
363         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
364         echo $TEST
365         $TEST
366         sleep 2
367 done
368
369 # Test apply > cork
370 r=100
371 i=1
372 l=5
373 prog="--txmsg_redir --txmsg_apply 100 --txmsg_cork 10"
374 for t in "sendpage" "sendmsg"; do
375         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
376         echo $TEST
377         $TEST
378         sleep 2
379 done
380
381 # Again with larger sizes so we hit overflow cases
382 r=100
383 i=1000
384 l=2048
385 prog="--txmsg_redir --txmsg_apply 8096 --txmsg_cork 4096"
386 for t in "sendpage" "sendmsg"; do
387         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
388         echo $TEST
389         $TEST
390         sleep 2
391 done
392
393
394 # Test apply = cork
395 r=100
396 i=1
397 l=5
398 prog="--txmsg_redir --txmsg_apply 10 --txmsg_cork 10"
399 for t in "sendpage" "sendmsg"; do
400         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
401         echo $TEST
402         $TEST
403         sleep 2
404 done
405
406 r=100
407 i=1000
408 l=2048
409 prog="--txmsg_redir --txmsg_apply 4096 --txmsg_cork 4096"
410 for t in "sendpage" "sendmsg"; do
411         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog"
412         echo $TEST
413         $TEST
414         sleep 2
415 done
416
417 # Tests for bpf_msg_pull_data()
418 for i in `seq 99 100 1600`; do
419         TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
420                 --txmsg --txmsg_start 0 --txmsg_end $i --txmsg_cork 1600"
421         echo $TEST
422         $TEST
423         sleep 2
424 done
425
426 for i in `seq 199 100 1600`; do
427         TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
428                 --txmsg --txmsg_start 100 --txmsg_end $i --txmsg_cork 1600"
429         echo $TEST
430         $TEST
431         sleep 2
432 done
433
434 TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
435         --txmsg --txmsg_start 1500 --txmsg_end 1600 --txmsg_cork 1600"
436 echo $TEST
437 $TEST
438 sleep 2
439
440 TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
441         --txmsg --txmsg_start 1111 --txmsg_end 1112 --txmsg_cork 1600"
442 echo $TEST
443 $TEST
444 sleep 2
445
446 TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
447         --txmsg --txmsg_start 1111 --txmsg_end 0 --txmsg_cork 1600"
448 echo $TEST
449 $TEST
450 sleep 2
451
452 TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
453         --txmsg --txmsg_start 0 --txmsg_end 1601 --txmsg_cork 1600"
454 echo $TEST
455 $TEST
456 sleep 2
457
458 TEST="./sockmap --cgroup /mnt/cgroup2/ -t sendpage -r 16 -i 1 -l 100 \
459         --txmsg --txmsg_start 0 --txmsg_end 1601 --txmsg_cork 1602"
460 echo $TEST
461 $TEST
462 sleep 2
463
464 # Run through gamut again with start and end
465 for prog in "--txmsg" "--txmsg_redir" "--txmsg_drop"; do
466 for t in "sendmsg" "sendpage"; do
467 for r in 1 10 100; do
468         for i in 1 10 100; do
469                 for l in 1 10 100; do
470                         TEST="./sockmap --cgroup /mnt/cgroup2/ -t $t -r $r -i $i -l $l $prog --txmsg_start 1 --txmsg_end 2"
471                         echo $TEST
472                         $TEST
473                         sleep 2
474                 done
475         done
476 done
477 done
478 done
479
480 # Some specific tests to cover specific code paths
481 ./sockmap --cgroup /mnt/cgroup2/ -t sendpage \
482         -r 5 -i 1 -l 1 --txmsg_redir --txmsg_cork 5 --txmsg_apply 3
483 ./sockmap --cgroup /mnt/cgroup2/ -t sendmsg \
484         -r 5 -i 1 -l 1 --txmsg_redir --txmsg_cork 5 --txmsg_apply 3
485 ./sockmap --cgroup /mnt/cgroup2/ -t sendpage \
486         -r 5 -i 1 -l 1 --txmsg_redir --txmsg_cork 5 --txmsg_apply 5
487 ./sockmap --cgroup /mnt/cgroup2/ -t sendmsg \
488         -r 5 -i 1 -l 1 --txmsg_redir --txmsg_cork 5 --txmsg_apply 5