1. 02 3月, 2017 1 次提交
  2. 26 1月, 2017 1 次提交
    • L
      srcu: Implement more-efficient reader counts · f2c46896
      Lance Roy 提交于
      SRCU uses two per-cpu counters: a nesting counter to count the number of
      active critical sections, and a sequence counter to ensure that the nesting
      counters don't change while they are being added together in
      srcu_readers_active_idx_check().
      
      This patch instead uses per-cpu lock and unlock counters. Because both
      counters only increase and srcu_readers_active_idx_check() reads the unlock
      counter before the lock counter, this achieves the same end without having
      to increment two different counters in srcu_read_lock(). This also saves a
      smp_mb() in srcu_readers_active_idx_check().
      
      Possible bug: There is no guarantee that the lock counter won't overflow
      during srcu_readers_active_idx_check(), as there are no memory barriers
      around srcu_flip() (see comment in srcu_readers_active_idx_check() for
      details). However, this problem was already present before this patch.
      Suggested-by: NMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: NLance Roy <ldr709@gmail.com>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Lai Jiangshan <jiangshanlai@gmail.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      f2c46896
  3. 15 11月, 2016 1 次提交
    • P
      torture: Trace long read-side delays · d0af39e8
      Paul E. McKenney 提交于
      Although rcutorture will occasionally do a 50-millisecond grace-period
      delay, these delays are quite rare.  And rightly so, because otherwise
      the read rate would be quite low.  Thie means that it can be important
      to identify whether or not a given run contained a long-delay read.
      This commit therefore inserts a trace_rcu_torture_read() event to flag
      runs containing long delays.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      d0af39e8
  4. 23 8月, 2016 3 次提交
  5. 16 6月, 2016 1 次提交
  6. 15 6月, 2016 1 次提交
  7. 22 4月, 2016 1 次提交
  8. 01 4月, 2016 4 次提交
  9. 16 3月, 2016 1 次提交
    • P
      tags: Fix DEFINE_PER_CPU expansions · 25528213
      Peter Zijlstra 提交于
      $ make tags
        GEN     tags
      ctags: Warning: drivers/acpi/processor_idle.c:64: null expansion of name pattern "\1"
      ctags: Warning: drivers/xen/events/events_2l.c:41: null expansion of name pattern "\1"
      ctags: Warning: kernel/locking/lockdep.c:151: null expansion of name pattern "\1"
      ctags: Warning: kernel/rcu/rcutorture.c:133: null expansion of name pattern "\1"
      ctags: Warning: kernel/rcu/rcutorture.c:135: null expansion of name pattern "\1"
      ctags: Warning: kernel/workqueue.c:323: null expansion of name pattern "\1"
      ctags: Warning: net/ipv4/syncookies.c:53: null expansion of name pattern "\1"
      ctags: Warning: net/ipv6/syncookies.c:44: null expansion of name pattern "\1"
      ctags: Warning: net/rds/page.c:45: null expansion of name pattern "\1"
      
      Which are all the result of the DEFINE_PER_CPU pattern:
      
        scripts/tags.sh:200:	'/\<DEFINE_PER_CPU([^,]*, *\([[:alnum:]_]*\)/\1/v/'
        scripts/tags.sh:201:	'/\<DEFINE_PER_CPU_SHARED_ALIGNED([^,]*, *\([[:alnum:]_]*\)/\1/v/'
      
      The below cures them. All except the workqueue one are within reasonable
      distance of the 80 char limit. TJ do you have any preference on how to
      fix the wq one, or shall we just not care its too long?
      Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      25528213
  10. 24 2月, 2016 1 次提交
  11. 06 12月, 2015 1 次提交
  12. 07 10月, 2015 5 次提交
  13. 23 7月, 2015 1 次提交
  14. 16 7月, 2015 5 次提交
  15. 28 5月, 2015 4 次提交
  16. 27 2月, 2015 2 次提交
  17. 11 1月, 2015 4 次提交
  18. 04 11月, 2014 1 次提交
  19. 17 9月, 2014 2 次提交
    • P
      rcutorture: Rename rcutorture_runnable parameter · 59da22a0
      Paul E. McKenney 提交于
      This commit changes rcutorture_runnable to torture_runnable, which is
      consistent with the names of the other parameters and is a bit shorter
      as well.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      59da22a0
    • 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