Auto-Adaptive scheduler and semaphore patch ( 2.2.14 ) ...

From: Davide Libenzi (dlibenzi@maticad.it)
Date: Mon Jan 24 2000 - 17:08:52 EST


Hi guys,

this is the first version of the auto-adaptive scheduler whose
target is to maintain the same performance under low workloads
and boosts under high ones.
It uses the linear-scheduler ( current one ) implementation for low workloads
and switch to the cluster-scheduler under high workloads.
The cluster-scheduler boot at an entry point and after a delay time that can be
made software adjustable ( proc fs as an example ).

The patch also contain :

<OLDDESC>
* A clustering subdivision of processes in function of their goodness
 This avoid the linear scan of the running queue to find the
 next process to run.
 My test prove that even in high workloaded environment
 not more than two goodnesses are calculated.

* As IBM guys suggested I've reorganized a bit the fields in task_struct
 to reduce the cache footprint

* A wake_up patch that has the goodness calculation inside it.
 This avoid flushing all waiting threads onto the scheduler
 shoulders.
 IMVHO this is better than the current because avoid the thread
 flushing, and is better then a simple FIFO coz it try to select the
 best taks to run.
 This is 100% precise in UP while it's not in SMP due to the fact
 that we don't know which CPU will reschedule the task.
 Anyway even if in SMP the precision is not 100%, it's better
 than FIFO.

</OLDDESC>

I'm just setting up an lmbench for this patch and I'll post results
as long as a doc describing the patch, as soon as test is completed
( and doc too ).

I'll be happy if other guys will give it a try ;)

Davide.

-- 
All this stuff is IMVHO


- 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/



This archive was generated by hypermail 2b29 : Mon Jan 31 2000 - 21:00:13 EST