1. 29 9月, 2011 4 次提交
    • 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 11 次提交