Zestaw łatek z prośbą o komentarze, opublikowanych dzisiaj na liście mailingowej jądra Linuksa, implementuje obsługę zasad harmonogramu procesora, które mają być zaimplementowane jako programy (e)BPF.
Jądro Linuksa było świadkiem ciągłego przyjmowania (e)BPF w różnych obszarach jądra. Jednym z nadchodzących dodatków eBPF jest obsługa eBPF w podsystemie HID w celu lepszego radzenia sobie z dziwacznym sprzętem w krótszym czasie i, miejmy nadzieję, doprowadzenia do mniejszej rotacji sterowników.
Tejun Heo ogłosił dzisiaj pracę harmonogramu eBPF jako część pracy jego i kilku innych programistów jądra. Uważa się, że obsługa eBPF dla harmonogramu jądra Linuksa może ułatwić eksperymentowanie i eksplorację nowych zasad planowania, umożliwić harmonogramy specyficzne dla aplikacji i inne konfigurowalne opcje poprzez ładowanie niestandardowych programów BPF oraz zapewnić niezakłócający sposób zmiany zasady planowania w środowiskach produkcyjnych.
Inżynierowie z firm Google i Meta (Facebook) stoją za tą inicjatywą. Podsumowując dzisiejszą serię poprawek RFC:
„Zarówno Meta, jak i Google w ciągu ostatnich kilku lat sporo eksperymentowały z harmonogramami. Google porównał różne obciążenia przy użyciu planowania przestrzeni użytkownika i osiągnął wzrost wydajności dzięki wymianie poza ogólnością dla specyficznych potrzeb aplikacji. W firmie Meta nie wdrożyliśmy jeszcze sched_ext w żadnym obciążeniu produkcyjnym, chociaż nasze wstępne eksperymenty wskazują, że sched_ext przy wdrożeniu na dużą skalę zapewni znaczny wzrost wydajności. Jeśli pomyślnie upstream, spodziewamy się, że wykorzystamy go w szerokim zakresie do uruchamiania różnych eksperymentów i opracowują dostosowane harmonogramy dla szeregu krytycznych obciążeń.
Na zakończenie zarówno Meta, jak i Google wierzą, że sched_ext znacznie zmieni sposób, w jaki szersza społeczność bada przestrzeń problemów związanych z planowaniem, umożliwiając ciągłe doskonalenie harmonogramu w jądrze, podczas gdy włączając również ukierunkowane zasady dla niestandardowych aplikacji. Będziemy mogli łatwiej i szybciej eksperymentować er, eksploruj niezbadane obszary i wdrażaj awaryjne zmiany w harmonogramie, gdy to konieczne. To samo dotyczy każdego, kto chce pracować na harmonogramie, w tym środowisk akademickich i branż specjalistycznych. sched_ext przyspieszy stan techniki, jeśli chodzi o planowanie i wydajność w Linuksie.”
W ramach dzisiejszych poprawek, oprócz pracy nad infrastrukturą harmonogramu eBPF, istnieje przykładowy harmonogram, który pokazuje większość decyzji dotyczących planowania odroczonych do przestrzeni użytkownika. Innym demonstracyjnym harmonogramem jest podejście hybrydowe, w którym decyzje dotyczące równoważenia obciążenia są podejmowane w przestrzeni użytkownika, a kod jest napisany w języku programowania Rust.
Więcej szczegółów na temat tej bardzo interesującej propozycji można znaleźć pod adresem seria poprawek RFC.