<feed xmlns='http://www.w3.org/2005/Atom'>
<title>pm24.git/kernel/sched.c, branch v2.6.15</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>https://git.kobert.dev/pm24.git/atom/kernel/sched.c?h=v2.6.15</id>
<link rel='self' href='https://git.kobert.dev/pm24.git/atom/kernel/sched.c?h=v2.6.15'/>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/'/>
<updated>2005-11-14T02:14:13Z</updated>
<entry>
<title>[PATCH] m68k: introduce setup_thread_stack() and end_of_stack()</title>
<updated>2005-11-14T02:14:13Z</updated>
<author>
<name>Al Viro</name>
<email>viro@parcelfarce.linux.theplanet.co.uk</email>
</author>
<published>2005-11-14T00:06:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=10ebffde3d3916026974352b7900e44afe2b243f'/>
<id>urn:sha1:10ebffde3d3916026974352b7900e44afe2b243f</id>
<content type='text'>
encapsulates the rest of arch-dependent operations with thread_info access.
Two new helpers - setup_thread_stack() and end_of_stack().  For normal case
the former consists of copying thread_info of parent to new thread_info and
the latter returns pointer immediately past the end of thread_info.

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] m68k: introduce task_thread_info</title>
<updated>2005-11-14T02:14:13Z</updated>
<author>
<name>Al Viro</name>
<email>viro@parcelfarce.linux.theplanet.co.uk</email>
</author>
<published>2005-11-14T00:06:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=a1261f54611ec4ad6a7ab7080f86747e3ac3685b'/>
<id>urn:sha1:a1261f54611ec4ad6a7ab7080f86747e3ac3685b</id>
<content type='text'>
new helper - task_thread_info(task).  On platforms that have thread_info
allocated separately (i.e.  in default case) it simply returns
task-&gt;thread_info.  m68k wants (and for good reasons) to embed its thread_info
into task_struct.  So it will (in later patch) have task_thread_info() of its
own.  For now we just add a macro for generic case and convert existing
instances of its body in core kernel to uses of new macro.  Obviously safe -
all normal architectures get the same preprocessor output they used to get.

Signed-off-by: Al Viro &lt;viro@parcelfarce.linux.theplanet.co.uk&gt;
Signed-off-by: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] optimize activate_task()</title>
<updated>2005-11-10T00:07:44Z</updated>
<author>
<name>Chen, Kenneth W</name>
<email>kenneth.w.chen@intel.com</email>
</author>
<published>2005-11-09T23:45:29Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=a47ab9371e664952b1104a70ec8e9b74db3f7a5f'/>
<id>urn:sha1:a47ab9371e664952b1104a70ec8e9b74db3f7a5f</id>
<content type='text'>
recalc_task_prio() is called from activate_task() to calculate dynamic
priority and interactive credit for the activating task.  For real-time
scheduling process, all that dynamic calculation is thrown away at the end
because rt priority is fixed.  Patch to optimize recalc_task_prio() away
for rt processes.

Signed-off-by: Ken Chen &lt;kenneth.w.chen@intel.com&gt;
Acked-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Nick Piggin &lt;piggin@cyberone.com.au&gt;
Cc: Con Kolivas &lt;kernel@kolivas.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: resched and cpu_idle rework</title>
<updated>2005-11-09T15:56:33Z</updated>
<author>
<name>Nick Piggin</name>
<email>nickpiggin@yahoo.com.au</email>
</author>
<published>2005-11-09T05:39:04Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=64c7c8f88559624abdbe12b5da6502e8879f8d28'/>
<id>urn:sha1:64c7c8f88559624abdbe12b5da6502e8879f8d28</id>
<content type='text'>
Make some changes to the NEED_RESCHED and POLLING_NRFLAG to reduce
confusion, and make their semantics rigid.  Improves efficiency of
resched_task and some cpu_idle routines.

* In resched_task:
- TIF_NEED_RESCHED is only cleared with the task's runqueue lock held,
  and as we hold it during resched_task, then there is no need for an
  atomic test and set there. The only other time this should be set is
  when the task's quantum expires, in the timer interrupt - this is
  protected against because the rq lock is irq-safe.

- If TIF_NEED_RESCHED is set, then we don't need to do anything. It
  won't get unset until the task get's schedule()d off.

- If we are running on the same CPU as the task we resched, then set
  TIF_NEED_RESCHED and no further action is required.

- If we are running on another CPU, and TIF_POLLING_NRFLAG is *not* set
  after TIF_NEED_RESCHED has been set, then we need to send an IPI.

Using these rules, we are able to remove the test and set operation in
resched_task, and make clear the previously vague semantics of
POLLING_NRFLAG.

* In idle routines:
- Enter cpu_idle with preempt disabled. When the need_resched() condition
  becomes true, explicitly call schedule(). This makes things a bit clearer
  (IMO), but haven't updated all architectures yet.

- Many do a test and clear of TIF_NEED_RESCHED for some reason. According
  to the resched_task rules, this isn't needed (and actually breaks the
  assumption that TIF_NEED_RESCHED is only cleared with the runqueue lock
  held). So remove that. Generally one less locked memory op when switching
  to the idle thread.

- Many idle routines clear TIF_POLLING_NRFLAG, and only set it in the inner
  most polling idle loops. The above resched_task semantics allow it to be
  set until before the last time need_resched() is checked before going into
  a halt requiring interrupt wakeup.

  Many idle routines simply never enter such a halt, and so POLLING_NRFLAG
  can be always left set, completely eliminating resched IPIs when rescheduling
  the idle task.

  POLLING_NRFLAG width can be increased, to reduce the chance of resched IPIs.

Signed-off-by: Nick Piggin &lt;npiggin@suse.de&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Con Kolivas &lt;kernel@kolivas.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: consider migration thread with smp nice</title>
<updated>2005-11-09T15:56:32Z</updated>
<author>
<name>Con Kolivas</name>
<email>kernel@kolivas.org</email>
</author>
<published>2005-11-09T05:39:00Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=ede3d0fba99520f268067917b50858d788bc41da'/>
<id>urn:sha1:ede3d0fba99520f268067917b50858d788bc41da</id>
<content type='text'>
The intermittent scheduling of the migration thread at ultra high priority
makes the smp nice handling see that runqueue as being heavily loaded.  The
migration thread itself actually handles the balancing so its influence on
priority balancing should be ignored.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: correct smp_nice_bias</title>
<updated>2005-11-09T15:56:32Z</updated>
<author>
<name>Con Kolivas</name>
<email>kernel@kolivas.org</email>
</author>
<published>2005-11-09T05:38:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=6dd4a85bb3ee0715415892c8b0f2a9bd08d31ca4'/>
<id>urn:sha1:6dd4a85bb3ee0715415892c8b0f2a9bd08d31ca4</id>
<content type='text'>
The priority biasing was off by mutliplying the total load by the total
priority bias and this ruins the ratio of loads between runqueues. This
patch should correct the ratios of loads between runqueues to be proportional
to overall load. -2nd attempt.

From: Dave Kleikamp &lt;shaggy@austin.ibm.com&gt;

  This patch fixes a divide-by-zero error that I hit on a two-way i386
  machine.  rq-&gt;nr_running is tested to be non-zero, but may change by the
  time it is used in the division.  Saving the value to a local variable
  ensures that the same value that is checked is used in the division.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Signed-off-by: Dave Kleikamp &lt;shaggy@austin.ibm.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: smp nice bias busy queues on idle rebalance</title>
<updated>2005-11-09T15:56:32Z</updated>
<author>
<name>Con Kolivas</name>
<email>kernel@kolivas.org</email>
</author>
<published>2005-11-09T05:38:58Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=3b0bd9bc6f3b8a47853d1b1de4520de3878e8941'/>
<id>urn:sha1:3b0bd9bc6f3b8a47853d1b1de4520de3878e8941</id>
<content type='text'>
To intensify the 'nice' support across physical cpus on SMP we can bias the
loads on idle rebalancing. To prevent idle rebalance from trying to pull tasks
from queues that appear heavily loaded we only bias the load if there is more
than one task running.

Add some minor micro-optimisations and have only one return from __source_load
and __target_load functions.

Fix the fact that target_load was not biased by priority when type == 0.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: account rt tasks in prio_bias()</title>
<updated>2005-11-09T15:56:32Z</updated>
<author>
<name>Con Kolivas</name>
<email>kernel@kolivas.org</email>
</author>
<published>2005-11-09T05:38:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=dad1c65c8000f4485d8602e1875ded77e0d72133'/>
<id>urn:sha1:dad1c65c8000f4485d8602e1875ded77e0d72133</id>
<content type='text'>
Real time tasks' effect on prio_bias should be based on their real time
priority level instead of their static_prio which is based on nice.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: change prio bias only if queued</title>
<updated>2005-11-09T15:56:32Z</updated>
<author>
<name>Con Kolivas</name>
<email>kernel@kolivas.org</email>
</author>
<published>2005-11-09T05:38:56Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=738a2ccbcf8c2c1b039f1e76662dce60b22b694b'/>
<id>urn:sha1:738a2ccbcf8c2c1b039f1e76662dce60b22b694b</id>
<content type='text'>
prio_bias should only be adjusted in set_user_nice if p is actually currently
queued.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] sched: implement nice support across physical cpus on SMP</title>
<updated>2005-11-09T15:56:32Z</updated>
<author>
<name>Con Kolivas</name>
<email>kernel@kolivas.org</email>
</author>
<published>2005-11-09T05:38:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kobert.dev/pm24.git/commit/?id=b910472dd3b7c1d51af9a594a759f642520c33e1'/>
<id>urn:sha1:b910472dd3b7c1d51af9a594a759f642520c33e1</id>
<content type='text'>
This patch implements 'nice' support across physical cpus on SMP.

It introduces an extra runqueue variable prio_bias which is the sum of the
(inverted) static priorities of all the tasks on the runqueue.

This is then used to bias busy rebalancing between runqueues to obtain good
distribution of tasks of different nice values.  By biasing the balancing only
during busy rebalancing we can avoid having any significant loss of throughput
by not affecting the carefully tuned idle balancing already in place.  If all
tasks are running at the same nice level this code should also have minimal
effect.  The code is optimised out in the !CONFIG_SMP case.

Signed-off-by: Con Kolivas &lt;kernel@kolivas.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: Nick Piggin &lt;nickpiggin@yahoo.com.au&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
</feed>
