1. 29 9月, 2011 6 次提交
    • P
      rcu: Update rcutorture documentation · 63cd758e
      Paul E. McKenney 提交于
      Update rcutorture documentation to account for boosting, new types of
      RCU torture testing that have been added over the past few years, and
      the memory-barrier testing that was added an embarrassingly long time
      ago.
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      63cd758e
    • P
      rcu: Move rcu_head definition to types.h · 99098751
      Paul E. McKenney 提交于
      Take a first step towards untangling Linux kernel header files by
      placing the struct rcu_head definition into include/linux/types.h
      and including include/linux/types.h in include/linux/rcupdate.h
      where struct rcu_head used to be defined.  The actual inclusion point
      for include/linux/types.h is with the rest of the #include directives
      rather than at the point where struct rcu_head used to be defined,
      as suggested by Mathieu Desnoyers.
      
      Once this is in place, then header files that need only rcu_head
      can include types.h rather than rcupdate.h.
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
      Acked-by: NMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      99098751
    • P
      rcu: Restore checks for blocking in RCU read-side critical sections · b3fbab05
      Paul E. McKenney 提交于
      Long ago, using TREE_RCU with PREEMPT would result in "scheduling
      while atomic" diagnostics if you blocked in an RCU read-side critical
      section.  However, PREEMPT now implies TREE_PREEMPT_RCU, which defeats
      this diagnostic.  This commit therefore adds a replacement diagnostic
      based on PROVE_RCU.
      
      Because rcu_lockdep_assert() and lockdep_rcu_dereference() are now being
      used for things that have nothing to do with rcu_dereference(), rename
      lockdep_rcu_dereference() to lockdep_rcu_suspicious() and add a third
      argument that is a string indicating what is suspicious.  This third
      argument is passed in from a new third argument to rcu_lockdep_assert().
      Update all calls to rcu_lockdep_assert() to add an informative third
      argument.
      
      Also, add a pair of rcu_lockdep_assert() calls from within
      rcu_note_context_switch(), one complaining if a context switch occurs
      in an RCU-bh read-side critical section and another complaining if a
      context switch occurs in an RCU-sched read-side critical section.
      These are present only if the PROVE_RCU kernel parameter is enabled.
      
      Finally, fix some checkpatch whitespace complaints in lockdep.c.
      
      Again, you must enable PROVE_RCU to see these new diagnostics.  But you
      are enabling PROVE_RCU to check out new RCU uses in any case, aren't you?
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      b3fbab05
    • P
      rcu: Update documentation to flag RCU_BOOST trace information · d5988af5
      Paul E. McKenney 提交于
      Call out the RCU_TRACE information that is provided only in kernels
      built with RCU_BOOST.
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      d5988af5
    • S
      rcu: Avoid unnecessary self-wakeup of per-CPU kthreads · 1eb52121
      Shaohua Li 提交于
      There are a number of cases where the RCU can find additional work
      for the per-CPU kthread within the context of that per-CPU kthread.
      In such cases, the per-CPU kthread is already running, so attempting
      to wake itself up does nothing except waste CPU cycles.  This commit
      therefore checks to see if it is in the per-CPU kthread context,
      omitting the wakeup in this case.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NPaul E. McKenney <paul.mckenney@linaro.org>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      1eb52121
    • E
      rcu: Use kthread_create_on_node() · 1f288094
      Eric Dumazet 提交于
      Commit a26ac245 (move TREE_RCU from softirq to kthread) added
      per-CPU kthreads.  However, kthread creation uses kthread_create(), which
      can put the kthread's stack and task struct on the wrong NUMA node.
      Therefore, use kthread_create_on_node() instead of kthread_create()
      so that the stacks and task structs are placed on the correct NUMA node.
      
      A similar change was carried out in commit 94dcf29a (kthread:
      use kthread_create_on_node()).
      
      Also change rcutorture's priority-boost-test kthread creation.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Tejun Heo <tj@kernel.org>
      CC: Rusty Russell <rusty@rustcorp.com.au>
      CC: Andrew Morton <akpm@linux-foundation.org>
      CC: Andi Kleen <ak@linux.intel.com>
      CC: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      1f288094
  2. 28 9月, 2011 4 次提交
  3. 27 9月, 2011 11 次提交
  4. 26 9月, 2011 10 次提交
  5. 24 9月, 2011 9 次提交