On 18/03/16(Fri) 13:04, Theo de Raadt wrote:
> > So I'm skeptical about this BFS scheduler. Don't get me wrong; I do
> > think the scheduler needs attention. But I'm not sure a scheduler
> > designed for interactive desktop use is the best option for OpenBSD.
> > I'm willing to be proven wrong. But that means we need careful
> > benchmarking on a wide variety of workloads and hardware.
>
> I don't think this scheduler is making things better because of
> it's scheduling behaviour.
>
> I think the scheduling choices it makes are hiding a poor-performing
> artifact we have elsewhere.
I think the same thing. After reading your diff carefully I think that
it might be nice to split it in pieces to be able to see the effect of
each of them.
I saw the following interesting items, but there might be even more:
1. Each process gets the same deadline. So you basically don't have
priorities or did I misunderstood something?
2. In any case, the cost of the migration of a process calculated in
sched_proc_to_cpu_cost() and used via sched_choosecpu() no longer
take the priority of a process in account. But this might just be
an side-effect of 1.
3. You changed the semantic of roundrobin(). With your diff there's no
context switch every 100ms. There's now a context switch every time
a process has been has been "curproc" for ``rrticks'' long.
4. You are no longer making a difference between ``p_usrpri'' and
``p_priority'' there's only priority: ``p_deadline''.
4. You use only one runqueue.
5. You're using deadlines which means you don't have all these
complicated, different and possibly buggy logics to recalculate the
priority of a process.
Please correct me if I said anything wrong.