lkml.org 
[lkml]   [2000]   [Aug]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRE: [patch] scheduler bugfix, SMP, 2.4.0-test7

On 28-Aug-2000 Linus Torvalds wrote:
> I think the right solution is to completely split up "schedule()" into two
> different functions (which just share 99% of the code), and basically have
> the idle thread call the _other_ schedule. The one that never does the
> test at all.
>
> That way you know statically whether you are the idle thread or not. No
> test at all.

I thought about it some more. Yes, I can tell statically if I am the idle
thread or not, but how do I tell if the process that was running before me on
the CPU is the idle thread? That's what __schedule_tail() cares about,
prev. If we have a separate schedule for idlers they can avoid the test in
their __schedule_tail but the generic case still has to check. As far as I
can tell having a separate schedule would allow idle threads to skip some of
the early tests in schedule() but I doubt it makes sense from a cache
footprint POV.

Speaking of footprints, that reschedule_idle should really be turned into a
FASTCALL. It's large and inlining creates too many copies in frequently
executed code. __wake_up() even has two of them, check how large it is some
time.

--
Dimitris Michailidis dimitris@engr.sgi.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:38    [W:0.084 / U:2.400 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site