Scheduler & semaphore patch for 2.2.14 ...

From: Davide Libenzi (dlibenzi@maticad.it)
Date: Fri Jan 21 2000 - 21:17:01 EST


Hi guys,

here's the patch coded for 2.2.14.
It contains :

* 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.

I don't know if this patch will be usefull or not, the thing the is true is that
it reduces scheduling times on high loaded runqueues, and that can speed up
process wakeup in long waitqueue.

I hope someone having a better suite than mine, should test the patch
reporting me ( and others ) own impressions and measurements.

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 : Sun Jan 23 2000 - 21:00:26 EST