Re: New schedule() and semaphore implementation ...

Andrea Arcangeli (andrea@suse.de)
Fri, 11 Jun 1999 18:05:59 +0200 (CEST)


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/