Messages in this thread | | | Date | Fri, 11 Jun 1999 18:05:59 +0200 (CEST) | From | Andrea Arcangeli <> | Subject | Re: New schedule() and semaphore implementation ... |
| |
On Fri, 11 Jun 1999, Davide Libenzi wrote:
>When at the end of a slot computation is executed this code: >... > /* Goodness promise has been maintained, we've found the President ! */ > if (c >= SLOT_GDS_BASE(ii)) > goto task_found; >... > >we are sure, having task in slot N maintained his "promise", that we can >skip out >with the right process for the previous definition.
Apologies, I overlooked your patch.
>I'll code a new version with linux lists.
I suggest also to search on the list a patch that avoids recalculating counters on all tasks. It allows you to recalculate the counters only on the runqueue. So you could run gds_remove_task();gds_add_task() unconditionally in gds_switch(). I suggest you also to move the slot-fields near the runqueue fields, so you may get them on the same cacheline while inserting/removing the task from the runqueue.
>Andrea having tasks doing for(;;); is not a common environment to test, >isn't it ?
It's not in the web case but it is the case when you have to do some real calculation (povray just for example).
Andrea Arcangeli
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |