1. 15 6月, 2016 2 次提交
  2. 22 4月, 2016 1 次提交
  3. 01 4月, 2016 1 次提交
  4. 07 10月, 2015 1 次提交
  5. 28 5月, 2015 1 次提交
  6. 17 9月, 2014 1 次提交
    • D
      torture: Address race in module cleanup · d36a7a0d
      Davidlohr Bueso 提交于
      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: NDavidlohr Bueso <dbueso@suse.de>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      d36a7a0d
  7. 08 9月, 2014 1 次提交
  8. 08 7月, 2014 1 次提交
  9. 15 5月, 2014 5 次提交
    • P
      torture: Remove __init from torture_init_begin/end · 2b3f8ffe
      Pranith Kumar 提交于
      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: NPranith Kumar <bobby.prani@gmail.com>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      2b3f8ffe
    • P
      torture: Check for multiple concurrent torture tests · 5228084e
      Paul E. McKenney 提交于
      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: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      5228084e
    • I
      torture: Notice if an all-zero cpumask is passed inside a critical section · 5ed63b19
      Iulia Manda 提交于
      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: NIulia Manda <iulia.manda21@gmail.com>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      5ed63b19
    • P
      torture: Increase stutter-end intensity · ab7d4505
      Paul E. McKenney 提交于
      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: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
      ab7d4505
    • P
      torture: Include "Stopping" string to torture_kthread_stopping() · 0d6821d5
      Paul E. McKenney 提交于
      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: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      0d6821d5
  10. 24 2月, 2014 18 次提交