Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Aug 14, 2011
  1. @paulturner

    sched: Implement hierarchical task accounting for SCHED_OTHER

    paulturner authored Ingo Molnar committed
    Introduce hierarchical task accounting for the group scheduling case in CFS, as
    well as promoting the responsibility for maintaining rq->nr_running to the
    scheduling classes.
    
    The primary motivation for this is that with scheduling classes supporting
    bandwidth throttling it is possible for entities participating in throttled
    sub-trees to not have root visible changes in rq->nr_running across activate
    and de-activate operations.  This in turn leads to incorrect idle and
    weight-per-task load balance decisions.
    
    This also allows us to make a small fixlet to the fastpath in pick_next_task()
    under group scheduling.
    
    Note: this issue also exists with the existing sched_rt throttling mechanism.
    This patch does not address that.
    
    Signed-off-by: Paul Turner <pjt@google.com>
    Reviewed-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20110721184756.878333391@google.com
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
Commits on Apr 14, 2011
  1. sched: Drop the rq argument to sched_class::select_task_rq()

    Peter Zijlstra authored Ingo Molnar committed
    In preparation of calling select_task_rq() without rq->lock held, drop
    the dependency on the rq argument.
    
    Reviewed-by: Frank Rowand <frank.rowand@am.sony.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Nick Piggin <npiggin@kernel.dk>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Link: http://lkml.kernel.org/r/20110405152729.031077745@chello.nl
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
  2. sched: Provide p->on_rq

    Peter Zijlstra authored Ingo Molnar committed
    Provide a generic p->on_rq because the p->se.on_rq semantics are
    unfavourable for lockless wakeups but needed for sched_fair.
    
    In particular, p->on_rq is only cleared when we actually dequeue the
    task in schedule() and not on any random dequeue as done by things
    like __migrate_task() and __sched_setscheduler().
    
    This also allows us to remove p->se usage from !sched_fair code.
    
    Reviewed-by: Frank Rowand <frank.rowand@am.sony.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Nick Piggin <npiggin@kernel.dk>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20110405152728.949545047@chello.nl
Commits on Mar 23, 2011
  1. sched, doc: Update sched-design-CFS.txt

    Borislav Petkov authored Ingo Molnar committed
    Correct ->dequeue_tree() thinko into sched_class->dequeue_task
    and drop all references to ->task_new() since it is obviously
    gone.
    
    Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Mike Galbraith <efault@gmx.de>
    LKML-Reference: <1300815978-16618-1-git-send-email-bp@amd64.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
Commits on Jan 26, 2011
  1. sched: Fix switch_from_fair()

    Peter Zijlstra authored Ingo Molnar committed
    When a task is taken out of the fair class we must ensure the vruntime
    is properly normalized because when we put it back in it will assume
    to be normalized.
    
    The case that goes wrong is when changing away from the fair class
    while sleeping. Sleeping tasks have non-normalized vruntime in order
    to make sleeper-fairness work. So treat the switch away from fair as a
    wakeup and preserve the relative vruntime.
    
    Also update sysrq-n to call the ->switch_{to,from} methods.
    
    Reported-by: Onkalo Samu <samu.p.onkalo@nokia.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <new-submission>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
Commits on Nov 11, 2010
  1. sched: Fix cross-sched-class wakeup preemption

    Peter Zijlstra authored Ingo Molnar committed
    Instead of dealing with sched classes inside each check_preempt_curr()
    implementation, pull out this logic into the generic wakeup preemption
    path.
    
    This fixes a hang in KVM (and others) where we are waiting for the
    stop machine thread to run ...
    
    Reported-by: Markus Trippelsdorf <markus@trippelsdorf.de>
    Tested-by: Marcelo Tosatti <mtosatti@redhat.com>
    Tested-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <1288891946.2039.31.camel@laptop>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
Commits on Nov 10, 2010
  1. sched: Fix runnable condition for stoptask

    Peter Zijlstra authored Ingo Molnar committed
    Heiko reported that the TASK_RUNNING check is not sufficient for
    CONFIG_PREEMPT=y since we can get preempted with !TASK_RUNNING.
    
    He suggested adding a ->se.on_rq test to the existing TASK_RUNNING
    one, however TASK_RUNNING will always have ->se.on_rq, so we might as
    well reduce that to a single test.
    
    [ stop tasks should never get preempted, but its good to handle
      this case correctly should this ever happen ]
    
    Reported-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <new-submission>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
Commits on Oct 18, 2010
  1. sched: Create special class for stop/migrate work

    Peter Zijlstra authored Ingo Molnar committed
    In order to separate the stop/migrate work thread from the SCHED_FIFO
    implementation, create a special class for it that is of higher priority than
    SCHED_FIFO itself.
    
    This currently solves a problem where cpu-hotplug consumes so much cpu-time
    that the SCHED_FIFO class gets throttled, but has the bandwidth replenishment
    timer pending on the now dead cpu.
    
    It is also required for when we add the planned deadline scheduling class above
    SCHED_FIFO, as the stop/migrate thread still needs to transcent those tasks.
    
    Tested-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <1285165776.2275.1022.camel@laptop>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
Something went wrong with that request. Please try again.