Linus Torvalds lükkas ümber probleemid ülessaanide planeerijaga, mis tõusid esile jõudluse testis.

Mängude arendaja Malte Skarupke avalikustas blokeeringute jõudluse võrdluse põhjal Mutex ja Spinlock erinevate ülessaanide planeerijate kasutamisel. Testid näitasid anomaalselt suurenenud viivitusi Spinlocki kasutamisel Linuxi vaikimisi ülessaanide planeerijaga. Testide autor jõudis järeldusele, et Linuxi ülessaanide planeerijal on probleemid, mis mõjutavad negatiivselt Google Stadia teenuse jaoks loodud mängude tööd, kus mängud toimuvad GPU-l pilves ja kliendile edastatakse ekraanisisu voogedastuse kaudu kuni 60 kaadrit sekundis. Nõudlike tingimuste tõttu on oluline tagada kaadrile õigeaegne edastamine ning viivitused, mis ületavad millisekundi, muutuvad märgatavaks.

Testide arutelule liitus Linus Torvalds, kes nimetas neid prügiseks ("pure garbage") ja näiteks, kuidas on võimalik, mitte teema täielikult mõistmata, saavutada tulemusi, mis ei peegelda tegelikkust. Spinlock on madalat taset primitiiv, mida kasutajasfääris tuleks kasutada suure ettevaatlikkusega ja kõikvõimalike detailide läbi mõistmisega, vastasel juhul võib juhtuda, mida testide autor demonstreeris. Mängude arendajatele soovitas Linus mitte kasutada spinlocki ja mitte proovida luua oma lukustussüsteeme selle põhjal, vaid kasutada olemasolevaid usaldusväärseid mehhanisme, mis teavitavad süsteemi lukkude vabastamise ootusest, et vältida planeerija mõju.

Spinlock-põhiseid draivereid saab kasutada ainult siis, kui ollakse täiesti kindel, et planeerija ei katkesta nende täitmist. Testides kasutatud lukustusmehhanismid on realiseeritud kohandatud kihi kaudu, mis töötab kasutaja ruumis. Ülesannete planeerija võib igal juhul juhuslikult võtta üle kontrolli selle kihi täitmise ajal ja vahetada teise ülesande täitmiseks. Kuna jõudluse mõõtmine põhineb ajamõõturite absoluutsetel väärtustel, katab testide puhul mõõdetud viivitused mitte ainult lukustusmehhanismi töötlemise viivitusi, vaid ka koodi, mis on täidetud teises kontekstis, st mõõdab mitte ainult seda, mida testija üritas mõõta, vaid ka muu süsteemi arvutuste 'mürast' tulenevaid viivitusi.

Testi autor üritas vaidlema Linusele, osutades sellele, et kohandatud spinlock-põhiste lukustusmehhanismide kasutamine on praktikas tihti levinud, kuna lihtsamatel planeerijatel, kui Linuxis, näitavad testid kõrgemat jõudlust. Linus vastas, et Linuxi planeerija on universaalne, perfektsioneeritud aastakümnete jooksul ja optimeeritud mitte ainult töölauaks ja mängudeks, vaid ka teiste koormuste jaoks, näiteks serveri süsteemide jaoks, seega arvestab see ülesannete täitmise planeerimisel paljude nüanssidega.

Spetsiifiliste optimeerimiste lisamine, mis aitavad vähendada viivitusi Google Stadia mängudes, võib konkreetses olukorras parandada reageerimisvõimet, kuid tõenäoliselt vähendab see planeerija tõhusust kogu tervikuna. Näiteks toimib Windowsi planeerija arutatud testides paremini, kuna see on oluliselt lihtsam kui Linuxi planeerija ja on peamiselt optimeeritud töölaudadele spetsiifilistele ülesannetele.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster