1. 08 Mar, 2021 3 commits
    • Paul E. McKenney's avatar
      torture: Provide bare-metal modprobe-based advice · a8dafbf3
      Paul E. McKenney authored
      In some environments, the torture-testing use of virtualization is
      inconvenient.  In such cases, the modprobe and rmmod commands may be used
      to do torture testing, but significant setup is required to build, boot,
      and modprobe a kernel so as to match a given torture-test scenario.
      This commit therefore creates a "bare-metal" file in each results
      directory containing steps to run the corresponding scenario using the
      modprobe command on bare metal.  For example, the contents of this file
      after using kvm.sh to build an rcutorture TREE01 kernel, perhaps with
      the --buildonly argument, is as follows:
      
      To run this scenario on bare metal:
      
       1. Set your bare-metal build tree to the state shown in this file:
          /home/git/linux-rcu/tools/testing/selftests/rcutorture/res/2021.02.04-17.10.19/testid.txt
       2. Update your bare-metal build tree's .config based on this file:
          /home/git/linux-rcu/tools/testing/selftests/rcutorture/res/2021.02.04-17.10.19/TREE01/ConfigFragment
       3. Make the bare-metal kernel's build system aware of your .config updates:
          $ yes "" | make oldconfig
       4. Build your bare-metal kernel.
       5. Boot your bare-metal kernel with the following parameters:
          maxcpus=8 nr_cpus=43 rcutree.gp_preinit_delay=3 rcutree.gp_init_delay=3 rcutree.gp_cleanup_delay=3 rcu_nocbs=0-1,3-7
       6. Start the test with the following command:
          $ modprobe rcutorture nocbs_nthreads=8 nocbs_toggle=1000 fwd_progress=0 onoff_interval=1000 onoff_holdoff=30 n_barrier_cbs=4 stat_interval=15 shutdown_secs=120 test_no_idle_hz=1 verbose=1
       7. After some time, end the test with the following command:
          $ rmmod rcutorture
       8. Copy your bare-metal kernel's .config file, overwriting this file:
          /home/git/linux-rcu/tools/testing/selftests/rcutorture/res/2021.02.04-17.10.19/TREE01/.config
       9. Copy the console output from just before the modprobe to just after
          the rmmod into this file:
          /home/git/linux-rcu/tools/testing/selftests/rcutorture/res/2021.02.04-17.10.19/TREE01/console.log
      10. Check for runtime errors using the following command:
         $ tools/testing/selftests/rcutorture/bin/kvm-recheck.sh /home/git/linux-rcu/tools/testing/selftests/rcutorture/res/2021.02.04-17.10.19
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      a8dafbf3
    • Paul E. McKenney's avatar
      torture: Allow 1G of memory for torture.sh kvfree testing · 3d4977b6
      Paul E. McKenney authored
      Yes, I do recall a time when 512MB of memory was a lot of mass storage,
      much less main memory, but the rcuscale kvfree_rcu() testing invoked by
      torture.sh can sometimes exceed it on large systems, resulting in OOM.
      This commit therefore causes torture.sh to pase the "--memory 1G"
      argument to kvm.sh to reserve a full gigabyte for this purpose.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      3d4977b6
    • Paul E. McKenney's avatar
      torturescript: Don't rerun failed rcutorture builds · a519d214
      Paul E. McKenney authored
      If the build fails when running multiple instances of a given rcutorture
      scenario, for example, using the kvm.sh --configs "8*RUDE01" argument,
      the build will be rerun an additional seven times.  This is in some sense
      correct, but it can waste significant time.  This commit therefore checks
      for a prior failed build and simply copies over that build's output.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      a519d214
  2. 06 Mar, 2021 4 commits
  3. 05 Mar, 2021 33 commits