Vývojář her Malte Skarupke srovnání výkonnosti zámků založených na a při používání různých plánovačů úloh. Testy ukázaly abnormálně velké zpoždění při používání Spinlock s plánovačem úloh používaným ve výchozím nastavení v Linuxu. Autor testů dospěl k závěru, že plánovač úloh v Linuxu má problémy, které negativně ovlivňují výkon her vyvíjených pro službu Google Stadia, kde se hry vykonávají na GPU v cloudovém prostředí a klientovi se pouze streamuje obsah obrazovky až při 60 snímcích za sekundu. V těchto podmínkách je nutné zajistit včasný výstup snímků na obrazovku a zpoždění přesahující milisekundu jsou patrná.
K diskusi o testech Linus Torvalds, který je nazval odpadem („pure garbage“) a příkladem toho, jak mohou být získány výkonnostní ukazatele, které neodrážejí skutečnost, aniž by se téma důkladně prozkoumalo. Spinlock je nízkoúrovňový primitiv, který by měl být používán v uživatelském prostoru s velkou opatrností a s plným porozuměním detailům, jinak lze dosáhnout toho, co demonstroval autor testu. Vývojářům her Linus doporučil, aby se vyhýbali použití spinlocku a nesnažili se vytvářet vlastní blokovací systémy na jeho základě, ale používali existující osvědčené mechanismy, které informují systém o čekání na uvolnění zámku, aby se vyloučil dopad plánovače.
Nadstavby založené na Spinlocku lze používat pouze s plnou jistotou, že plánovač nepřeruší jejich vykonávání. V testech použité zámky založené na spinlocku jsou realizovány prostřednictvím domácí obálky pracující v uživatelském prostoru. Plánovač úloh může kdykoli náhodně převzít kontrolu během vykonávání této obálky a přepnout se na vykonávání jiného úkolu. Protože měření výkonnosti je prováděno na základě absolutních hodnot časovače, určité zpoždění v testech zahrnuje nejen zpoždění ve zpracování zámku, ale také kód, který byl vykonán v jiném kontextu, tj. měří nejen to, co se autor testu snažil změřit, ale také „šum“ z dalších výpočtů v systému.
Autor testu oponovat Linusu s tím, že používání vlastních blokovacích systémů založených na spinlocku je v praxi často používáno ve hrách, protože při použití jednodušších plánovačů než v Linuxu ukazují testy vyšší výkon. Linus , že plánovač Linuxu je univerzální, zdokonaloval se po desetiletí a je optimalizován nejen pro desktop a hry, ale i pro jiné typy zátěže, jako jsou serverové systémy, proto zohledňuje mnoho nuancí při plánování vykonávání úloh.
Přidání specifických optimalizací, které sníží latenci ve hrách Google Stadia, může zvýšit citlivost v konkrétním případě, ale pravděpodobně povede ke snížení efektivity plánovače jako celku. Například plánovač Windows se v diskutovaných testech chová lépe, protože je výrazně jednodušší než plánovač Linuxu a je optimalizován převážně pro úkoly specifické pro desktop.
Zdroj: opennet.ru
