Proportional share scheduler

Bhosle, Mayur N mbhosle3 at gatech.edu
Wed Jul 2 22:14:45 PDT 2008


:Hi all,
:          I have implemented a O(1) proportional share userland scheduler, it is based on Virtual-Time Round Robin (VTRR)Algorithm. I modified the implementation to make it O(1) for SMP. Some of the important points related to the implementation are as follows:
:
:1. Instead of single run queue in case of current scheduler, i have separate run queues per processor.  
:...
:1. How do you guys test performance of the current scheduler, are there any standard benchmarks that i should run to give a fair comparison of the two schedulers.
:2. I have to design Command Line interface for this scheduler so that you can specify the share at the time of executing the command. I need some suggestions on this. If you can tell some of the possible commands that you would like to have, that would be helpful. for example
:
:     "pshare -s 20 top" : this command will assign 20% cpu to top.
:
:    Currently using the nice command does affect the share of the process.
:3. Any general suggestions that will make this scheduler good enough to be a part of code base would be really helpful.
:
:    Looking forward to your replies.
:
:Thanks
:Mayur

    This sounds pretty cool.  I didn't see any references to the code,
    could you make it available?  

    From your description I take it you just used the pluggable scheduler
    API which means we should be able to commit it without worrying too
    much about any potential destabilization of the system.  That will
    expose it to a wider group of people for testing.

   Yes you are correct, I have just modified the API code and didnt chanage any the scheduler overall structure. Basically i have implemented a new algorithm without affecting how the scheduler works.

    Performance is always in the eye of the beholder when it comes to
    schedulers.  More important is seeing how well it scales when there
    are many threads running in the system, and how well unrelated
    interactive performance fares in the face of many threads running in
    the system.

I am attaching two files 
1. sys.diff : cvs diff done on /sys folder.
2. usched_pshare.c : the scheduler.

   For testing, i havent added any cli for this scheduler, but the since nice command works you can change the share of the process. 
   Additionally, the when you run a ps -l or top command the value seen in the "PRI" column is actually the share value of the process.
   I would appreciate if anyone has suggestion regarding the cli for this scheduler. Thanks

   Looking forward to any replies.

Mayur
College of Computing
Mayur
					-Matt
					Matthew Dillon 
					<dillon at backplane.com>



Attachment:
usched_pshare.c
Description: Binary data
Attachment:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00001.bin
Type: application/octet-stream
Size: 7365 bytes
Desc: "Description: Binary data"
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20080702/82314a07/attachment-0032.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00000.bin
Type: application/octet-stream
Size: 34871 bytes
Desc: "sys.diff"
URL: <http://lists.dragonflybsd.org/pipermail/kernel/attachments/20080702/82314a07/attachment-0033.bin>


More information about the Kernel mailing list