Linus Torvalds mohoi problemet me planifikuesin e detyrave që dolën në provimin e performancës

Zhvilluesi i lojërave Malte Skarupke publikoi krahasimi i performancës së bllokimeve të bazuara në Mutex dhe Spinlock me përdorimin e planifikuesve të ndryshëm të detyrave. Testet treguan vonesa anomalisht të mëdha kur përdorej Spinlock me planifikuesin e detyrave që përdoret si parazgjedhje në Linux. Autori i testeve arriti në përfundimin se planifikuesi i detyrave në Linux ka probleme që ndikojnë negativisht në performancën e lojërave të zhvilluara për shërbimin Google Stadia, ku lojërat ekzekutohen në GPU në ambientin e mjegullt, dhe për klientin transmetohet vetëm përmbajtja e ekranit me një frekuencë prej deri në 60 kadra në sekondë. Nën këto kushte, është e nevojshme të sigurohet çdoherë transmetimi në kohë të kadreve në ekran dhe vonesat që tejkalojnë një milisekondë bëhen të dukshme.

Për të diskutuar testet u bashkua Linus Torvalds, i cili i cilësoi ato si plehra («pure garbage») dhe si një shembull se si mund të arrish, pa e kuptuar plotësisht temën, parametra që nuk përfaqësojnë realitetin. Spinlock është një primitiv i nivelit të ulët, i cili duhet të përdoret me shumë kujdes në hapësirën e përdoruesit dhe duke e kuptuar plotësisht detajet, përndryshe mund të përfitoni diçka që u demonstruar nga autori i testit. Linus u këshilloi zhvilluesve të lojërave të mos përdorin spinlock dhe të mos përpiqen të ndërtuan sisteme të veta bllokimi mbi këtë bazë, por të përdorin mekanizmat ekzistues të provuar, që informojnë sistemin për pritjen e lirimit të bllokimit për të shmangur ndikimin e planifikuesit.

Надстройки на базе Spinlock же можно использовать только при полной уверенности, что планировщик не прервёт их выполнение. Применяемые в тестах блокировки на основе spinlock реализованы через самодельную обвязку, работающую в пространстве пользователя. Планировщик задач может в любой случайный момент забрать управление во время выполнения этой обвязки и переключиться на выполнение другой задачи. Так как измерение производительности выполняется на основании абсолютных значений таймера, определённые в тестах задержки охватывают не только задержки в обработчике блокировки, но и код, который был выполнен в другом контексте, т.е. измеряют не только то, что пытался измерить автор теста, но и «шум» от других вычислений в системе.

Автор теста u përpoq возразить Линусу, указав на то, что применение собственных систем блокировки на базе spinlock часто используется на практике в играх, так как при использовании более простых планировщиков, чем в Linux, тесты показывают более высокую производительность. Линус возразил, që planifikuesi Linux është universale, është rafinuar për dekada dhe është optimizuar jo vetëm për desktop dhe lojëra, por edhe për lloje të tjera ngarkese, si sistemet server, prandaj merr parasysh shumë nuanca gjatë planifikimit të ekzekutimit të detyrave.

Shtimi i optimizimeve specifike që do të lejojnë të reduktohen vonesat në lojërat Google Stadia mund të rrisë reagimin në një rast të caktuar, por me sa duket do të sjellë një ulje të efikasitetit të planifikuesit në tërësi. Për shembull, planifikuesi Windows sillet më mirë në testet e diskutueshme, pasi është ndjeshëm më i thjeshtë se planifikuesi Linux dhe është optimizuar kryesisht për detyra specifike të desktopit.

Burimi: opennet.ru

Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë 🔥 Bli një hosting të besueshëm për faqet me mbrojtje DDoS, VPS VDS serverë | ProHoster