-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
rcutorture: Automatically create initrd directory
The rcutorture scripts currently expect the user to create the tools/testing/selftests/rcutorture/initrd directory. Should the user fail to do this, the kernel build will fail with obscure and confusing error messages. This commit therefore adds explicit checks for the tools/testing/selftests/rcutorture/initrd directory, and if not present, creates one on systems on which dracut is installed. If this directory could not be created, a less obscure error message is emitted and the test is aborted. Suggested-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Connor Shu <Connor.Shu@ibm.com> [ paulmck: Adapt the script to fit into the rcutorture framework and severely abbreviate the initrd/init script. ] Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
- Loading branch information
Connor Shu
authored and
Paul E. McKenney
committed
Nov 9, 2018
1 parent
6510223
commit 8f15c68
Showing
2 changed files
with
68 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
#!/bin/bash | ||
# | ||
# Create an initrd directory if one does not already exist. | ||
# | ||
# This program is free software; you can redistribute it and/or modify | ||
# it under the terms of the GNU General Public License as published by | ||
# the Free Software Foundation; either version 2 of the License, or | ||
# (at your option) any later version. | ||
# | ||
# This program is distributed in the hope that it will be useful, | ||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
# GNU General Public License for more details. | ||
# | ||
# You should have received a copy of the GNU General Public License | ||
# along with this program; if not, you can access it online at | ||
# http://www.gnu.org/licenses/gpl-2.0.html. | ||
# | ||
# Copyright (C) IBM Corporation, 2013 | ||
# | ||
# Author: Connor Shu <Connor.Shu@ibm.com> | ||
|
||
D=tools/testing/selftests/rcutorture | ||
|
||
# Prerequisite checks | ||
[ -z "$D" ] && echo >&2 "No argument supplied" && exit 1 | ||
if [ ! -d "$D" ]; then | ||
echo >&2 "$D does not exist: Malformed kernel source tree?" | ||
exit 1 | ||
fi | ||
if [ -d "$D/initrd" ]; then | ||
echo "$D/initrd already exists, no need to create it" | ||
exit 0 | ||
fi | ||
|
||
T=${TMPDIR-/tmp}/mkinitrd.sh.$$ | ||
trap 'rm -rf $T' 0 2 | ||
mkdir $T | ||
|
||
cat > $T/init << '__EOF___' | ||
#!/bin/sh | ||
while : | ||
do | ||
sleep 1000000 | ||
done | ||
__EOF___ | ||
|
||
# Try using dracut to create initrd | ||
command -v dracut >/dev/null 2>&1 || { echo >&2 "Dracut not installed"; exit 1; } | ||
echo Creating $D/initrd using dracut. | ||
|
||
# Filesystem creation | ||
dracut --force --no-hostonly --no-hostonly-cmdline --module "base" $T/initramfs.img | ||
cd $D | ||
mkdir initrd | ||
cd initrd | ||
zcat $T/initramfs.img | cpio -id | ||
cp $T/init init | ||
echo Done creating $D/initrd using dracut | ||
exit 0 |