From: | "Bhosle, Mayur N" <mbhosle3@xxxxxxxxxx> |
Date: | Thu, 3 Jul 2008 01:07:40 -0400 (EDT) |
: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@backplane.com>
Attachment:
usched_pshare.c
Description: Binary data
Attachment:
sys.diff
Description: Binary data