Hey Peter, On Mon, Dec 12, 2022 at 6:03 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > On Tue, Nov 29, 2022 at 10:23:13PM -1000, Tejun Heo wrote: > > From: Dan Schatzberg <dschatzberg@xxxxxxxx> > > > > Atropos is a multi-domain BPF / userspace hybrid scheduler where the BPF > > part does simple round robin in each domain and the userspace part > > calculates the load factor of each domain and tells the BPF part how to load > > balance the domains. > > > > This scheduler demonstrates dividing scheduling logic between BPF and > > userspace and using rust to build the userspace part. > > And here I am, speaking neither Rust nor BPF. > > But really, having seen some of this I long for the UMCG patches -- that > at least was somewhat sane and trivially composes, unlike all this > madness. I wasn't sure if you were focusing specifically on how the BPF portion is implemented, or on UMCG vs sched_ext. For the latter, and ignoring the specifics of this example, the UMCG and sched_ext work are complementary, but not mutually exclusive. UMCG is about driving cooperative scheduling within a particular application. UMCG does not have control over or react to external preemption, nor does it make thread placement decisions. sched_ext is considering things more at the system level: arbitrating fairness and preemption between processes, deciding when and where threads run, etc., and also being able to take application-specific hints if desired.