<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/kernel/sched, branch v3.12.7</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/kernel/sched?h=v3.12.7</id>
<link rel='self' href='https://git.amat.us/linux/atom/kernel/sched?h=v3.12.7'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-01-09T20:25:14Z</updated>
<entry>
<title>sched: numa: skip inaccessible VMAs</title>
<updated>2014-01-09T20:25:14Z</updated>
<author>
<name>Mel Gorman</name>
<email>mgorman@suse.de</email>
</author>
<published>2014-01-07T14:00:43Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=cefeb27999f88f9348f1c55753339535ee9016aa'/>
<id>urn:sha1:cefeb27999f88f9348f1c55753339535ee9016aa</id>
<content type='text'>
commit 3c67f474558748b604e247d92b55dfe89654c81d upstream.

Inaccessible VMA should not be trapping NUMA hint faults. Skip them.

Signed-off-by: Mel Gorman &lt;mgorman@suse.de&gt;
Reviewed-by: Rik van Riel &lt;riel@redhat.com&gt;
Cc: Alex Thorlton &lt;athorlton@sgi.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>sched/rt: Fix rq's cpupri leak while enqueue/dequeue child RT entities</title>
<updated>2014-01-09T20:25:10Z</updated>
<author>
<name>Kirill Tkhai</name>
<email>tkhai@yandex.ru</email>
</author>
<published>2013-11-27T15:59:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=0bff3e480b75e408444ad5f0d8bd15a407f4a6cb'/>
<id>urn:sha1:0bff3e480b75e408444ad5f0d8bd15a407f4a6cb</id>
<content type='text'>
commit 757dfcaa41844595964f1220f1d33182dae49976 upstream.

This patch touches the RT group scheduling case.

Functions inc_rt_prio_smp() and dec_rt_prio_smp() change (global) rq's
priority, while rt_rq passed to them may be not the top-level rt_rq.
This is wrong, because changing of priority on a child level does not
guarantee that the priority is the highest all over the rq. So, this
leak makes RT balancing unusable.

The short example: the task having the highest priority among all rq's
RT tasks (no one other task has the same priority) are waking on a
throttle rt_rq.  The rq's cpupri is set to the task's priority
equivalent, but real rq-&gt;rt.highest_prio.curr is less.

The patch below fixes the problem.

Signed-off-by: Kirill Tkhai &lt;tkhai@yandex.ru&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
CC: Steven Rostedt &lt;rostedt@goodmis.org&gt;
Link: http://lkml.kernel.org/r/49231385567953@web4m.yandex.ru
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>sched: Avoid throttle_cfs_rq() racing with period_timer stopping</title>
<updated>2013-12-20T15:49:07Z</updated>
<author>
<name>Ben Segall</name>
<email>bsegall@google.com</email>
</author>
<published>2013-10-16T18:16:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=e8e21dd5461293632406cc705c9ee85dd0f4156e'/>
<id>urn:sha1:e8e21dd5461293632406cc705c9ee85dd0f4156e</id>
<content type='text'>
commit f9f9ffc237dd924f048204e8799da74f9ecf40cf upstream.

throttle_cfs_rq() doesn't check to make sure that period_timer is running,
and while update_curr/assign_cfs_runtime does, a concurrently running
period_timer on another cpu could cancel itself between this cpu's
update_curr and throttle_cfs_rq(). If there are no other cfs_rqs running
in the tg to restart the timer, this causes the cfs_rq to be stranded
forever.

Fix this by calling __start_cfs_bandwidth() in throttle if the timer is
inactive.

(Also add some sched_debug lines for cfs_bandwidth.)

Tested: make a run/sleep task in a cgroup, loop switching the cgroup
between 1ms/100ms quota and unlimited, checking for timer_active=0 and
throttled=1 as a failure. With the throttle_cfs_rq() change commented out
this fails, with the full patch it passes.

Signed-off-by: Ben Segall &lt;bsegall@google.com&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: pjt@google.com
Link: http://lkml.kernel.org/r/20131016181632.22647.84174.stgit@sword-of-the-dawn.mtv.corp.google.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
Cc: Chris J Arges &lt;chris.j.arges@canonical.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>sched/balancing: Fix cfs_rq-&gt;task_h_load calculation</title>
<updated>2013-09-20T09:59:39Z</updated>
<author>
<name>Vladimir Davydov</name>
<email>vdavydov@parallels.com</email>
</author>
<published>2013-09-14T15:39:46Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7e3115ef5149fc502e3a2e80719dba54a8e7409d'/>
<id>urn:sha1:7e3115ef5149fc502e3a2e80719dba54a8e7409d</id>
<content type='text'>
Patch a003a2 (sched: Consider runnable load average in move_tasks())
sets all top-level cfs_rqs' h_load to rq-&gt;avg.load_avg_contrib, which is
always 0. This mistype leads to all tasks having weight 0 when load
balancing in a cpu-cgroup enabled setup. There obviously should be sum
of weights of all runnable tasks there instead. Fix it.

Signed-off-by: Vladimir Davydov &lt;vdavydov@parallels.com&gt;
Reviewed-by: Paul Turner &lt;pjt@google.com&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Link: http://lkml.kernel.org/r/1379173186-11944-1-git-send-email-vdavydov@parallels.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>sched/balancing: Fix 'local-&gt;avg_load &gt; busiest-&gt;avg_load' case in fix_small_imbalance()</title>
<updated>2013-09-20T09:59:38Z</updated>
<author>
<name>Vladimir Davydov</name>
<email>vdavydov@parallels.com</email>
</author>
<published>2013-09-15T13:49:14Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=3029ede39373c368f402a76896600d85a4f7121b'/>
<id>urn:sha1:3029ede39373c368f402a76896600d85a4f7121b</id>
<content type='text'>
In busiest-&gt;group_imb case we can come to fix_small_imbalance() with
local-&gt;avg_load &gt; busiest-&gt;avg_load. This can result in wrong imbalance
fix-up, because there is the following check there where all the
members are unsigned:

if (busiest-&gt;avg_load - local-&gt;avg_load + scaled_busy_load_per_task &gt;=
    (scaled_busy_load_per_task * imbn)) {
	env-&gt;imbalance = busiest-&gt;load_per_task;
	return;
}

As a result we can end up constantly bouncing tasks from one cpu to
another if there are pinned tasks.

Fix it by substituting the subtraction with an equivalent addition in
the check.

[ The bug can be caught by running 2*N cpuhogs pinned to two logical cpus
  belonging to different cores on an HT-enabled machine with N logical
  cpus: just look at se.nr_migrations growth. ]

Signed-off-by: Vladimir Davydov &lt;vdavydov@parallels.com&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Link: http://lkml.kernel.org/r/ef167822e5c5b2d96cf5b0e3e4f4bdff3f0414a2.1379252740.git.vdavydov@parallels.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>sched/balancing: Fix 'local-&gt;avg_load &gt; sds-&gt;avg_load' case in calculate_imbalance()</title>
<updated>2013-09-20T09:59:36Z</updated>
<author>
<name>Vladimir Davydov</name>
<email>vdavydov@parallels.com</email>
</author>
<published>2013-09-15T13:49:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b18855500fc40da050512d9df82d2f1471e59642'/>
<id>urn:sha1:b18855500fc40da050512d9df82d2f1471e59642</id>
<content type='text'>
In busiest-&gt;group_imb case we can come to calculate_imbalance() with
local-&gt;avg_load &gt;= busiest-&gt;avg_load &gt;= sds-&gt;avg_load. This can result
in imbalance overflow, because it is calculated as follows

env-&gt;imbalance = min(
	max_pull * busiest-&gt;group_power,
	(sds-&gt;avg_load - local-&gt;avg_load) * local-&gt;group_power) / SCHED_POWER_SCALE;

As a result we can end up constantly bouncing tasks from one cpu to
another if there are pinned tasks.

Fix this by skipping the assignment and assuming imbalance=0 in case
local-&gt;avg_load &gt; sds-&gt;avg_load.

[ The bug can be caught by running 2*N cpuhogs pinned to two logical cpus
  belonging to different cores on an HT-enabled machine with N logical
  cpus: just look at se.nr_migrations growth. ]

Signed-off-by: Vladimir Davydov &lt;vdavydov@parallels.com&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Link: http://lkml.kernel.org/r/8f596cc6bc0e5e655119dc892c9bfcad26e971f4.1379252740.git.vdavydov@parallels.com
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>2013-09-18T16:23:32Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-18T16:23:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7e28b2712e5ebd8d73d25561585bc2ae77da5c30'/>
<id>urn:sha1:7e28b2712e5ebd8d73d25561585bc2ae77da5c30</id>
<content type='text'>
Pull scheduler fixes from Ingo Molnar:
 "Misc fixes"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched: Fix comment for sched_info_depart
  sched/Documentation: Update sched-design-CFS.txt documentation
  sched/debug: Take PID namespace into account
  sched/fair: Fix small race where child-&gt;se.parent,cfs_rq might point to invalid ones
</content>
</entry>
<entry>
<title>sched: Fix comment for sched_info_depart</title>
<updated>2013-09-16T09:18:34Z</updated>
<author>
<name>Michael S. Tsirkin</name>
<email>mst@redhat.com</email>
</author>
<published>2013-09-16T08:30:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=13b62e46d5407c7d619aea1dc9c3e0991b631b57'/>
<id>urn:sha1:13b62e46d5407c7d619aea1dc9c3e0991b631b57</id>
<content type='text'>
sched_info_depart seems to be only called from
sched_info_switch(), so only on involuntary task switch.

Fix the comment to match.

Signed-off-by: Michael S. Tsirkin &lt;mst@redhat.com&gt;
Cc: Peter Zijlstra &lt;peterz@infradead.org&gt;
Cc: Frederic Weisbecker &lt;fweisbec@gmail.com&gt;
Cc: KOSAKI Motohiro &lt;kosaki.motohiro@jp.fujitsu.com&gt;
Link: http://lkml.kernel.org/r/20130916083036.GA1113@redhat.com
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>2013-09-12T17:44:13Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2013-09-12T17:44:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=b55ee2816ed6d8f8a00d4badab0e3642ffbac19f'/>
<id>urn:sha1:b55ee2816ed6d8f8a00d4badab0e3642ffbac19f</id>
<content type='text'>
Pull scheduler fix from Ingo Molnar:
 "Performance regression fix"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched: Fix load balancing performance regression in should_we_balance()
</content>
</entry>
<entry>
<title>sched/debug: Take PID namespace into account</title>
<updated>2013-09-12T17:14:16Z</updated>
<author>
<name>Peter Zijlstra</name>
<email>peterz@infradead.org</email>
</author>
<published>2013-09-09T11:01:41Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=fc840914e9b07ab4685c195e1e54e58de4f84c03'/>
<id>urn:sha1:fc840914e9b07ab4685c195e1e54e58de4f84c03</id>
<content type='text'>
Emmanuel reported that /proc/sched_debug didn't report the right PIDs
when using namespaces, cure this.

Reported-by: Emmanuel Deloget &lt;emmanuel.deloget@efixo.com&gt;
Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Link: http://lkml.kernel.org/r/20130909110141.GM31370@twins.programming.kicks-ass.net
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
</feed>
