@@ -55,6 +55,7 @@ do_kasan=yes
55
55
do_kcsan=no
56
56
do_clocksourcewd=yes
57
57
do_rt=yes
58
+ do_rcutasksflavors=yes
58
59
59
60
# doyesno - Helper function for yes/no arguments
60
61
function doyesno () {
@@ -81,6 +82,7 @@ usage () {
81
82
echo " --do-locktorture / --do-no-locktorture / --no-locktorture"
82
83
echo " --do-none"
83
84
echo " --do-rcuscale / --do-no-rcuscale / --no-rcuscale"
85
+ echo " --do-rcutasksflavors / --do-no-rcutasksflavors / --no-rcutasksflavors"
84
86
echo " --do-rcutorture / --do-no-rcutorture / --no-rcutorture"
85
87
echo " --do-refscale / --do-no-refscale / --no-refscale"
86
88
echo " --do-rt / --do-no-rt / --no-rt"
115
117
;;
116
118
--do-all|--doall)
117
119
do_allmodconfig=yes
120
+ do_rcutasksflavor=yes
118
121
do_rcutorture=yes
119
122
do_locktorture=yes
120
123
do_scftorture=yes
146
149
;;
147
150
--do-none|--donone)
148
151
do_allmodconfig=no
152
+ do_rcutasksflavors=no
149
153
do_rcutorture=no
150
154
do_locktorture=no
151
155
do_scftorture=no
160
164
--do-rcuscale|--do-no-rcuscale|--no-rcuscale)
161
165
do_rcuscale=` doyesno " $1 " --do-rcuscale`
162
166
;;
167
+ --do-rcutasksflavors|--do-no-rcutasksflavors|--no-rcutasksflavors)
168
+ do_rcutasksflavors=` doyesno " $1 " --do-rcutasksflavors`
169
+ ;;
163
170
--do-rcutorture|--do-no-rcutorture|--no-rcutorture)
164
171
do_rcutorture=` doyesno " $1 " --do-rcutorture`
165
172
;;
@@ -361,6 +368,40 @@ then
361
368
fi
362
369
fi
363
370
371
+ # Test building RCU Tasks flavors in isolation, both SMP and !SMP
372
+ if test " $do_rcutasksflavors " = " yes"
373
+ then
374
+ echo " --- rcutasksflavors:" Start ` date` | tee -a $T /log
375
+ rtfdir=" tools/testing/selftests/rcutorture/res/$ds /results-rcutasksflavors"
376
+ mkdir -p " $rtfdir "
377
+ cat > $T /rcutasksflavors << __EOF__
378
+ #CHECK#CONFIG_TASKS_RCU=n
379
+ #CHECK#CONFIG_TASKS_RUDE_RCU=n
380
+ #CHECK#CONFIG_TASKS_TRACE_RCU=n
381
+ __EOF__
382
+ for flavor in CONFIG_TASKS_RCU CONFIG_TASKS_RUDE_RCU CONFIG_TASKS_TRACE_RCU
383
+ do
384
+ forceflavor=" ` echo $flavor | sed -e ' s/^CONFIG/CONFIG_FORCE/' ` "
385
+ deselectedflavors=" ` grep -v $flavor $T /rcutasksflavors | tr ' \012' ' ' | tr -s ' ' | sed -e ' s/ *$//' ` "
386
+ echo " --- Running RCU Tasks Trace flavor $flavor ` date` " >> $rtfdir /log
387
+ tools/testing/selftests/rcutorture/bin/kvm.sh --datestamp " $ds /results-rcutasksflavors/$flavor " --buildonly --configs " TINY01 TREE04" --kconfig " CONFIG_RCU_EXPERT=y CONFIG_RCU_SCALE_TEST=y $forceflavor =y $deselectedflavors " --trust-make > $T /$flavor .out 2>&1
388
+ retcode=$?
389
+ if test " $retcode " -ne 0
390
+ then
391
+ break
392
+ fi
393
+ done
394
+ if test " $retcode " -eq 0
395
+ then
396
+ echo " rcutasksflavors($retcode )" $rtfdir >> $T /successes
397
+ echo Success >> $rtfdir /log
398
+ else
399
+ echo " rcutasksflavors($retcode )" $rtfdir >> $T /failures
400
+ echo " --- rcutasksflavors Test summary:" >> $rtfdir /log
401
+ echo " --- Summary: Exit code $retcode from $flavor , see Make.out" >> $rtfdir /log
402
+ fi
403
+ fi
404
+
364
405
# --torture rcu
365
406
if test " $do_rcutorture " = " yes"
366
407
then
0 commit comments