lkml.org 
[lkml]   [2019]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH tip/core/rcu 02/12] rcutorture: Dispense with Dracut for initrd creation
    Date
    From: "Paul E. McKenney" <paulmck@kernel.org>

    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 | 55 ++--------------------
    1 file changed, 3 insertions(+), 52 deletions(-)

    diff --git a/tools/testing/selftests/rcutorture/bin/mkinitrd.sh b/tools/testing/selftests/rcutorture/bin/mkinitrd.sh
    index 6fa9bd1..38e424d 100755
    --- a/tools/testing/selftests/rcutorture/bin/mkinitrd.sh
    +++ b/tools/testing/selftests/rcutorture/bin/mkinitrd.sh
    @@ -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
    --
    2.9.5
    \
     
     \ /
      Last update: 2019-12-10 04:43    [W:4.877 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site