<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/sched/fair.c, branch v3.4.19</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/sched/fair.c?h=v3.4.19</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/sched/fair.c?h=v3.4.19'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-04-26T10:54:52Z</updated>
<entry>
<title>sched: Fix more load-balancing fallout</title>
<updated>2012-04-26T10:54:52Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2012-04-17T11:38:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=eb95308ee2a69403909e111837b9068c64cfc349'/>
<id>urn:sha1:eb95308ee2a69403909e111837b9068c64cfc349</id>
<content type='text'>
Commits 367456c756a6 ("sched: Ditch per cgroup task lists for
load-balancing") and 5d6523ebd ("sched: Fix load-balance wreckage")
left some more wreckage.

By setting loop_max unconditionally to -&gt;nr_running load-balancing
could take a lot of time on very long runqueues (hackbench!). So keep
the sysctl as max limit of the amount of tasks we'll iterate.

Furthermore, the min load filter for migration completely fails with
cgroups since inequality in per-cpu state can easily lead to such
small loads :/

Furthermore the change to add new tasks to the tail of the queue
instead of the head seems to have some effect.. not quite sure I
understand why.

Combined these fixes solve the huge hackbench regression reported by
Tim when hackbench is ran in a cgroup.

Reported-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
Acked-by: Tim Chen &lt;tim.c.chen@linux.intel.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Link: http://lkml.kernel.org/r/1335365763.28150.267.camel@twins
[ got rid of the CONFIG_PREEMPT tuning and made small readability edits ]
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2012-03-29T21:46:05Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-03-29T21:46:05Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7fda0412c5f7afdd1a5ff518f98dee5157266d8a'/>
<id>urn:sha1:7fda0412c5f7afdd1a5ff518f98dee5157266d8a</id>
<content type='text'>
Pull scheduler fixes from Ingo Molnar.

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  cpusets: Remove an unused variable
  sched/rt: Improve pick_next_highest_task_rt()
  sched: Fix select_fallback_rq() vs cpu_active/cpu_online
  sched/x86/smp: Do not enable IRQs over calibrate_delay()
  sched: Fix compiler warning about declared inline after use
  MAINTAINERS: Update email address for SCHEDULER and PERF EVENTS
</content>
</entry>
<entry>
<title>sched: Fix compiler warning about declared inline after use</title>
<updated>2012-03-23T09:39:28Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2012-03-21T20:07:16Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6c16a6dcb05e51ace340ff7bc6dbe647f1593528'/>
<id>urn:sha1:6c16a6dcb05e51ace340ff7bc6dbe647f1593528</id>
<content type='text'>
kernel/sched/fair.c:420: warning: 'account_cfs_rq_runtime' declared inline after being called
kernel/sched/fair.c:420: warning: previous declaration of 'account_cfs_rq_runtime' was here
kernel/sched/fair.c:1165: warning: 'return_cfs_rq_runtime' declared inlineafter being called
kernel/sched/fair.c:1165: warning: previous declaration of 'return_cfs_rq_runtime' was here

Reported-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Link: http://lkml.kernel.org/r/20120321200717.49BB4A024E@akpm.mtv.corp.google.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2012-03-20T17:31:44Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-03-20T17:31:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2ba68940c893c8f0bfc8573c041254251bb6aeab'/>
<id>urn:sha1:2ba68940c893c8f0bfc8573c041254251bb6aeab</id>
<content type='text'>
Pull scheduler changes for v3.4 from Ingo Molnar

* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
  printk: Make it compile with !CONFIG_PRINTK
  sched/x86: Fix overflow in cyc2ns_offset
  sched: Fix nohz load accounting -- again!
  sched: Update yield() docs
  printk/sched: Introduce special printk_sched() for those awkward moments
  sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer
  sched: Cleanup cpu_active madness
  sched: Fix load-balance wreckage
  sched: Clean up parameter passing of proc_sched_autogroup_set_nice()
  sched: Ditch per cgroup task lists for load-balancing
  sched: Rename load-balancing fields
  sched: Move load-balancing arguments into helper struct
  sched/rt: Do not submit new work when PI-blocked
  sched/rt: Prevent idle task boosting
  sched/wait: Add __wake_up_all_locked() API
  sched/rt: Document scheduler related skip-resched-check sites
  sched/rt: Use schedule_preempt_disabled()
  sched/rt: Add schedule_preempt_disabled()
  sched/rt: Do not throttle when PI boosting
  sched/rt: Keep period timer ticking when rt throttling is active
  ...
</content>
</entry>
<entry>
<title>sched/nohz: Correctly initialize 'next_balance' in 'nohz' idle balancer</title>
<updated>2012-03-12T19:43:16Z</updated>
<author>
<name>Diwakar Tundlam</name>
<email>dtundlam@nvidia.com</email>
</author>
<published>2012-03-07T22:44:26Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=554cecaf733623b327eef9652b65965eb1081b81'/>
<id>urn:sha1:554cecaf733623b327eef9652b65965eb1081b81</id>
<content type='text'>
The 'next_balance' field of 'nohz' idle balancer must be initialized
to jiffies. Since jiffies is initialized to negative 300 seconds the
'nohz' idle balancer does not run for the first 300s (5mins) after
bootup. If no new processes are spawed or no idle cycles happen, the
load on the cpus will remain unbalanced for that duration.

Signed-off-by: Diwakar Tundlam &lt;dtundlam@nvidia.com&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/r/1DD7BFEDD3147247B1355BEFEFE4665237994F30EF@HQMAIL04.nvidia.com
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: Fix load-balance wreckage</title>
<updated>2012-03-12T19:43:15Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2012-03-09T23:07:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5d6523ebd2f67de9d23285aad7f3910e7b0aee83'/>
<id>urn:sha1:5d6523ebd2f67de9d23285aad7f3910e7b0aee83</id>
<content type='text'>
Commit 367456c ("sched: Ditch per cgroup task lists for
load-balancing") completely wrecked load-balancing due to
a few silly mistakes.

Correct those and remove more pointless code.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Link: http://lkml.kernel.org/n/tip-zk04ihygwxn7qqrlpaf73b0r@git.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>Merge branch 'perf/urgent' into perf/core</title>
<updated>2012-03-05T08:20:08Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2012-03-05T08:20:08Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=737f24bda723fdf89ecaacb99fa2bf5683c32799'/>
<id>urn:sha1:737f24bda723fdf89ecaacb99fa2bf5683c32799</id>
<content type='text'>
Conflicts:
	tools/perf/builtin-record.c
	tools/perf/builtin-top.c
	tools/perf/perf.h
	tools/perf/util/top.h

Merge reason: resolve these cherry-picking conflicts.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: Ditch per cgroup task lists for load-balancing</title>
<updated>2012-03-01T12:08:37Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2012-02-20T20:49:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=367456c756a6b84f493ca9cc5b17b1f5d38ef466'/>
<id>urn:sha1:367456c756a6b84f493ca9cc5b17b1f5d38ef466</id>
<content type='text'>
Per cgroup load-balance has numerous problems, chief amongst them that
there is no real sane order in them. So stop pretending it makes sense
and enqueue all tasks on a single list.

This also allows us to more easily fix the fwd progress issue
uncovered by the lock-break stuff. Rotate the list on failure to
migreate and limit the total iterations to nr_running (which with
releasing the lock isn't strictly accurate but close enough).

Also add a filter that skips very light tasks on the first attempt
around the list, this attempts to avoid shooting whole cgroups around
without affecting over balance.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: pjt@google.com
Link: http://lkml.kernel.org/n/tip-tx8yqydc7eimgq7i4rkc3a4g@git.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: Rename load-balancing fields</title>
<updated>2012-03-01T09:51:23Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2012-02-22T18:27:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ddcdf6e7d9919d139031fa2a6addd9544a9a833e'/>
<id>urn:sha1:ddcdf6e7d9919d139031fa2a6addd9544a9a833e</id>
<content type='text'>
 s/env-&gt;this_/env-&gt;dst_/g
 s/env-&gt;busiest_/env-&gt;src_/g
 s/pull_task/move_task/g

Makes everything clearer.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: pjt@google.com
Link: http://lkml.kernel.org/n/tip-0yvgms8t8x962drpvl0fu0kk@git.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: Move load-balancing arguments into helper struct</title>
<updated>2012-03-01T09:51:22Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2012-02-22T11:47:19Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8e45cb545d98bc58e75b7de89ec8d3e5c8459ee6'/>
<id>urn:sha1:8e45cb545d98bc58e75b7de89ec8d3e5c8459ee6</id>
<content type='text'>
Passing large sets of similar arguments all around the load-balancer
gets tiresom when you want to modify something. Stick them all in a
helper structure and pass the structure around.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Cc: pjt@google.com
Link: http://lkml.kernel.org/n/tip-5slqz0vhsdzewrfk9eza1aon@git.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
</feed>
