LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [git pull] scheduler changes for v2.6.25
@ 2008-01-25 20:37 Ingo Molnar
2008-01-26 19:19 ` preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25) Stefan Richter
0 siblings, 1 reply; 6+ messages in thread
From: Ingo Molnar @ 2008-01-25 20:37 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel
Linus, please pull the latest scheduler git tree for v2.6.25 from:
git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched.git
it contains various enhancements to the scheduler - find the full
shortlog is below. 96 commits from 19 authors - scheduler developers
have been busy again. :-/
The scheduling behavior of the kernel to normal users should not change
over v2.6.24, but there are a good number of new features and
enhancements under the hood:
- various instrumentation and debugging enhancements from
Arjan van de Ven. LatencyTOP support in the scheduler is one
example.
- Peter Zijlstra's RT time limit and RT throttling code for the RT
scheduling class. Both audio and RT folks have asked for this.
- Paul E. McKenney's preemptible RCU code.
- refcount based CPU-hotplug rework by Gautham R Shenoy. (The "Lukewarm
IQ detected in hotplug locking" printout is now gone, forever i hope! :)
- there's serious interest in running RT tasks on enterprise-class
hardware, so Steven Rostedt and Gregory Haskins wrote a large number
of enhancements to the RT scheduling class and load-balancer.
- Peter Zijlstra's high-resolution scheduler tick code. We still have a
HZ tick running for a few other odd things, but it's dwindling now.
- Srivatsa Vaddagiri's next version of group scheduling. More accurate,
more fair.
- make printk robust against self-recursion, and use stable
timestamps for printk-timestamps.
- the softlockup detector will now detect hung, uninterruptible tasks
automatically, and report them.
and a good number of other, smaller enhancements. Enjoy,
Ingo
------------------>
Alexey Dobriyan (1):
sched, futex: detach sched.h and futex.h
Arjan van de Ven (4):
debug: show being-loaded/being-unloaded indicator for modules
debug: track and print last unloaded module in the oops trace
sched: latencytop support
sched: keep total / count stats in addition to the max for
Dipankar Sarma (1):
Preempt-RCU: Use softirq instead of tasklets for
Dmitry Adamushko (3):
sched: no need for 'affine wakeup' balancing
sched: get rid of 'new_cpu' in try_to_wake_up()
sched: fix goto retry in pick_next_task_rt()
Gautham R Shenoy (3):
cpu-hotplug: refcount based cpu hotplug
cpu-hotplug: replace lock_cpu_hotplug() with get_online_cpus()
cpu-hotplug: replace per-subsystem mutexes with get_online_cpus()
Gregory Haskins (15):
sched: add RT-balance cpu-weight
sched: clean up this_rq use in kernel/sched_rt.c
sched: de-SCHED_OTHER-ize the RT path
sched: break out search for RT tasks
sched: RT balancing: include current CPU
sched: pre-route RT tasks on wakeup
sched: optimize RT affinity
sched: wake-balance fixes
sched: break out early if RT task cannot be migrated
sched: RT-balance, optimize
sched: add sched-domain roots
sched: only balance our RT tasks within our domain
sched: RT-balance, only adjust overload state when changing
sched: remove some old cpuset logic
sched: dynamically update the root-domain span/online maps
Guillaume Chazarain (2):
sched: fix rq->clock warps on frequency changes
sched: monitor clock underflows in /proc/sched_debug
Herbert Xu (1):
sched: do not do cond_resched() when CONFIG_PREEMPT
Ingo Molnar (25):
printk: make printk more robust by not allowing recursion
sched: fix CONFIG_PRINT_TIME's reliance on sched_clock()
sched: remove printk_clock()
sched: remove printk_clock references from ia64
cpu-hotplug: fix build on !CONFIG_SMP
softlockup: automatically detect hung TASK_UNINTERRUPTIBLE tasks
sched: clean up pick_next_highest_task_rt()
sched: clean up find_lock_lowest_rq()
sched: clean up overlong line in kernel/sched_debug.c
sched: clean up kernel/sched_rt.c
sched: remove rt_overload()
sched: remove leftover debugging
sched: clean up pull_rt_task()
sched: clean up schedule_balance_rt()
sched: fix sched_rt.c:join/leave_domain
sched: remove unused JIFFIES_TO_NS() macro
sched: style cleanup, #2
sched: add credits for RT balancing improvements
sched: reactivate fork balancing
sched: whitespace cleanups in topology.h
sched: documentation, whitespace fixes
sched: make PREEMPT_BKL the default
sched: remove the !PREEMPT_BKL code
softlockup: fix signedness
printk: use ktime_get()
Michal Schmidt (1):
sched: fix, always create kernel threads with normal priority
Mike Galbraith (1):
sched: pull_rt_task() cleanup
Nick Piggin (1):
sched: print backtrace of running tasks too
Paolo Ciarrocchi (1):
debug: clean up kernel/profile.c
Paul E. McKenney (5):
Preempt-RCU: reorganize RCU code into rcuclassic.c and rcupdate.c
Preempt-RCU: fix rcu_barrier for preemptive environment.
Preempt-RCU: implementation
Preempt-RCU: CPU Hotplug handling
Preempt-RCU: update RCU Documentation.
Pavel Emelyanov (1):
uids: merge multiple error paths in alloc_uid() into one
Pavel Machek (1):
timers: don't #error on higher HZ values
Peter Zijlstra (13):
sched: remove do_div() from __sched_slice()
sched: sched_rt_entity
sched: SCHED_FIFO/SCHED_RR watchdog timer
sched: high-res preemption tick
sched: rt time limit
sched: rt group scheduling
sched: rt throttling vs no_hz
hrtimer: clean up cpu->base locking tricks
hrtimer: fixup the HRTIMER_CB_IRQSAFE_NO_SOFTIRQ fallback
hrtimer: unlock hrtimer_wakeup
sched: rt-group: reduce rescheduling
sched: rt-watchdog: fix .rlim_max = RLIM_INFINITY
sched: fix: don't take a mutex from interrupt context
Srivatsa Vaddagiri (5):
sched: group scheduling code cleanup
sched: group scheduling, minor fixes
sched: group scheduling, change how cpu load is calculated
sched: introduce a mutex and corresponding API to serialize access to doms_curarray
sched: group scheduler, fix fairness of cpu bandwidth allocation for task groups
Steven Rostedt (12):
sched: count # of queued RT tasks
sched: track highest prio task queued
sched: add RT task pushing
sched: add rt-overload tracking
sched: pull RT tasks from overloaded runqueues
sched: push RT tasks from overloaded CPUs
sched: disable standard balancer for RT tasks
sched: RT-balance, avoid overloading
sched: RT-balance, optimize cpu search
sched: RT-balance on new task
sched: RT-balance, replace hooks with pre/post schedule and wakeup methods
sched: RT-balance, add new methods to sched_class
Documentation/RCU/RTFP.txt | 210 +++-
Documentation/RCU/rcu.txt | 19
Documentation/RCU/torture.txt | 11
Documentation/cpu-hotplug.txt | 11
arch/arm/kernel/time.c | 11
arch/ia64/kernel/setup.c | 4
arch/ia64/kernel/time.c | 27
arch/ia64/sn/kernel/setup.c | 11
arch/mips/kernel/mips-mt-fpaff.c | 10
arch/powerpc/platforms/pseries/hotplug-cpu.c | 8
arch/powerpc/platforms/pseries/rtasd.c | 8
arch/x86/kernel/cpu/mtrr/main.c | 8
arch/x86/kernel/entry_64.S | 6
arch/x86/kernel/microcode.c | 16
arch/x86/kernel/signal_32.c | 3
arch/x86/kernel/signal_64.c | 3
arch/x86/kernel/stacktrace.c | 27
drivers/lguest/x86/core.c | 8
drivers/s390/char/sclp_config.c | 4
fs/Kconfig | 1
fs/proc/base.c | 78 +
include/asm-generic/resource.h | 5
include/asm-x86/thread_info_32.h | 2
include/asm-x86/thread_info_64.h | 5
include/linux/cpu.h | 17
include/linux/debug_locks.h | 5
include/linux/futex.h | 6
include/linux/hardirq.h | 6
include/linux/hrtimer.h | 14
include/linux/init_task.h | 7
include/linux/interrupt.h | 1
include/linux/jiffies.h | 6
include/linux/kernel.h | 4
include/linux/latencytop.h | 44
include/linux/notifier.h | 4
include/linux/rcuclassic.h | 164 +++
include/linux/rcupdate.h | 173 +--
include/linux/rcupreempt.h | 86 +
include/linux/rcupreempt_trace.h | 99 +
include/linux/sched.h | 83 +
include/linux/smp_lock.h | 14
include/linux/stacktrace.h | 3
include/linux/topology.h | 5
init/Kconfig | 28
init/main.c | 1
kernel/Kconfig.hz | 2
kernel/Kconfig.preempt | 13
kernel/Makefile | 6
kernel/cpu.c | 164 ++-
kernel/cpuset.c | 14
kernel/fork.c | 11
kernel/hrtimer.c | 256 ++--
kernel/kthread.c | 12
kernel/latencytop.c | 239 ++++
kernel/lockdep.c | 12
kernel/module.c | 27
kernel/posix-cpu-timers.c | 30
kernel/printk.c | 57 -
kernel/profile.c | 99 -
kernel/rcuclassic.c | 575 +++++++++++
kernel/rcupdate.c | 576 -----------
kernel/rcupreempt.c | 953 ++++++++++++++++++
kernel/rcupreempt_trace.c | 330 ++++++
kernel/rcutorture.c | 6
kernel/sched.c | 1384 +++++++++++++++++++--------
kernel/sched_debug.c | 5
kernel/sched_fair.c | 391 ++++++-
kernel/sched_idletask.c | 42
kernel/sched_rt.c | 1112 +++++++++++++++++++--
kernel/softlockup.c | 116 ++
kernel/stop_machine.c | 4
kernel/sysctl.c | 77 +
kernel/time/tick-sched.c | 13
kernel/timer.c | 3
kernel/user.c | 47
kernel/workqueue.c | 35
lib/Kconfig.debug | 14
lib/kernel_lock.c | 123 --
mm/oom_kill.c | 2
mm/slab.c | 18
net/core/flow.c | 4
81 files changed, 6262 insertions(+), 1776 deletions(-)
[ delta patch too big to be sent to lkml ]
^ permalink raw reply [flat|nested] 6+ messages in thread
* preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25)
2008-01-25 20:37 [git pull] scheduler changes for v2.6.25 Ingo Molnar
@ 2008-01-26 19:19 ` Stefan Richter
2008-01-27 11:05 ` Paul E. McKenney
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Richter @ 2008-01-26 19:19 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Paul E. McKenney, linux-kernel
Ingo Molnar wrote:
> - Paul E. McKenney's preemptible RCU code.
BUG: New Kconfig option without help text.
$ make oldconfig
RCU implementation type:
> 1. Classic RCU (CLASSIC_RCU) (NEW)
2. Preemptible RCU (PREEMPT_RCU) (NEW)
choice[1-2]: ?
Sorry, no help available for this option yet.
--
Stefan Richter
-=====-==--- ---= ==-=-
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25)
2008-01-26 19:19 ` preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25) Stefan Richter
@ 2008-01-27 11:05 ` Paul E. McKenney
2008-01-27 11:16 ` Stefan Richter
2008-01-27 12:26 ` Ingo Molnar
0 siblings, 2 replies; 6+ messages in thread
From: Paul E. McKenney @ 2008-01-27 11:05 UTC (permalink / raw)
To: Stefan Richter; +Cc: Ingo Molnar, linux-kernel
On Sat, Jan 26, 2008 at 08:19:21PM +0100, Stefan Richter wrote:
> Ingo Molnar wrote:
> > - Paul E. McKenney's preemptible RCU code.
>
> BUG: New Kconfig option without help text.
>
> $ make oldconfig
> RCU implementation type:
> > 1. Classic RCU (CLASSIC_RCU) (NEW)
> 2. Preemptible RCU (PREEMPT_RCU) (NEW)
> choice[1-2]: ?
>
> Sorry, no help available for this option yet.
Good catch!!!
This patch supplies help text for the "RCU implementation type"
kernel configuration choice.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
---
Kconfig.preempt | 8 ++++++++
1 file changed, 8 insertions(+)
diff -urpNa -X dontdiff linux-2.6.24-rt1/kernel/Kconfig.preempt linux-2.6.24-rt1-RCUconfighelp/kernel/Kconfig.preempt
--- linux-2.6.24-rt1/kernel/Kconfig.preempt 2008-01-27 02:52:36.000000000 -0800
+++ linux-2.6.24-rt1-RCUconfighelp/kernel/Kconfig.preempt 2008-01-27 03:05:22.000000000 -0800
@@ -131,6 +131,14 @@ choice
prompt "RCU implementation type:"
default PREEMPT_RCU if PREEMPT_RT
default CLASSIC_RCU
+ help
+ This allows you to choose either the classic RCU implementation
+ that is designed for best read-side performance on non-realtime
+ systems, or the preemptible RCU implementation for best latency
+ on realtime systems. Note that some kernel preemption modes
+ will restrict your choice.
+
+ Select the default if you are unsure.
config CLASSIC_RCU
bool "Classic RCU"
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25)
2008-01-27 11:05 ` Paul E. McKenney
@ 2008-01-27 11:16 ` Stefan Richter
2008-01-27 12:26 ` Ingo Molnar
1 sibling, 0 replies; 6+ messages in thread
From: Stefan Richter @ 2008-01-27 11:16 UTC (permalink / raw)
To: paulmck; +Cc: Ingo Molnar, linux-kernel
Paul E. McKenney wrote:
> --- linux-2.6.24-rt1/kernel/Kconfig.preempt 2008-01-27 02:52:36.000000000 -0800
> +++ linux-2.6.24-rt1-RCUconfighelp/kernel/Kconfig.preempt 2008-01-27 03:05:22.000000000 -0800
> @@ -131,6 +131,14 @@ choice
> prompt "RCU implementation type:"
> default PREEMPT_RCU if PREEMPT_RT
> default CLASSIC_RCU
> + help
> + This allows you to choose either the classic RCU implementation
> + that is designed for best read-side performance on non-realtime
> + systems, or the preemptible RCU implementation for best latency
> + on realtime systems. Note that some kernel preemption modes
> + will restrict your choice.
> +
> + Select the default if you are unsure.
Looks good to me. Serves those people who want to be informed as well
as those who want to be comforted. :-) Thanks,
--
Stefan Richter
-=====-==--- ---= ==-==
http://arcgraph.de/sr/
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25)
2008-01-27 11:05 ` Paul E. McKenney
2008-01-27 11:16 ` Stefan Richter
@ 2008-01-27 12:26 ` Ingo Molnar
2008-01-27 23:48 ` Paul E. McKenney
1 sibling, 1 reply; 6+ messages in thread
From: Ingo Molnar @ 2008-01-27 12:26 UTC (permalink / raw)
To: Paul E. McKenney; +Cc: Stefan Richter, linux-kernel
* Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> > Sorry, no help available for this option yet.
>
> Good catch!!!
>
> This patch supplies help text for the "RCU implementation type" kernel
> configuration choice.
thanks applied to sched.git. (see the patch below - the config option is
in init/Kconfig in mainline, not in kernel/Kconfig.preempt)
Ingo
------------->
Subject: RCU: add help text for "RCU implementation type"
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
This patch supplies help text for the "RCU implementation type"
kernel configuration choice.
Reported-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
init/Kconfig | 8 ++++++++
1 file changed, 8 insertions(+)
Index: linux/init/Kconfig
===================================================================
--- linux.orig/init/Kconfig
+++ linux/init/Kconfig
@@ -779,6 +779,14 @@ config PREEMPT_NOTIFIERS
choice
prompt "RCU implementation type:"
default CLASSIC_RCU
+ help
+ This allows you to choose either the classic RCU implementation
+ that is designed for best read-side performance on non-realtime
+ systems, or the preemptible RCU implementation for best latency
+ on realtime systems. Note that some kernel preemption modes
+ will restrict your choice.
+
+ Select the default if you are unsure.
config CLASSIC_RCU
bool "Classic RCU"
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25)
2008-01-27 12:26 ` Ingo Molnar
@ 2008-01-27 23:48 ` Paul E. McKenney
0 siblings, 0 replies; 6+ messages in thread
From: Paul E. McKenney @ 2008-01-27 23:48 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Stefan Richter, linux-kernel
On Sun, Jan 27, 2008 at 01:26:02PM +0100, Ingo Molnar wrote:
>
> * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
>
> > > Sorry, no help available for this option yet.
> >
> > Good catch!!!
> >
> > This patch supplies help text for the "RCU implementation type" kernel
> > configuration choice.
>
> thanks applied to sched.git. (see the patch below - the config option is
> in init/Kconfig in mainline, not in kernel/Kconfig.preempt)
Ah missed that -- thank you for retargeting the patch.
Thanx, Paul
> Ingo
>
> ------------->
> Subject: RCU: add help text for "RCU implementation type"
> From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
>
> This patch supplies help text for the "RCU implementation type"
> kernel configuration choice.
>
> Reported-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> ---
>
> init/Kconfig | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> Index: linux/init/Kconfig
> ===================================================================
> --- linux.orig/init/Kconfig
> +++ linux/init/Kconfig
> @@ -779,6 +779,14 @@ config PREEMPT_NOTIFIERS
> choice
> prompt "RCU implementation type:"
> default CLASSIC_RCU
> + help
> + This allows you to choose either the classic RCU implementation
> + that is designed for best read-side performance on non-realtime
> + systems, or the preemptible RCU implementation for best latency
> + on realtime systems. Note that some kernel preemption modes
> + will restrict your choice.
> +
> + Select the default if you are unsure.
>
> config CLASSIC_RCU
> bool "Classic RCU"
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-01-27 23:49 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-25 20:37 [git pull] scheduler changes for v2.6.25 Ingo Molnar
2008-01-26 19:19 ` preemptible RCU bug (was Re: [git pull] scheduler changes for v2.6.25) Stefan Richter
2008-01-27 11:05 ` Paul E. McKenney
2008-01-27 11:16 ` Stefan Richter
2008-01-27 12:26 ` Ingo Molnar
2008-01-27 23:48 ` Paul E. McKenney
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).