diff options
| author | Ingo Molnar <mingo@kernel.org> | 2012-05-14 02:41:20 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2012-05-14 02:41:46 -0400 |
| commit | 2d84e023cb5ec00403ff5d447533c6fd58fcc7ff (patch) | |
| tree | cb10d9a568ebb4be8593821a6f205efedf2f4ddd /kernel/timer.c | |
| parent | 9ff00d58a915b6747ba2e843ab2d04c712b4dc32 (diff) | |
| parent | dc36be4419311fd57becdf54bfeef6bd04a6741d (diff) | |
Merge branch 'rcu/next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu
Pull the v3.5 RCU tree from Paul E. McKenney:
1) A set of improvements and fixes to the RCU_FAST_NO_HZ feature
(with more on the way for 3.6). Posted to LKML:
https://lkml.org/lkml/2012/4/23/324 (commits 1-3 and 5),
https://lkml.org/lkml/2012/4/16/611 (commit 4),
https://lkml.org/lkml/2012/4/30/390 (commit 6), and
https://lkml.org/lkml/2012/5/4/410 (commit 7, combined with
the other commits for the convenience of the tester).
2) Changes to make rcu_barrier() avoid disrupting execution of CPUs
that have no RCU callbacks. Posted to LKML:
https://lkml.org/lkml/2012/4/23/322.
3) A couple of commits that improve the efficiency of the interaction
between preemptible RCU and the scheduler, these two being all
that survived an abortive attempt to allow preemptible RCU's
__rcu_read_lock() to be inlined. The full set was posted to
LKML at https://lkml.org/lkml/2012/4/14/143, and the first and
third patches of that set remain.
4) Lai Jiangshan's algorithmic implementation of SRCU, which includes
call_srcu() and srcu_barrier(). A major feature of this new
implementation is that synchronize_srcu() no longer disturbs
the execution of other CPUs. This work is based on earlier
implementations by Peter Zijlstra and Paul E. McKenney. Posted to
LKML: https://lkml.org/lkml/2012/2/22/82.
5) A number of miscellaneous bug fixes and improvements which were
posted to LKML at: https://lkml.org/lkml/2012/4/23/353 with
subsequent updates posted to LKML.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/timer.c')
| -rw-r--r-- | kernel/timer.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index a297ffcf888..837c552fe83 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
| @@ -861,7 +861,13 @@ EXPORT_SYMBOL(mod_timer); | |||
| 861 | * | 861 | * |
| 862 | * mod_timer_pinned() is a way to update the expire field of an | 862 | * mod_timer_pinned() is a way to update the expire field of an |
| 863 | * active timer (if the timer is inactive it will be activated) | 863 | * active timer (if the timer is inactive it will be activated) |
| 864 | * and not allow the timer to be migrated to a different CPU. | 864 | * and to ensure that the timer is scheduled on the current CPU. |
| 865 | * | ||
| 866 | * Note that this does not prevent the timer from being migrated | ||
| 867 | * when the current CPU goes offline. If this is a problem for | ||
| 868 | * you, use CPU-hotplug notifiers to handle it correctly, for | ||
| 869 | * example, cancelling the timer when the corresponding CPU goes | ||
| 870 | * offline. | ||
| 865 | * | 871 | * |
| 866 | * mod_timer_pinned(timer, expires) is equivalent to: | 872 | * mod_timer_pinned(timer, expires) is equivalent to: |
| 867 | * | 873 | * |
