1. 25 Jul, 2017 1 commit
    • Paul E. McKenney's avatar
      torture: Fix typo suppressing CPU-hotplug statistics · a2b2df20
      Paul E. McKenney authored
      The torture status line contains a series of values preceded by "onoff:".
      The last value in that line, the one preceding the "HZ=" string, is
      always zero.  The reason that it is always zero is that torture_offline()
      was incrementing the sum_offl pointer instead of the value that this
      pointer referenced.  This commit therefore makes this increment operate
      on the statistic rather than the pointer to the statistic.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      a2b2df20
  2. 02 Mar, 2017 1 commit
  3. 28 Feb, 2017 1 commit
  4. 22 Aug, 2016 1 commit
    • Paul E. McKenney's avatar
      torture: Convert torture_shutdown() to hrtimer · 31257c3c
      Paul E. McKenney authored
      Upcoming changes to the timer wheel introduce significant inaccuracy
      and possibly also an ultimate limit on timeout duration.  This is a
      problem for the current implementation of torture_shutdown() because
      (1) shutdown times are user-specified, and can therefore be quite long,
      and (2) the torture scripting will kill a test instance that runs for
      more than a few minutes longer than scheduled.  This commit therefore
      converts the torture_shutdown() timed waits to an hrtimer, thus avoiding
      too-short torture test runs as well as death by scripting.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
      31257c3c
  5. 14 Jun, 2016 2 commits
  6. 21 Apr, 2016 1 commit
  7. 31 Mar, 2016 1 commit
  8. 06 Oct, 2015 1 commit
  9. 27 May, 2015 1 commit
  10. 16 Sep, 2014 1 commit
    • Davidlohr Bueso's avatar
      torture: Address race in module cleanup · d36a7a0d
      Davidlohr Bueso authored
      When performing module cleanups by calling torture_cleanup() the
      'torture_type' string in nullified However, callers are not necessarily
      done, and might still need to reference the variable. This impacts
      both rcutorture and locktorture, causing printing things like:
      
      [   94.226618] (null)-torture: Stopping lock_torture_writer task
      [   94.226624] (null)-torture: Stopping lock_torture_stats task
      
      Thus delay this operation until the very end of the cleanup process.
      The consequence (which shouldn't matter for this kid of program) is,
      of course, that we delay the window between rmmod and modprobing,
      for instance in module_torture_begin().
      Signed-off-by: default avatarDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      d36a7a0d
  11. 07 Sep, 2014 1 commit
  12. 07 Jul, 2014 1 commit
  13. 14 May, 2014 5 commits
    • Pranith Kumar's avatar
      torture: Remove __init from torture_init_begin/end · 2b3f8ffe
      Pranith Kumar authored
      Loading rcutorture as a module (as opposed to building it directly into
      the kernel) results in the following splat:
      
      [Wed Apr 16 15:29:33 2014] BUG: unable to handle kernel paging request at ffffffffa0003000
      [Wed Apr 16 15:29:33 2014] IP: [<ffffffffa0003000>] 0xffffffffa0003000
      [Wed Apr 16 15:29:33 2014] PGD 1c0f067 PUD 1c10063 PMD 378a6067 PTE 0
      [Wed Apr 16 15:29:33 2014] Oops: 0010 [#1] SMP
      [Wed Apr 16 15:29:33 2014] Modules linked in: rcutorture(+) torture
      [Wed Apr 16 15:29:33 2014] CPU: 0 PID: 4257 Comm: modprobe Not tainted 3.15.0-rc1 #10
      [Wed Apr 16 15:29:33 2014] Hardware name: innotek GmbH VirtualBox, BIOS VirtualBox 12/01/2006
      [Wed Apr 16 15:29:33 2014] task: ffff8800db1e88d0 ti: ffff8800db25c000 task.ti: ffff8800db25c000
      [Wed Apr 16 15:29:33 2014] RIP: 0010:[<ffffffffa0003000>]  [<ffffffffa0003000>] 0xffffffffa0003000
      [Wed Apr 16 15:29:33 2014] RSP: 0018:ffff8800db25dca0  EFLAGS: 00010282
      [Wed Apr 16 15:29:33 2014] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
      [Wed Apr 16 15:29:33 2014] RDX: ffffffffa00090a8 RSI: 0000000000000001 RDI: ffffffffa0008337
      [Wed Apr 16 15:29:33 2014] RBP: ffff8800db25dd50 R08: 0000000000000000 R09: 0000000000000000
      [Wed Apr 16 15:29:33 2014] R10: ffffea000357b680 R11: ffffffff8113257a R12: ffffffffa000d000
      [Wed Apr 16 15:29:33 2014] R13: ffffffffa00094c0 R14: ffffffffa0009510 R15: 0000000000000001
      [Wed Apr 16 15:29:33 2014] FS:  00007fee30ce5700(0000) GS:ffff88021fc00000(0000) knlGS:0000000000000000
      [Wed Apr 16 15:29:33 2014] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
      [Wed Apr 16 15:29:33 2014] CR2: ffffffffa0003000 CR3: 00000000d5eb1000 CR4: 00000000000006f0
      [Wed Apr 16 15:29:33 2014] Stack:
      [Wed Apr 16 15:29:33 2014]  ffffffffa000d02c 0000000000000000 ffff88021700d400 0000000000000000
      [Wed Apr 16 15:29:33 2014]  ffff8800db25dd40 ffffffff81647951 ffff8802162bd000 ffff88021541846c
      [Wed Apr 16 15:29:33 2014]  0000000000000000 ffffffff817dbe2d ffffffff817dbe2d 0000000000000001
      [Wed Apr 16 15:29:33 2014] Call Trace:
      [Wed Apr 16 15:29:33 2014]  [<ffffffffa000d02c>] ? rcu_torture_init+0x2c/0x8b4 [rcutorture]
      [Wed Apr 16 15:29:33 2014]  [<ffffffff81647951>] ? netlink_broadcast_filtered+0x121/0x3a0
      [Wed Apr 16 15:29:33 2014]  [<ffffffff817dbe2d>] ? mutex_lock+0xd/0x2a
      [Wed Apr 16 15:29:33 2014]  [<ffffffff817dbe2d>] ? mutex_lock+0xd/0x2a
      [Wed Apr 16 15:29:33 2014]  [<ffffffff810e7022>] ? trace_module_notify+0x62/0x1d0
      [Wed Apr 16 15:29:33 2014]  [<ffffffffa000d000>] ? 0xffffffffa000cfff
      [Wed Apr 16 15:29:33 2014]  [<ffffffff8100034a>] do_one_initcall+0xfa/0x140
      [Wed Apr 16 15:29:33 2014]  [<ffffffff8106b4ce>] ? __blocking_notifier_call_chain+0x5e/0x80
      [Wed Apr 16 15:29:33 2014]  [<ffffffff810b3481>] load_module+0x1931/0x21b0
      [Wed Apr 16 15:29:33 2014]  [<ffffffff810b0330>] ? show_initstate+0x50/0x50
      [Wed Apr 16 15:29:33 2014]  [<ffffffff810b3d9e>] SyS_init_module+0x9e/0xc0
      [Wed Apr 16 15:29:33 2014]  [<ffffffff817e4c22>] system_call_fastpath+0x16/0x1b
      [Wed Apr 16 15:29:33 2014] Code:  Bad RIP value.
      [Wed Apr 16 15:29:33 2014] RIP  [<ffffffffa0003000>] 0xffffffffa0003000
      [Wed Apr 16 15:29:33 2014]  RSP <ffff8800db25dca0>
      [Wed Apr 16 15:29:33 2014] CR2: ffffffffa0003000
      [Wed Apr 16 15:29:33 2014] ---[ end trace 3e88c173037af84b ]---
      
      This splat is due to the fact that torture_init_begin() and
      torture_init_end() are both marked with __init, despite their use
      at runtime.  This commit therefore removes __init from both functions.
      Signed-off-by: default avatarPranith Kumar <bobby.prani@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      2b3f8ffe
    • Paul E. McKenney's avatar
      torture: Check for multiple concurrent torture tests · 5228084e
      Paul E. McKenney authored
      The torture tests are designed to run in isolation, but do not enforce
      this isolation.  This commit therefore checks for concurrent torture
      tests, and refuses to start new tests while old tests are running.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      5228084e
    • Iulia Manda's avatar
      torture: Notice if an all-zero cpumask is passed inside a critical section · 5ed63b19
      Iulia Manda authored
      In torture_shuffle_tasks function, the check if an all-zero mask can
      be passed to set_cpus_allowed_ptr() is redundant after clearing the
      shuffle_idle_cpu bit. If the mask had more than one bit set, after
      clearing a bit it has at least one bit set. If the mask had only
      one bit set, a check is made at the beginning, where the function
      returns, as there is no need to shuffle only one cpu.
      
      Also, this code is executed inside a critical section, delimited by
      get_online_cpus(), and put_online_cpus(), preventing CPUs from leaving between
      the check of num_online_cpus and the calls to set_cpus_allowed_ptr() function.
      Signed-off-by: default avatarIulia Manda <iulia.manda21@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      5ed63b19
    • Paul E. McKenney's avatar
      torture: Increase stutter-end intensity · ab7d4505
      Paul E. McKenney authored
      Currently, all stuttered kthreads block a jiffy at a time, which can
      result in them starting at different times.  (Note: This is not an
      energy-efficiency problem unless you run torture tests in production,
      in which case you have other problems!)  This commit increases the
      intensity of the restart event by causing kthreads to spin through the
      last jiffy, restarting when they see the variable change.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      ab7d4505
    • Paul E. McKenney's avatar
      torture: Include "Stopping" string to torture_kthread_stopping() · 0d6821d5
      Paul E. McKenney authored
      Currently, torture_kthread_stopping() prints only the name of the
      kthread that is stopping, which can be unedifying.  This commit therefore
      adds "Stopping" to make things more evident.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      0d6821d5
  14. 23 Feb, 2014 18 commits