Commits on Mar 11, 2012
  1. updated README

    committed Mar 12, 2012
Commits on Jan 13, 2012
  1. @tjstyle
Commits on Jan 9, 2012
  1. @cyanogen @tjstyle

    modules: Add CONFIG_MODULE_FORCE_VERMAGIC

    Very evil option for allowing force-loading of modules with bad
    vermagic. Normally this should never be required.
    
    Signed-off-by: Teguh Sobirin <teguh@sobir.in>
    cyanogen committed with tjstyle Nov 30, 2010
  2. @tjstyle
  3. @tjstyle

    ashmem: Fix flush routine of ashmem

    The ashmem flush function ashmem_flush_cache_range was calling
    dmac_clean_range and dmac_flush_range with a user virtual address
    which is not allowed. Instead of calling dmac_clean_range or
    dmac_flush_range use flush_cache_user_range which can be called
    with a user vitual address.
    
    Change-Id: I5dd137fb248b45ef2c7ea5f7bdb4b540b8310af9
    Signed-off-by: Shubhraprakash Das <sadas@codeaurora.org>
    Shubhraprakash Das committed with tjstyle Mar 21, 2011
  4. @tjstyle

    mm: grab rcu read lock in move_pages()

    The move_pages() usage of find_task_by_vpid() requires rcu_read_lock() to
    prevent free_pid() from reclaiming the pid.
    
    Without this patch, RCU warnings are printed in v2.6.38-rc4 move_pages()
    with:
    
      CONFIG_LOCKUP_DETECTOR=y
      CONFIG_PREEMPT=y
      CONFIG_LOCKDEP=y
      CONFIG_PROVE_LOCKING=y
      CONFIG_PROVE_RCU=y
    
    Previously, migrate_pages() went through a similar transformation
    replacing usage of tasklist_lock with rcu read lock:
    
      commit 55cfaa3cbdd29c4919ecb5fb8965c310f357e48c
      Author: Zeng Zhaoming <zengzm.kernel@gmail.com>
      Date:   Thu Dec 2 14:31:13 2010 -0800
    
          mm/mempolicy.c: add rcu read lock to protect pid structure
    
      commit 1e50df39f6e2c3a4a3394df62baa8a213df16c54
      Author: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
      Date:   Thu Jan 13 15:46:14 2011 -0800
    
          mempolicy: remove tasklist_lock from migrate_pages
    
    Signed-off-by: Greg Thelen <gthelen@google.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Minchan Kim <minchan.kim@gmail.com>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Cc: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Zeng Zhaoming <zengzm.kernel@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Greg Thelen committed with tjstyle Feb 25, 2011
  5. @kosaki @tjstyle

    mempolicy: remove tasklist_lock from migrate_pages

    Today, tasklist_lock in migrate_pages doesn't protect anything.
    rcu_read_lock() provide enough protection from pid hash walk.
    
    Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Reported-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    kosaki committed with tjstyle Jan 13, 2011
  6. @Zengzm @tjstyle

    mm/mempolicy.c: add rcu read lock to protect pid structure

    find_task_by_vpid() should be protected by rcu_read_lock(), to prevent
    free_pid() reclaiming pid.
    
    Signed-off-by: Zeng Zhaoming <zengzm.kernel@gmail.com>
    Cc: "Paul E. McKenney" <paulmck@us.ibm.com>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Christoph Lameter <cl@linux-foundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Zengzm committed with tjstyle Dec 2, 2010
  7. @tjstyle

    cpufreq: add more cpu governor

    -interactive
    -smartass
    -smartass2
    -scary
    -interactivex
    -savagedzen
    -smoothass
    -brazilianwax
    -smoothass
    -minmax
    -lagfree
    tjstyle committed Jan 5, 2012
  8. @tjstyle
  9. @paulmck @tjstyle

    rcu: remove unused __list_for_each_rcu() macro

    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Dec 15, 2010
  10. @paulmck @tjstyle

    rcu: reduce __call_rcu()-induced contention on rcu_node structures

    When the current __call_rcu() function was written, the expedited
    APIs did not exist.  The __call_rcu() implementation therefore went
    to great lengths to detect the end of old grace periods and to start
    new ones, all in the name of reducing grace-period latency.  Now the
    expedited APIs do exist, and the usage of __call_rcu() has increased
    considerably.  This commit therefore causes __call_rcu() to avoid
    worrying about grace periods unless there are a large number of
    RCU callbacks stacked up on the current CPU.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Dec 14, 2010
  11. @paulmck @tjstyle

    rcu: limit rcu_node leaf-level fanout

    Some recent benchmarks have indicated possible lock contention on the
    leaf-level rcu_node locks.  This commit therefore limits the number of
    CPUs per leaf-level rcu_node structure to 16, in other words, there
    can be at most 16 rcu_data structures fanning into a given rcu_node
    structure.  Prior to this, the limit was 32 on 32-bit systems and 64 on
    64-bit systems.
    
    Note that the fanout of non-leaf rcu_node structures is unchanged.  The
    organization of accesses to the rcu_node tree is such that references
    to non-leaf rcu_node structures are much less frequent than to the
    leaf structures.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Dec 14, 2010
  12. @paulmck @tjstyle

    rcu: fine-tune grace-period begin/end checks

    Use the CPU's bit in rnp->qsmask to determine whether or not the CPU
    should try to report a quiescent state.  Handle overflow in the check
    for rdp->gpnum having fallen behind.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Dec 10, 2010
  13. @paulmck @tjstyle

    rcu: demote SRCU_SYNCHRONIZE_DELAY from kernel-parameter status

    Because the adaptive synchronize_srcu_expedited() approach has
    worked very well in testing, remove the kernel parameter and
    replace it by a C-preprocessor macro.  If someone finds problems
    with this approach, a more complex and aggressively adaptive
    approach might be required.
    
    Longer term, SRCU will be merged with the other RCU implementations,
    at which point synchronize_srcu_expedited() will be event driven,
    just as synchronize_sched_expedited() currently is.  At that point,
    there will be no need for this adaptive approach.
    
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Jan 7, 2011
  14. @paulmck @tjstyle

    rcu: Make synchronize_srcu_expedited() fast if running readers

    The synchronize_srcu_expedited() function is currently quick if there
    are no active readers, but will delay a full jiffy if there are any.
    If these readers leave their SRCU read-side critical sections quickly,
    this is way too long to wait.  So this commit first waits ten microseconds,
    and only then falls back to jiffy-at-a-time waiting.
    
    Reported-by: Avi Kivity <avi@redhat.com>
    Reported-by: Marcelo Tosatti <mtosatti@redhat.com>
    Tested-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Oct 26, 2010
  15. @paulmck @tjstyle

    rcu: add priority-inversion testing to rcutorture

    Add an optional test to force long-term preemption of RCU read-side
    critical sections, controlled by new test_boost, test_boost_interval,
    and test_boost_duration module parameters.  This is to be used to
    test RCU priority boosting.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Sep 2, 2010
  16. @paulmck @tjstyle

    rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held

    As suggested by Linus, push the irqs_disabled() down to the
    rcu_read_lock_bh_held() level so that all callers get the benefit
    of the correct check.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Oct 5, 2010
  17. @tjstyle

    rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value

    Using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value
    due to the caller didn't hold the root_rcu/rnp node's lock.  Although
    use without ACCESS_ONCE() is safe due to the value loaded being used
    but once, the ACCESS_ONCE() is a good documentation aid -- the variables
    are being loaded without the services of a lock.
    
    Signed-off-by: Dongdong Deng <dongdong.deng@windriver.com>
    CC: Dipankar Sarma <dipankar@in.ibm.com>
    CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Dongdong Deng committed with tjstyle Sep 28, 2010
  18. @paulmck @tjstyle

    rcu: Add tracing data to support queueing models

    The current tracing data is not sufficient to deduce the average time
    that a callback spends waiting for a grace period to end.  Add three
    per-CPU counters recording the number of callbacks invoked (ci), the
    number of callbacks orphaned (co), and the number of callbacks adopted
    (ca).  Given the existing callback queue length (ql), the average wait
    time in absence of CPU hotplug operations is ql/ci.  The units of wait
    time will be in terms of the duration over which ci was measured.
    
    In the presence of CPU hotplug operations, there is room for argument,
    but ql/(ci-co+ca) won't steer you too far wrong.
    
    Also fixes a typo called out by Lucas De Marchi <lucas.de.marchi@gmail.com>.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Sep 7, 2010
  19. @paulmck @tjstyle

    rcu: fix sparse errors in rcutorture.c

    Add the sparse __rcu address-space identifier and make a couple of
    variables static.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Sep 19, 2010
  20. @laijs @tjstyle

    rcutorture: add random preemption

    Add random preemption to help we to torture the preemptable rcu.
    
    srcu_read_delay() also calls rcu_read_delay() for shorter delays.
    
    Added comment to preempt_schedule() call indicating that no quiescent
    states happen if preemption is disabled.
    
    Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Josh Triplett <josh@joshtriplett.org>
    laijs committed with tjstyle Jun 21, 2010
  21. @tjstyle

    rcu: optimize rcutiny

    rcu_sched_qs() currently calls local_irq_save()/local_irq_restore() up
    to three times.
    
    Remove irq masking from rcu_qsctr_help() / invoke_rcu_kthread()
    and do it once in rcu_sched_qs() / rcu_bh_qs()
    
    This generates smaller code as well.
    
       text	   data	    bss	    dec	    hex	filename
       2314	    156	     24	   2494	    9be	kernel/rcutiny.old.o
       2250	    156	     24	   2430	    97e	kernel/rcutiny.new.o
    
    Fix an outdated comment for rcu_qsctr_help()
    Move invoke_rcu_kthread() definition before its use.
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Josh Triplett <josh@joshtriplett.org>
    Eric Dumazet committed with tjstyle Apr 28, 2011
  22. @tjstyle

    rcu: Converge TINY_RCU expedited and normal boosting

    This applies a trick from TREE_RCU boosting to TINY_RCU, eliminating
    code and adding comments.  The key point is that it is possible for
    the booster thread itself to work out whether there is a normal or
    expedited boost required based solely on local information.  There
    is therefore no need for boost initiation to know or care what type
    of boosting is required.  In addition, when boosting is complete for
    a given grace period, then by definition there cannot be any more
    boosting for that grace period.  This allows eliminating yet more
    state and statistics.
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Josh Triplett <josh@joshtriplett.org>
    Paul E. McKenney committed with tjstyle Feb 24, 2011
  23. @tjstyle

    rcu: remove useless ->boosted_this_gp field

    The ->boosted_this_gp field is a holdover from an earlier design that
    was to carry out multiple boost operations in parallel.  It is not required
    by the current design, which boosts one task at a time.
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Paul E. McKenney committed with tjstyle Feb 24, 2011
  24. @tjstyle

    rcu: code cleanups in TINY_RCU priority boosting.

    Extraneous semicolon, bad comment, and fold INIT_LIST_HEAD() into
    list_del() to get list_del_init().
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Josh Triplett <josh@joshtriplett.org>
    Paul E. McKenney committed with tjstyle Feb 23, 2011
  25. @laijs @tjstyle

    rcu: call __rcu_read_unlock() in exit_rcu for tiny RCU

    Using __rcu_read_lock() in place of rcu_read_lock() leaves any debug
    state as it really should be, namely with the lock still held.
    
    Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    laijs committed with tjstyle Jan 9, 2011
  26. @tjstyle

    rcu: avoid pointless blocked-task warnings

    If the RCU callback-processing kthread has nothing to do, it parks in
    a wait_event().  If RCU remains idle for more than two minutes, the
    kernel complains about this.  This commit changes from wait_event()
    to wait_event_interruptible() to prevent the kernel from complaining
    just because RCU is idle.
    
    Reported-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Tested-by: Thomas Weber <weber@corscience.de>
    Tested-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Paul E. McKenney committed with tjstyle Jan 12, 2011
  27. @tjstyle

    rcu: Distinguish between boosting and boosted

    RCU priority boosting's tracing did not distinguish between ongoing
    boosting and completion of boosting.  This commit therefore adds this
    capability.
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Paul E. McKenney committed with tjstyle Nov 4, 2010
  28. @tjstyle

    rcu: add tracing for TINY_RCU and TINY_PREEMPT_RCU

    Add tracing for the tiny RCU implementations, including statistics on
    boosting in the case of TINY_PREEMPT_RCU and RCU_BOOST.
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Paul E. McKenney committed with tjstyle Sep 30, 2010
  29. @tjstyle

    rcu: priority boosting for TINY_PREEMPT_RCU

    Add priority boosting, but only for TINY_PREEMPT_RCU.  This is enabled
    by the default-off RCU_BOOST kernel parameter.  The priority to which to
    boost preempted RCU readers is controlled by the RCU_BOOST_PRIO kernel
    parameter (defaulting to real-time priority 1) and the time to wait
    before boosting the readers blocking a given grace period is controlled
    by the RCU_BOOST_DELAY kernel parameter (defaulting to 500 milliseconds).
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Paul E. McKenney committed with tjstyle Sep 27, 2010
  30. @tjstyle

    rcu: move TINY_RCU from softirq to kthread

    If RCU priority boosting is to be meaningful, callback invocation must
    be boosted in addition to preempted RCU readers.  Otherwise, in presence
    of CPU real-time threads, the grace period ends, but the callbacks don't
    get invoked.  If the callbacks don't get invoked, the associated memory
    doesn't get freed, so the system is still subject to OOM.
    
    But it is not reasonable to priority-boost RCU_SOFTIRQ, so this commit
    moves the callback invocations to a kthread, which can be boosted easily.
    
    Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Paul E. McKenney committed with tjstyle Sep 9, 2010
  31. @paulmck @tjstyle

    rcu: performance fixes to TINY_PREEMPT_RCU callback checking

    This commit tightens up checks in rcu_preempt_check_callbacks() to avoid
    unnecessary special handling at rcu_read_unlock() time.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Aug 27, 2010
  32. @paulmck @tjstyle

    rcu: fix _oddness handling of verbose stall warnings

    CONFIG_RCU_CPU_STALL_VERBOSE depends on CONFIG_TREE_PREEMPT_RCU, but
    rcu_bootup_announce_oddness() complains if CONFIG_RCU_CPU_STALL_VERBOSE
    is not set even in the case of CONFIG_TREE_RCU.  This commit therefore
    fixes rcu_bootup_announce_oddness() to avoid insisting on impossibilities.
    
    Reported-by: Guy Martin <gmsoft@tuxicoman.be>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Aug 30, 2010
  33. @paulmck @tjstyle

    rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU

    Replace one of the ACCESS_ONCE() calls in each of __rcu_read_lock()
    and __rcu_read_unlock() with barrier() as suggested by Steve Rostedt in
    order to avoid the potential compiler-optimization-induced bug noted by
    Mathieu Desnoyers.
    
    Located-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
    Suggested-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    paulmck committed with tjstyle Aug 19, 2010