„Snapdragon Samsung Galaxy S9“ turi GPU stabilumo klaidą, kurią galima išnaudoti norint suaktyvinti nuotolinį perkrovimą

„Samsung Galaxy S9“ ir „Galaxy S9+“ buvo pristatyti keliose rinkose, įskaitant JAV, Honkongą ir kai kurias Lotynų Amerikos dalis, naudojant „Qualcomm Snapdragon 845“ lustą. JK įmonė „GraphicsFuzz“ atrado GPU stabilumo klaidą, kurią galima panaudoti norint suaktyvinti nuotolinį telefono paleidimą / gedimą.

Nauja Samsung Galaxy S9 apima naujausią Qualcomm Snapdragon 845 sistemos mikroschemą kelioms rinkoms, įskaitant Honkongą, JAV, Kanadą ir kai kurias Lotynų Amerikos dalis. Kai kuriose rinkose „Samsung“ dažnai renkasi naujausią flagmaną „Qualcomm Snapdragon SoC“, o ne savo „Exynos SoC“. Paprastai taip yra JAV, išskyrus „Samsung Galaxy S6“. Paprastam vartotojui mažai skiriasi „Exynos 9810“ ir „Snapdragon 845“ variantai. Tačiau po gaubtu lustų rinkinių skirtumai gali sukelti labai skirtingą patirtį.

Anandtech„Snapdragon Galaxy S9“ ir „Exynos Galaxy S9“ apžvalga atskleidė ryškius veikimo skirtumus ir baterijos veikimo laikas tarp dviejų modelių, o „Snapdragon“ modelis lengvai lenkia „Exynos“ modelį. Pasak Jungtinėje Karalystėje įsikūrusios bendrovės, naudojant šiuos du labai skirtingus mikroschemų rinkinius, našumo skirtumas šį kartą nėra vienintelis rūpestis.

GrafikaFuzz. GrafikaFuzz yra pradedančioji įmonė, kuri specializuojasi GPU patikimumo įrenginiuose testavimu. Jie kuria testus, siekdami ieškoti grafikos tvarkyklių klaidų, ir siūlo pagalbą diagnozuojant pagrindines bet kokių aptiktų problemų priežastis. Pavyzdžiui, komanda aptiko saugumo problemą turi įtakos „Samsung Galaxy S6“ ARM tvarkyklei, už kurią „Google“ jiems skyrė laisvą premiją. Bandydami „Snapdragon Samsung Galaxy S9“, GrafikaFuzz Adreno 630 grafikos tvarkyklėje rado klaidą, leidžiančią tai padaryti suaktyvinkite viso telefono paleidimą iš naujo per galiojantį „WebGL“ interneto puslapį, kai naršote naudodami „Samsung“ interneto naršyklę.

Visų pirma, Adreno 630 klaida pateikia sudėtingą, tačiau galiojantį šešėlį, kurį galima išnaudoti, kad įrenginys sustingtų ir galiausiai būtų paleistas iš naujo. Shader yra tiesiog programa, leidžianti GPU pateikti vaizdą. GrafikaFuzz nesukūrė „WebGL“ puslapio turėdamas piktų ketinimų, kad suaktyvintų šią klaidą, o vietoj to teigė, kad ji buvo atsitiktinai aptikta atliekant standartinius įrenginių GPU stabilumo bandymus. Kai jie sužinojo, kad šią nuotolinę avariją galima atkurti, bendrovė susisiekė su ja XDA kūrėjai palengvinti atskleidimo procesą tiek su „Qualcomm“, tiek „Samsung“.

„WebGL“ avarijos atkūrimas „Snapdragon Samsung Galaxy S9“.

Prieš susisiekdami su bet kurios įmonės atstovais, patvirtinome GrafikaFuzzišvados mūsų pačių įrenginyje. GrafikaFuzz sukūrėme specialų tinklalapį, kuriame galėtume išbandyti, ir pasirinkome 5 populiariausias interneto naršykles Google Play parduotuvėje, kad pamatytume, kas nutiks. Žemiau esančioje lentelėje parodytas sudėtingo atspalvio atvaizdavimo poveikis 5 skirtingose ​​žiniatinklio naršyklėse.

Išbandytas įrenginys: „Qualcomm Snapdragon 845 Samsung Galaxy S9+“ (SM-G965U)

Operacinė sistema: Android 8.0.0 Oreo SM-G965U

Interneto naršyklė

Rezultatas

Google Chrome v65.0.3325.109

Užšąla tik ~2 sekundes

Samsung Internet v7.0.10.46

Užšąla, tada galiausiai suaktyvinamas visiškas paleidimas iš naujo

Opera v45.1.2246.125351

Sušąla telefonas

Microsoft Edge v1.0.0.1726

Sustingsta tik ~3 sekundes

Firefox v59.0.2

Naršyklė sugenda

„Google Chrome“ ir „Microsoft Edge“ kelioms sekundėms užšaldys telefoną ir sugeneruos „WebGL“ klaidą, tačiau įrenginys galiausiai bus gerai. GrafikaFuzz pranešė mums, kad jau kurį laiką diskutavo su „Google Chrome“ komanda ir sužinojo kad „Chrome“ įdiegtas mechanizmas, kuris baigia GPU procesą po nustatyto laiko, kad telefonas nebūtų pilnas avarija. „Opera“ užšaldo telefoną, bet nesukelia perkrovimo. Pati „Firefox“ programa sugenda, bet telefonas veikia gerai. Galiausiai, prisijungus prie puslapio per „Samsung“ internetą, telefonas sulėtėja iki aptikimo, prieš pradėdamas visą telefono paleidimą iš naujo.

Čia yra avarijos vaizdo įrašas:

Išsamus klaidos paaiškinimas

GrafikaFuzz atliko išsamesnį tyrimą, kuris rodo, kad problema, dėl kurios telefonas paleidžiamas iš naujo, yra GPU tvarkyklėje, skirta „Qualcomm Adreno 630“, kuri yra „Qualcomm Snapdragon 845“ dalis sistema-lustas. GrafikaFuzz surinko avarijos žurnalą, kurį įdėjome žemiau. Norėdami trumpai apibendrinti, kas vyksta, kai telefonas pateikia sudėtingą atspalvį, GPU nustatomi kažkas vadinama "tvora". Tvora naudojama prieigai prie bendros atminties tarp procesoriaus organizuoti ir GPU. Mobilusis GPU, skirtingai nei stalinis kompiuteris, turi prieigą prie tos pačios RAM kaip ir centrinis procesorius, todėl kai žaidžiamas žaidimas ar atvaizduojamas kažkas kitas, jis naudoja tvorą, kad pasiektų tą bendrą atmintį. Įrenginyje, kuriame yra atskira grafika, pats GPU turi savo atmintį. Visi dabartiniai mobilieji telefonai dalijasi vaizdo atmintimi ir laisvosios kreipties atmintimi su RAM „flash“ atmintimi. Problema ta, kad tvora negali užbaigti, o tai sukelia branduolio paniką ir priverčia telefoną paleisti iš naujo.

Užbaikite branduolio paniką prieš paleisdami iš naujo

[12681.035590] [2:crtc_commit: 117: 433] kgsl kgsl-3d0: |a6xx_snapshot_gmu| set FENCE toALLOWmode:0
[12681.035839] [2:crtc_commit: 117: 433] kgsl kgsl-3d0: |kgsl_device_snapshot| snapshot created at pa 0x000000016e500000 size 927400
[12681.035993] [0: kworker/u16:5:27740] kgsl kgsl-3d0: |kgsl_snapshot_save_frozen_<wbr />objs| kgsl_snapshot_save_frozen_objs start
[12681.036085][2:crtc_commit: 117: 433]Kernelpanic-notsyncing: !!!FENCETIMEOUT
[12681.036156][2:crtc_commit: 117: 433]CPU: 2 PID: 433 Comm: crtc_commit:117Tainted: GW 4.9.65-13087505#1
[12681.036248][2:crtc_commit: 117: 433]Hardwarename: SamsungSTARQLTEPROJECTRev14 (DT)
[12681.036319][2:crtc_commit: 117: 433]Calltrace:
[12681.036368] [2:crtc_commit: 117: 433] [] dump_backtrace+0x0/0x248
[12681.036438] [2:crtc_commit: 117: 433] [] show_stack+0x18/0x28
[12681.036509] [2:crtc_commit: 117: 433] [] dump_stack+0x98/0xc0
[12681.036578] [2:crtc_commit: 117: 433] [] panic+0x1e0/0x44c
[12681.036646] [2:crtc_commit:117: 433] [] sde_plane_wait_input_fence+<wbr />0x174/0x28c
[12681.036727] [2:crtc_commit:117: 433] [] sde_crtc_atomic_flush+0x1c4/<wbr />0x5e8
[12681.036807] [2:crtc_commit: 117: 433] [] drm_atomic_helper_commit_<wbr />planes+0x19c/0x1fc
[12681.036891] [2:crtc_commit: 117: 433] [] complete_commit+0x74/0x6a4
[12681.036960] [2:crtc_commit:117: 433] [] _msm_drm_commit_work_cb+0x48/<wbr />0x1c4
[12681.037038] [2:crtc_commit: 117: 433] [] kthread_worker_fn+0x78/0x194
[12681.037108] [2:crtc_commit: 117: 433] [] kthread+0xd8/0xf0
[12681.037172] [2:crtc_commit: 117: 433] [] ret_from_fork+0x10/0x20
[12681.037239][2:crtc_commit: 117: 433]Kernelloadedat: 0x800a0000, offsetfromcompile-timeaddress 20000
[12681.037331][2:crtc_commit: 117: 433]SMP: stoppingsecondaryCPUs

Skaityti daugiau

GrafikaFuzz mano, kad priežastis, dėl kurios ši problema iškyla tik „Samsung“ interneto naršyklėje, yra GPU stebėjimo priemonė. Kartais GPU gali kabėti ant ilgai veikiančių atspalvių, tokiu atveju naršyklė arba OS paprastai turi GPU stebėjimo funkciją, kuri priverstinai iš naujo paleidžia nereaguojančią grafikos tvarkyklę. The GrafikaFuzz Test Shader turi keletą ciklų, dėl kurių atvaizdavimas gali užtrukti ilgiau, tačiau jis vis tiek yra tinkamas atspalvis. Keletas kitų įrenginių, įskaitant „Exynos 9810 Samsung Galaxy S9“ su „Mali-G72 GPU“, sugeba pateikti šį atspalvį. Taigi komanda prie GrafikaFuzz padarė išvadą, kad ši klaida įvyksta dėl sugedusios Adreno 630 GPU tvarkyklės.

„Google Pixel 2 XL“ su „Qualcomm Snapdragon 835“ Adreno 540 GPU, kuriame veikia ta pati „Samsung“ interneto naršyklės versija, sulėtėja iki aptikimo gerai – tai reiškia, kad ši klaida gali kilti dėl to, kad Qualcomm GPU tvarkyklė atvaizduoja šešėlį, o „Samsung Browser watchdog“ nesibaigia paslauga.

Tikimės, kad „Qualcomm“ galės diagnozuoti pagrindinę GPU tvarkyklės problemą, dėl kurios paleidžiama iš naujo, ir netrukus „Samsung“ pateikti fiksuotą tvarkyklę. Žinoma, gali praeiti šiek tiek laiko, kol šis naujinimas bus paskelbtas galutiniams vartotojams. Tuo tarpu tikimės, kad „Samsung“ atnaujins „Samsung“ interneto naršyklę, kad sušvelnintų problemą (bent jau neleidžiant ja pasinaudoti tinklalapyje), atitinkančią „Google“ elgesį Chrome. Nors žinoma, kad ši problema turi įtakos Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, ji taip pat gali turėti įtakos daugiau įrenginių su Snapdragon 845.

Jei norite išbandyti savo mobiliojo ar stalinio įrenginio GPU patikimumą, komanda adresu GrafikaFuzz sukūrė žiniatinklio programos demonstraciją, leidžiančią įrenginyje paleisti kai kuriuos galiojančius šešėliuotojus. Tą tinklalapį galite pasiekti naudodami sekant šią nuorodą.

Atskleidimo laiko juosta

  • 2018 m. kovo 28 d: GrafikaFuzz ištiesė ranką XDA kūrėjai informuoja mus apie problemą. XDA kūrėjai pakartojo problemą mūsų pačių „Samsung Galaxy S9+“ (SM-G965U).
  • 2018 m. kovo 29 d: GrafikaFuzz susisiekė su daugiau informacijos ir sukūrė specialius tinklalapius, skirtus Qualcomm ir Samsung darbuotojams, kad būtų galima atkurti klaidą
  • 2018 m. kovo 30 d: XDA kūrėjai susisiekė su „Samsung“ ir „Qualcomm“ pateikdami visą ataskaitos informaciją. Mūsų „Qualcomm“ kontaktas susisiekė su mumis ir patvirtino, kad mūsų pranešimas buvo gautas.
  • 2018 m. balandžio 2 d: Mūsų „Samsung“ kontaktas susisiekė su mumis ir patvirtino, kad mūsų pranešimas buvo gautas.
  • 2018 m. balandžio 4 d: Mūsų „Samsung“ kontaktas rekomendavo pateikti ataskaitą „Samsung“. Saugumo ataskaitos puslapį. XDA kūrėjai pateikė ataskaitą, o ataskaitai buvo paskirtas Samsung inžinierius.