1. 17 Aug, 2017 1 commit
  2. 22 Aug, 2016 1 commit
  3. 06 Oct, 2015 1 commit
  4. 20 Aug, 2013 1 commit
    • Paul E. McKenney's avatar
      rcu: Increase rcutorture test coverage · 2ec1f2d9
      Paul E. McKenney authored
      Currently, rcutorture has separate torture_types to test synchronous,
      asynchronous, and expedited grace-period primitives.  This has
      two disadvantages: (1) Three times the number of runs to cover the
      combinations and (2) Little testing of concurrent combinations of the
      three options.  This commit therefore adds a pair of module parameters
      that control normal and expedited state, with the default being both
      types, randomly selected, by the fakewriter processes, thus reducing
      source-code size and increasing test coverage.  In addtion, the writer
      task switches between asynchronous-normal and expedited grace-period
      primitives driven by the same pair of module parameters.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Reviewed-by: default avatarJosh Triplett <josh@joshtriplett.org>
      2ec1f2d9
  5. 10 Jun, 2013 1 commit
  6. 02 Jul, 2012 1 commit
  7. 30 Apr, 2012 1 commit
  8. 21 Feb, 2012 3 commits
  9. 11 Dec, 2011 2 commits
  10. 29 Sep, 2011 2 commits
  11. 06 May, 2010 1 commit
    • Tejun Heo's avatar
      sched: replace migration_thread with cpu_stop · 969c7921
      Tejun Heo authored
      Currently migration_thread is serving three purposes - migration
      pusher, context to execute active_load_balance() and forced context
      switcher for expedited RCU synchronize_sched.  All three roles are
      hardcoded into migration_thread() and determining which job is
      scheduled is slightly messy.
      
      This patch kills migration_thread and replaces all three uses with
      cpu_stop.  The three different roles of migration_thread() are
      splitted into three separate cpu_stop callbacks -
      migration_cpu_stop(), active_load_balance_cpu_stop() and
      synchronize_sched_expedited_cpu_stop() - and each use case now simply
      asks cpu_stop to execute the callback as necessary.
      
      synchronize_sched_expedited() was implemented with private
      preallocated resources and custom multi-cpu queueing and waiting
      logic, both of which are provided by cpu_stop.
      synchronize_sched_expedited_count is made atomic and all other shared
      resources along with the mutex are dropped.
      
      synchronize_sched_expedited() also implemented a check to detect cases
      where not all the callback got executed on their assigned cpus and
      fall back to synchronize_sched().  If called with cpu hotplug blocked,
      cpu_stop already guarantees that and the condition cannot happen;
      otherwise, stop_machine() would break.  However, this patch preserves
      the paranoid check using a cpumask to record on which cpus the stopper
      ran so that it can serve as a bisection point if something actually
      goes wrong theree.
      
      Because the internal execution state is no longer visible,
      rcu_expedited_torture_stats() is removed.
      
      This patch also renames cpu_stop threads to from "stopper/%d" to
      "migration/%d".  The names of these threads ultimately don't matter
      and there's no reason to make unnecessary userland visible changes.
      
      With this patch applied, stop_machine() and sched now share the same
      resources.  stop_machine() is faster without wasting any resources and
      sched migration users are much cleaner.
      Signed-off-by: default avatarTejun Heo <tj@kernel.org>
      Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Dipankar Sarma <dipankar@in.ibm.com>
      Cc: Josh Triplett <josh@freedesktop.org>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: Dimitri Sivanich <sivanich@sgi.com>
      969c7921
  12. 16 Jan, 2010 1 commit
    • Paul E. McKenney's avatar
      rcu: 1Q2010 update for RCU documentation · 4c54005c
      Paul E. McKenney authored
      Add expedited functions.  Review documentation and update
      obsolete verbiage.  Also fix the advice for the RCU CPU-stall
      kernel configuration parameter, and document RCU CPU-stall
      warnings.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <12635142581866-git-send-email->
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      4c54005c
  13. 03 Jul, 2009 1 commit
  14. 26 Jun, 2008 1 commit
  15. 19 Jun, 2008 1 commit
    • Paul E. McKenney's avatar
      rcu: make rcutorture more vicious: reinstate boot-time testing · 31a72bce
      Paul E. McKenney authored
      This patch re-institutes the ability to build rcutorture directly into
      the Linux kernel.  The reason that this capability was removed was that
      this could result in your kernel being pretty much useless, as rcutorture
      would be running starting from early boot.  This problem has been avoided
      by (1) making rcutorture run only three seconds of every six by default,
      (2) adding a CONFIG_RCU_TORTURE_TEST_RUNNABLE that permits rcutorture
      to be quiesced at boot time, and (3) adding a sysctl in /proc named
      /proc/sys/kernel/rcutorture_runnable that permits rcutorture to be
      quiesced and unquiesced when built into the kernel.
      
      Please note that this /proc file is -not- available when rcutorture
      is built as a module.  Please also note that to get the earlier
      take-no-prisoners behavior, you must use the boot command line to set
      rcutorture's "stutter" parameter to zero.
      
      The rcutorture quiescing mechanism is currently quite crude: loops
      in each rcutorture process that poll a global variable once per tick.
      Suggestions for improvement are welcome.  The default action will
      be to reduce the polling rate to a few times per second.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Suggested-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      31a72bce
  16. 18 Jun, 2008 1 commit
    • Paul E. McKenney's avatar
      rcu: make rcutorture more vicious: add stutter feature · d120f65f
      Paul E. McKenney authored
      This patch takes a step towards making rcutorture more brutal by allowing
      the test to be automatically periodically paused, with the default being
      to run the test for five seconds then pause for five seconds and repeat.
      This behavior can be controlled using a new "stutter" module parameter, so
      that "stutter=0" gives the old default behavior of running continuously.
      
      Starting and stopping rcutorture more heavily stresses RCU's interaction
      with the scheduler, as well as exercising more paths through the
      grace-period detection code.
      
      Note that the default to "shuffle_interval" has also been adjusted from
      5 seconds to 3 seconds to provide varying overlap with the "stutter"
      interval.
      
      I am still unable to provoke the failures that Alexey has been seeing,
      even with this patch, but will be doing a few additional things to beef
      up rcutorture.
      Suggested-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      d120f65f
  17. 25 Jan, 2008 1 commit
  18. 04 Oct, 2006 5 commits
  19. 28 Jun, 2006 2 commits
  20. 31 Oct, 2005 1 commit