From: Davide L. <da...@xm...> - 2001-01-22 18:38:34
|
On Monday 22 January 2001 10:30, Mike Kravetz wrote: > Last week while discussing scheduler benchmarks, Bill Hartner > made a comment something like the following "the benchmark may > not even be invoking the scheduler as you expect". This comment > did not fully sink in until this weekend when I started thinking > about changes made to sched_yield() in 2.4.0. (I'm cc'ing Ingo > Molnar because I think he was involved in the changes). If you > haven't taken a look at sys_sched_yield() in 2.4.0, I suggest > that you do that now. > > A result of new optimizations made to sys_sched_yield() is that > calling sched_yield() does not result in a 'reschedule' if there > are no tasks waiting for CPU resources. Therefore, I would claim > that running 'scheduler benchmarks' which loop doing sched_yield() > seem to have little meaning/value for runs where the number of > looping tasks is less than then number of CPUs in the system. Is > that an accurate statement? With this kind of test tasks are always running. If You print the nr_running You'll find that this is exactly ( at least ) the number of tasks You've spawned so the scheduler is always called. - Davide |