<feed xmlns='http://www.w3.org/2005/Atom'>
<title>lwn.git/kernel, branch v2.6.23-rc4</title>
<subtitle>Linux kernel documentation tree maintained by Jonathan Corbet</subtitle>
<id>http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v2.6.23-rc4</id>
<link rel='self' href='http://mirrors.hust.edu.cn/git/lwn.git/atom?h=v2.6.23-rc4'/>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/'/>
<updated>2007-08-27T17:27:48+00:00</updated>
<entry>
<title>fix bogus hotplug cpu warning</title>
<updated>2007-08-27T17:27:48+00:00</updated>
<author>
<name>Hugh Dickins</name>
<email>hugh@veritas.com</email>
</author>
<published>2007-08-27T15:06:19+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=d243769d3f83b318813a04a9592bb7cfedc6c280'/>
<id>urn:sha1:d243769d3f83b318813a04a9592bb7cfedc6c280</id>
<content type='text'>
Fix bogus DEBUG_PREEMPT warning on x86_64, when cpu brought online after
bootup: current_is_keventd is right to note its use of smp_processor_id
is preempt-safe, but should use raw_smp_processor_id to avoid the warning.

Signed-off-by: Hugh Dickins &lt;hugh@veritas.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>sched: s/sched_latency/sched_min_granularity</title>
<updated>2007-08-25T20:17:19+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2007-08-25T20:17:19+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=50c46637aa894f904e2fb39086a3d7732f68bd50'/>
<id>urn:sha1:50c46637aa894f904e2fb39086a3d7732f68bd50</id>
<content type='text'>
runtime limit and wakeup granularity used to be a function of
granularity and that was incorrect changed to sched_latency.

Fix this to make wakeup granularity a function of min-granularity,
and the runtime limit equal to latency.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: cleanup, sched_granularity -&gt; sched_min_granularity</title>
<updated>2007-08-25T16:41:53+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2007-08-25T16:41:53+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=172ac3dbb7d3e528ac53d08a34df88d1ac53c534'/>
<id>urn:sha1:172ac3dbb7d3e528ac53d08a34df88d1ac53c534</id>
<content type='text'>
due to adaptive granularity scheduling the role of sched_granularity
has changed to "minimum granularity", so rename the variable (and the
tunable) accordingly.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
</content>
</entry>
<entry>
<title>sched: adaptive scheduler granularity</title>
<updated>2007-08-25T16:41:53+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2007-08-25T16:41:53+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=218050855ece4e923106ab614ac65afa0f618df3'/>
<id>urn:sha1:218050855ece4e923106ab614ac65afa0f618df3</id>
<content type='text'>
Instead of specifying the preemption granularity, specify the wanted
latency. By fixing the granlarity to a constany the wakeup latency
it a function of the number of running tasks on the rq.

Invert this relation.

sysctl_sched_granularity becomes a minimum for the dynamic granularity
computed from the new sysctl_sched_latency.

Then use this latency to do more intelligent granularity decisions: if
there are fewer tasks running then we can schedule coarser. This helps
performance while still always keeping the latency target.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: fix CONFIG_SCHED_DEBUG dependency of lockdep sysctls</title>
<updated>2007-08-25T16:41:52+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2007-08-25T16:41:52+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=1fc84aaae3bae9646dd4c7798b8c0ff934338909'/>
<id>urn:sha1:1fc84aaae3bae9646dd4c7798b8c0ff934338909</id>
<content type='text'>
Make the lockdep sysctls not depend on CONFIG_SCHED_DEBUG.

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: fix startup penalty calculation</title>
<updated>2007-08-24T18:39:10+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2007-08-24T18:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=095e56c7036fe97bc3ebcd80ed6e121be0847656'/>
<id>urn:sha1:095e56c7036fe97bc3ebcd80ed6e121be0847656</id>
<content type='text'>
fix task startup penalty miscalculation: sysctl_sched_granularity is
unsigned int and wait_runtime is long so we first have to convert it
to long before turning it negative ...

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: simplify bonus calculation #2</title>
<updated>2007-08-24T18:39:10+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2007-08-24T18:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=ea0aa3b23a193d1fc5c982286edecd071af67d94'/>
<id>urn:sha1:ea0aa3b23a193d1fc5c982286edecd071af67d94</id>
<content type='text'>
current code:

 delta = calc_delta_mine(delta_exec, curr-&gt;load.weight, lw);
 delta = min((u64)delta, cfs_rq-&gt;sleeper_bonus);

Notice that this calc_delta_mine() line is exactly delta_mine, which
gives:

 delta = min((u64)delta_mine, cfs_rq-&gt;sleeper_bonus);

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: simplify bonus calculation #1</title>
<updated>2007-08-24T18:39:10+00:00</updated>
<author>
<name>Peter Zijlstra</name>
<email>a.p.zijlstra@chello.nl</email>
</author>
<published>2007-08-24T18:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=a6f2994042cc2db9e507dc702ed0b5e2cc5890fe'/>
<id>urn:sha1:a6f2994042cc2db9e507dc702ed0b5e2cc5890fe</id>
<content type='text'>
current code:

 delta = min(cfs_rq-&gt;sleeper_bonus, (u64)delta_exec);
 delta = calc_delta_mine(delta, curr-&gt;load.weight, lw);
 delta = min((u64)delta, cfs_rq-&gt;sleeper_bonus);

drop the first min(), because we clip against sleeper_bonus in the 3rd line
again. That gives:

 delta = calc_delta_mine(delta_exec, curr-&gt;load.weight, lw);
 delta = min((u64)delta, cfs_rq-&gt;sleeper_bonus);

Signed-off-by: Peter Zijlstra &lt;a.p.zijlstra@chello.nl&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: tidy up and simplify the bonus balance</title>
<updated>2007-08-24T18:39:10+00:00</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2007-08-24T18:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=b2133c8b1e270b4a7c36f70e29be8738d09e850b'/>
<id>urn:sha1:b2133c8b1e270b4a7c36f70e29be8738d09e850b</id>
<content type='text'>
make the bonus balance more consistent: do not hand out a bonus if
there's too much in flight already, and only deduct as much from a
runner as it has the capacity. This makes the bonus engine a zero-sum
game (as intended).

this also simplifies the code:

   text    data     bss     dec     hex filename
  34770    2998      24   37792    93a0 sched.o.before
  34749    2998      24   37771    938b sched.o.after

and it also avoids overscheduling in sleep-happy workloads like
hackbench.c.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>sched: optimize task_tick_rt() a bit</title>
<updated>2007-08-24T18:39:10+00:00</updated>
<author>
<name>Dmitry Adamushko</name>
<email>dmitry.adamushko@gmail.com</email>
</author>
<published>2007-08-24T18:39:10+00:00</published>
<link rel='alternate' type='text/html' href='http://mirrors.hust.edu.cn/git/lwn.git/commit/?id=98fbc798533339be802c6dcd48c2293c712e87db'/>
<id>urn:sha1:98fbc798533339be802c6dcd48c2293c712e87db</id>
<content type='text'>
Mitchell Erblich suggested a quality-of-implementation change to
not requeue SCHED_RR tasks if there's only a single task on the
runqueue, by checking for rq-&gt;nr_running == 1.

provide a more efficient implementation of that, to check that
particular RT priority-queue only.

[ From: mingo@elte.hu ]

Also first requeue the task then set need_resched - results in slightly
better machine-instruction ordering. Also clean up the code a bit.

Signed-off-by: Dmitry Adamushko &lt;dmitry.adamushko@gmail.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
</feed>
