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.