Commit 33595581 authored by Paul E. McKenney's avatar Paul E. McKenney

torture: Update initrd documentation

The rcu-test-image.txt documentation covers a very uncommon case where
a real userspace environment is required.  However, someone reading this
document might reasonably conclude that this is in fact a prerequisite.
In addition, the initrd.txt file mentions dracut, which is no longer used.
This commit therefore provides the needed updates.
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
parent afcdf231
The rcutorture scripting tools automatically create the needed initrd The rcutorture scripting tools automatically create an initrd containing
directory using dracut. Failing that, this tool will create an initrd a single statically linked binary named "init" that loops over a
containing a single statically linked binary named "init" that loops very long sleep() call. In both cases, this creation is done by
over a very long sleep() call. In both cases, this creation is done tools/testing/selftests/rcutorture/bin/mkinitrd.sh.
by tools/testing/selftests/rcutorture/bin/mkinitrd.sh.
However, if you are attempting to run rcutorture on a system that does However, if you don't like the notion of statically linked bare-bones
not have dracut installed, and if you don't like the notion of static userspace environments, you might wish to press an existing initrd
linking, you might wish to press an existing initrd into service: into service:
------------------------------------------------------------------------ ------------------------------------------------------------------------
cd tools/testing/selftests/rcutorture cd tools/testing/selftests/rcutorture
...@@ -15,24 +14,3 @@ mkdir initrd ...@@ -15,24 +14,3 @@ mkdir initrd
cd initrd cd initrd
cpio -id < /tmp/initrd.img.zcat cpio -id < /tmp/initrd.img.zcat
# Manually verify that initrd contains needed binaries and libraries. # Manually verify that initrd contains needed binaries and libraries.
------------------------------------------------------------------------
Interestingly enough, if you are running rcutorture, you don't really
need userspace in many cases. Running without userspace has the
advantage of allowing you to test your kernel independently of the
distro in place, the root-filesystem layout, and so on. To make this
happen, put the following script in the initrd's tree's "/init" file,
with 0755 mode.
------------------------------------------------------------------------
#!/bin/sh
while :
do
sleep 10
done
------------------------------------------------------------------------
This approach also allows most of the binaries and libraries in the
initrd filesystem to be dispensed with, which can save significant
space in rcutorture's "res" directory.
This document describes one way to create the rcu-test-image file Normally, a minimal initrd is created automatically by the rcutorture
that contains the filesystem used by the guest-OS kernel. There are scripting. But minimal really does mean "minimal", namely just a single
probably much better ways of doing this, and this filesystem could no root directory with a single statically linked executable named "init":
doubt be smaller. It is probably also possible to simply download
an appropriate image from any number of places. $ size tools/testing/selftests/rcutorture/initrd/init
text data bss dec hex filename
328 0 8 336 150 tools/testing/selftests/rcutorture/initrd/init
Suppose you need to run some scripts, perhaps to monitor or control
some aspect of the rcutorture testing. This will require a more fully
filled-out userspace, perhaps containing libraries, executables for
the shell and other utilities, and soforth. In that case, place your
desired filesystem here:
tools/testing/selftests/rcutorture/initrd
For example, your tools/testing/selftests/rcutorture/initrd/init might
be a script that does any needed mount operations and starts whatever
scripts need starting to properly monitor or control your testing.
The next rcutorture build will then incorporate this filesystem into
the kernel image that is passed to qemu.
Or maybe you need a real root filesystem for some reason, in which case
please read on!
The remainder of this document describes one way to create the
rcu-test-image file that contains the filesystem used by the guest-OS
kernel. There are probably much better ways of doing this, and this
filesystem could no doubt be smaller. It is probably also possible to
simply download an appropriate image from any number of places.
That said, here are the commands: That said, here are the commands:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment