Timothy Miller wrote:
> <snip>
In fact, that may be the only "flaw" in your design. It sounds like your scheduler does an excellent job at fairness with very low overhead. The only problem with it is that it doesn't determine priority dynamically.
This (i.e. automatic renicing of specified programs) is a good idea but is not really a function that should be undertaken by the scheduler itself. Two possible solutions spring to mind:
1. modify the do_execve() in fs/exec.c to renice tasks when they execute specified binaries
2. have a user space daemon poll running tasks periodically and renice them if they are running specified binaries
Both of these solutions have their advantages and disadvantages, are (obviously) complicated than I've made them sound and would require a great deal of care to be taken during their implementation. However, I think that they are both doable. My personal preference would be for the in kernel solution on the grounds of efficiency.