Scheduler Merges for 2.6.25

Submitted by Jeremy
on January 26, 2008 - 8:02am

Ingo Molnar posted a merge request for the latest git scheduler tree summarizing, "it contains various enhancements to the scheduler - find the full shortlog is below. 96 commits from 19 authors - scheduler developers have been busy again. :-/" He added, "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." Ingo went on to list a number of these new features, including:

"Various instrumentation and debugging enhancements from Arjan van de Ven; Peter Zijlstra's RT time limit and RT throttling code for the RT scheduling class; Paul E. McKenney's preemptible RCU code; refcount based CPU-hotplug rework by Gautham R Shenoy; 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; [...] and a good number of other, smaller enhancements."


From: Ingo Molnar
Subject: [git pull] scheduler changes for v2.6.25
Date: Jan 25, 1:37 pm 2008

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 ]
--

No reiserfs4?

Anonymous (not verified)
on
January 26, 2008 - 7:05pm

No reiserfs4?

And what, pray tell, does

Anonymous (not verified)
on
January 27, 2008 - 2:12am

And what, pray tell, does ReiserFS have to do with the scheduler?

reiser4 has to do with

Anonymous (not verified)
on
January 27, 2008 - 10:08am

reiser4 has to do with everything, now that our infamous reiser4 troll is at it again on Wikipedia.

reiser4 has to do with

Anonymous (not verified)
on
January 28, 2008 - 4:56pm

Do you remember that joke GNAA patch that renamed ReiserFS to MurderFS? I'm starting to think that should actually be applied. It would certainly put a stop to the mindless spamming, and it's not like it's ever going to become a widely deployed filesystem is it? In fact it probably has more chance of succeeding if he stays in prison.

What the kernel needs is

Anonymous (not verified)
on
January 28, 2008 - 7:03pm

What the kernel needs is more crappy filesystems not less.

Hmmm...

Mr_Z
on
January 29, 2008 - 7:56am

Such inciteful commentary, all of you in this thread!

--
Program Intellivision and play Space Patrol!

Big nose

Anonymous (not verified)
on
January 29, 2008 - 6:17pm

Big nose

less trolls by trolling?

Arne Babenhauserheide (not verified)
on
April 25, 2008 - 6:17pm

To me, renaming ReiserFS to MurderFS would be just as bad as trolling, and you'd sure draw spamming trolls like flies.

And according to my information (a former roommate did some tests), Reiser4 performs extremly well.

dude, it's a joke

Anonymous (not verified)
on
January 29, 2008 - 11:46am

I think reiserfs is the new kerneltrap joke.

News: "New OpenBSD version released"
Comment: "What, no reiserfs?"

excuse me for being on topic but...

eMPee584 (not verified)
on
February 24, 2008 - 2:31pm

..how do i actually use this cgroup stuff? Yes I RTFM and even after setting up something I actually miss a 'feature' to automatically put certain apps (X, vlc, boinc...) into certain groups... so is this not yet implemented and I have to cope with my tv stream driving me insane skipping? At least I havent found anything besides the patches and the API...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.