]> git.baikalelectronics.ru Git - kernel.git/commit
sched: Throttle entities exceeding their allowed bandwidth
authorPaul Turner <pjt@google.com>
Thu, 21 Jul 2011 16:43:39 +0000 (09:43 -0700)
committerIngo Molnar <mingo@elte.hu>
Sun, 14 Aug 2011 10:03:47 +0000 (12:03 +0200)
commitad400f2c4288c53c09cc9a1a7797c0a06eff0e58
tree4659e1f9efdea0f15ab5ef551c718416fb8e7954
parentb404be39ebf1c1c1e9e18b0cd3e1f8ec26f3e267
sched: Throttle entities exceeding their allowed bandwidth

With the machinery in place to throttle and unthrottle entities, as well as
handle their participation (or lack there of) we can now enable throttling.

There are 2 points that we must check whether it's time to set throttled state:
 put_prev_entity() and enqueue_entity().

- put_prev_entity() is the typical throttle path, we reach it by exceeding our
  allocated run-time within update_curr()->account_cfs_rq_runtime() and going
  through a reschedule.

- enqueue_entity() covers the case of a wake-up into an already throttled
  group.  In this case we know the group cannot be on_rq and can throttle
  immediately.  Checks are added at time of put_prev_entity() and
  enqueue_entity()

Signed-off-by: Paul Turner <pjt@google.com>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/20110721184758.091415417@google.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched_fair.c