Messages in this thread | | | From | "Stuart MacDonald" <> | Subject | Re: kernel/sched.c questions | Date | Wed, 4 Apr 2001 16:29:37 -0400 |
| |
I had similar questions recently when I was doing some hacking; these are my guesses:
From: <Sardañons>; "Eliel" <Eliel.Sardanons@philips.edu.ar> > Hello, I would like to know why you put this two functions: > void scheduling_functions_start_here(void) { } > ... > void scheduling_functions_end_here(void) { }
Just as markers for easy location in System.map. The compiler should optimise those away.
> why you put 'case TASK_RUNNING' > > switch (prev->state) { > case TASK_INTERRUPTIBLE: > if (signal_pending(prev)) { > prev->state = TASK_RUNNING; > break; > } > default: > del_from_runqueue(prev); > case TASK_RUNNING: > }
Prevent compiler warnings about unhandled conditions? Not sure about that one.
> in the function schedule() you always use this syntax: > > ----- > if (a_condition) > goto bebe; > bebe_back > > > bebe: > do_bebe(); > goto bebe_back; > ------ > why not just doing: > > if (a_condition) > do_bebe();
Probably because the compiler puts out
setup function parameter one setup function parameter two setup function parameter three check condition call function setup function parameter one setup function parameter two setup function parameter three check condition call function
for your case and the above convolutions puts out
check condition jump to call if needed check condition jump to call if needed
instead.
Or even if the compiler puts out
check condition If condition setup function parameter one setup function parameter two setup function parameter three call function check condition if condition setup function parameter one setup function parameter two setup function parameter three call function
I'm betting the smaller code above is better for cache hits, right?
But these are my guesses. Anyone want to clarify?
..Stu
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |