Linus Torvalds har afvist problemer med opgaveplanlæggeren, der blev rejst under en ydeevnetest

Spiludvikler Malte Skarupke udgav sammenligning af præstationen af låse baseret på Mutex og Spinlock ved brug af forskellige opgaveplanlæggere. Testene viste abnormt store forsinkelser ved brug af Spinlock med den standardopgaveplanlægger, der anvendes i Linux. Testens forfatter konkluderede, at Linux-opgaveplanlæggeren har problemer, der negativt påvirker spil, der er udviklet til Google Stadia-service, hvor spil køres på GPU i et cloud-miljø, og klienten kun modtager en streamet overførsel af skærminhold med op til 60 billeder pr. sekund. Under sådanne omstændigheder er det nødvendigt at sikre en rettidig fremvisning af billeder på skærmen, og forsinkelser, der overstiger et millisekund, bliver mærkbare.

Til diskussion af testene blev tilsluttet Linus Torvalds, der kaldte dem skrald ("pure garbage") og et eksempel på, hvordan man uden at forstå emnet kan opnå målinger, der ikke afspejler den virkelige virkelighed. Spinlock er en lavniveau-primitiv, der skal bruges med stor forsigtighed i brugerrummet og med fuld forståelse af detaljerne, ellers kan man ende med det, som testens forfatter demonstrerede. Linus tilrådede spiludviklerne ikke at anvende spinlock og ikke forsøge at skabe egne låsesystemer baseret på det, men at bruge eksisterende, velafprøvede mekanismer, der informerer systemet om ventning på at låsen bliver frigivet for at undgå indflydelse fra planlæggeren.

Udvidelser baseret på Spinlock kan kun bruges, når man er helt sikker på, at planlæggeren ikke afbryder deres udførelse. De anvendte låse baseret på spinlock i testene er implementeret gennem en hjemmelavet indpakning, der arbejder i brugerrummet. Opgaveplanlæggere kan i enhver tilfældig situation tage kontrol under udførelsen af denne indpakning og skifte til udførelsen af en anden opgave. Da måling af ydeevne udføres på grundlag af absolutte værdier af en timer, dækker de bestemte forsinkelser i testene ikke kun forsinkelser i låsehandleren, men også kode, der er blevet udført i en anden kontekst, dvs. de måler ikke kun det, testens forfatter forsøgte at måle, men også "støj" fra andre beregninger i systemet.

Testens forfatter forsøgte at an argument with Linus by pointing out that the use of proprietary blocking systems based on spinlock is often employed in practice within games, as tests show higher performance when using simpler schedulers than in Linux. Linus argued, that the Linux scheduler is universal, refined over decades and optimized not only for desktops and games but also for various other types of loads, such as server systems, thus accounting for numerous nuances in task execution planning.

Adding specific optimizations that can reduce latency in Google Stadia games might improve responsiveness in certain cases, but it will most likely lead to a decrease in overall scheduler efficiency. For instance, the Windows scheduler performs better in the discussed tests as it is significantly simpler than the Linux scheduler and mainly optimized for desktop-specific tasks.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster