rcutorture: Dispense with Dracut for initrd creation
authorPaul E. McKenney <paulmck@kernel.org>
Sat, 12 Oct 2019 22:29:02 +0000 (15:29 -0700)
committerPaul E. McKenney <paulmck@kernel.org>
Mon, 9 Dec 2019 21:00:26 +0000 (13:00 -0800)
The dracut scripting does not work on all platforms, and there are no
known failures from the init binary based on the statically linked C
program.  This commit therefore removes the dracut scripting so that the
statically linked C program is always used to create the init "script".

Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
tools/testing/selftests/rcutorture/bin/mkinitrd.sh

index 6fa9bd1..38e424d 100755 (executable)
@@ -20,58 +20,9 @@ if [ -s "$D/initrd/init" ]; then
     exit 0
 fi
 
-T=${TMPDIR-/tmp}/mkinitrd.sh.$$
-trap 'rm -rf $T' 0 2
-mkdir $T
-
-cat > $T/init << '__EOF___'
-#!/bin/sh
-# Run in userspace a few milliseconds every second.  This helps to
-# exercise the NO_HZ_FULL portions of RCU.  The 192 instances of "a" was
-# empirically shown to give a nice multi-millisecond burst of user-mode
-# execution on a 2GHz CPU, as desired.  Modern CPUs will vary from a
-# couple of milliseconds up to perhaps 100 milliseconds, which is an
-# acceptable range.
-#
-# Why not calibrate an exact delay?  Because within this initrd, we
-# are restricted to Bourne-shell builtins, which as far as I know do not
-# provide any means of obtaining a fine-grained timestamp.
-
-a4="a a a a"
-a16="$a4 $a4 $a4 $a4"
-a64="$a16 $a16 $a16 $a16"
-a192="$a64 $a64 $a64"
-while :
-do
-       q=
-       for i in $a192
-       do
-               q="$q $i"
-       done
-       sleep 1
-done
-__EOF___
-
-# Try using dracut to create initrd
-if command -v dracut >/dev/null 2>&1
-then
-       echo Creating $D/initrd using dracut.
-       # Filesystem creation
-       dracut --force --no-hostonly --no-hostonly-cmdline --module "base" $T/initramfs.img
-       cd $D
-       mkdir -p initrd
-       cd initrd
-       zcat $T/initramfs.img | cpio -id
-       cp $T/init init
-       chmod +x init
-       echo Done creating $D/initrd using dracut
-       exit 0
-fi
-
-# No dracut, so create a C-language initrd/init program and statically
-# link it.  This results in a very small initrd, but might be a bit less
-# future-proof than dracut.
-echo "Could not find dracut, attempting C initrd"
+# Create a C-language initrd/init infinite-loop program and statically
+# link it.  This results in a very small initrd.
+echo "Creating a statically linked C-language initrd"
 cd $D
 mkdir -p initrd
 cd initrd