Samsung Galaxy S9 ja Galaxy S9+ toodi turule mitmel turul, sealhulgas USA-s, Hongkongis ja Ladina-Ameerika osades, kasutades Qualcomm Snapdragon 845 süsteemset kiipi. Ühendkuningriigi ettevõte GraphicsFuzz avastas GPU stabiilsusvea, mida saab ära kasutada telefoni kaugkäivitamise/krahhi käivitamiseks.
Uus Samsung Galaxy S9 sisaldab uusimat Qualcomm Snapdragon 845 süsteemset kiipi mitmele turule, sealhulgas Hongkongile, Ameerika Ühendriikidele, Kanadale ja mõnele Ladina-Ameerikale. Samsung on mõnel turul sageli valinud oma ettevõttesisese Exynose SoC asemel uusima lipulaeva Qualcomm Snapdragon SoC. Tavaliselt on see nii Ameerika Ühendriikides, välja arvatud Samsung Galaxy S6. Tavatarbija jaoks on Exynos 9810 ja Snapdragon 845 variantide vahel vähe erinevusi. Kapoti all võib aga kiibikomplektide erinevus kaasa tuua metsikult erinevaid kogemusi.
AnandtechSnapdragon Galaxy S9 ja Exynos Galaxy S9 ülevaade näitas jõudluses suuri erinevusi ja aku kestvus kahe mudeli vahel, Snapdragon mudel ületab kergesti Exynose mudelit. Ühendkuningriigis asuva ettevõtte sõnul ei tundu nende kahe tohutult erineva kiibistiku puhul erinevus jõudluses seekord ainus probleem.
GraafikaFuzz. GraafikaFuzz on idufirma, mis on spetsialiseerunud seadmetes GPU töökindluse testimisele. Nad töötavad välja teste, et otsida vigu graafikadraiverites ja pakkuda abi avastatud probleemide algpõhjuste diagnoosimisel. Näiteks avastas meeskond turvaprobleemi mõjutab Samsung Galaxy S6 ARM-draiverit, mille eest Google andis neile vearaha. Snapdragon Samsung Galaxy S9 testimise ajal GraafikaFuzz leidis Adreno 630 graafikadraiveris vea, mis võimaldab neil seda teha käivitab kogu telefoni taaskäivituse kehtiva WebGL-i Interneti-lehe kaudu, kui sirvite Samsungi Interneti-brauseriga.Eelkõige on viga Adreno 630 keeruka, kuid kehtiva varjundi renderdamisel, mida saab ära kasutada seadme külmutamiseks ja lõpuks taaskäivitamiseks. Shader on lihtsalt programm, mis võimaldab GPU-l pilti renderdada. GraafikaFuzz ei kujundanud WebGL-i lehte pahatahtliku kavatsusega selle vea käivitamiseks, vaid väitsid, et see avastati juhuslikult seadmete GPU stabiilsuse standardse testimise käigus. Kui nad avastasid, et seda kaugõnnetust saab korrata, võttis ettevõte ühendust XDA-arendajad et hõlbustada avalikustamisprotsessi nii Qualcommi kui ka Samsungiga.
WebGL-i krahhi reprodutseerimine seadmes Snapdragon Samsung Galaxy S9
Enne kui pöördusime kummagi ettevõtte esindajatega, kinnitasime GraafikaFuzzleiud meie enda seadmes. GraafikaFuzz loosime testimiseks spetsiaalse veebilehe ja valisime Google Play poest 5 kõige populaarsemat Interneti-brauserit, et näha, mis juhtuma hakkab. Allolev tabel näitab kompleksse varjundi renderdamise mõju viiele erinevale veebibrauserile.
Testitud seade: Qualcomm Snapdragon 845 Samsung Galaxy S9+ (SM-G965U)
Operatsioonisüsteem: Android 8.0.0 Oreo SM-G965U
Veebibrauseris |
Tulemus |
---|---|
Google Chrome v65.0.3325.109 |
Külmub ainult ~2 sekundiks |
Samsung Internet v7.0.10.46 |
Külmub ja käivitab lõpuks täieliku taaskäivituse |
Opera v45.1.2246.125351 |
Telefon külmub |
Microsoft Edge v1.0.0.1726 |
Külmub ainult ~3 sekundiks |
Firefox v59.0.2 |
Brauser jookseb kokku |
Nii Google Chrome kui ka Microsoft Edge külmutavad telefoni mõneks sekundiks ja genereerivad WebGL-i vea, kuid lõppkokkuvõttes on seade korras. GraafikaFuzz teatasid meile, et nad on Google Chrome'i tiimiga mõnda aega arutanud ja õppinud et Chrome rakendab mehhanismi, mis lõpetab GPU protsessi teatud aja möödudes, et telefon ei saaks täis krahh. Opera külmutab telefoni, kuid see ei käivita taaskäivitust. Firefoxi rakendus ise jookseb kokku, kuid telefon on korras. Lõpuks aeglustab Samsung Interneti kaudu lehele juurdepääs telefoni roomamiseni enne telefoni täieliku taaskäivitamist.
Siin on õnnetuse video demonstratsioon:
Vea üksikasjalik selgitus
GraafikaFuzz viis läbi põhjalikuma uurimise, mis näitab, et probleem, mis põhjustas telefoni taaskäivitamise, on Qualcomm Adreno 630 GPU draiveris, mis on osa Qualcomm Snapdragon 845 süsteem-kiibil. GraafikaFuzz kogusime kokkujooksmise logi, mille oleme allpool manustanud. Et anda lühikokkuvõte sellest, mis toimub, kui telefon muudab keeruka varjundi, seadistab GPU midagi, mida nimetatakse "aiaks". Piirdeaeda kasutatakse protsessori vahelise ühismälu juurdepääsu korraldamiseks ja GPU. Erinevalt lauaarvutist on mobiilsel GPU-l juurdepääs samale RAM-ile kui protsessoril, nii et kui mängu mängitakse või midagi muud renderdatakse, kasutab see jagatud mälule juurdepääsuks piirdeid. Diskreetse graafikaga seadmes on GPU-l endal oma mälu. Kõik praegused mobiiltelefonid jagavad videomälu ja muutmälu RAM-i välkmäluga. Probleem on selles, et tara ei saa lõpule viia, mis käivitab kerneli paanika ja põhjustab telefoni taaskäivitamise.
Lõpetage kerneli paanika enne taaskäivitamist
[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
Loe rohkem
GraafikaFuzz usub, et põhjus, miks see probleem esineb ainult Samsungi Interneti-brauseris, on GPU valvekoer. Mõnikord võib graafikaprotsessor pikalt töötavate varjutajate küljes rippuda. Sel juhul on brauseris või OS-is tavaliselt GPU valvekoer, mis sunniviisiliselt taaskäivitab mittereageeriva graafikadraiveri. The GraafikaFuzz test Shaderil on mitu for-silmust, mille renderdamine võib võtta kauem aega, kuid see on siiski kehtiv varjutaja. Mitmed teised seadmed, sealhulgas Mali-G72 GPU-ga Exynos 9810 Samsung Galaxy S9, suudavad seda varjundit renderdada. Seega meeskond kl GraafikaFuzz jõudis järeldusele, et selle vea põhjuseks on Adreno 630 vigane GPU draiver.
Google Pixel 2 XL koos Qualcomm Snapdragon 835 Adreno 540 GPU-ga, mis töötab sama Samsungi Interneti-brauseri versiooniga, aeglustab roomamist see tähendab, et see viga võib olla tingitud Qualcommi GPU draiverist, mis renderdab varjundit ja Samsungi brauseri valvekoera ei lõpeta teenust.
Loodetavasti suudab Qualcomm diagnoosida oma GPU draiveri algprobleemi, mis põhjustab taaskäivituse, ja varsti Samsungile parandusdraiveri pakkuda. Muidugi võib selle värskenduse lõppkasutajateni jõudmiseks kuluda veidi aega. Vahepeal eeldame, et Samsung lükkab leevendamiseks Samsungi Interneti-brauseri värskenduse probleem (vähemalt selle ärakasutamise takistamine veebilehe kaudu), mis vastab Google'i käitumisele Chrome. Kuigi teadaolevalt mõjutab see probleem Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, võib see mõjutada ka rohkem seadmeid, millel on Snapdragon 845.
Kui olete huvitatud oma mobiiltelefoni või lauaarvuti GPU töökindluse testimisest, siis meeskond aadressil GraafikaFuzz on koostanud veebirakenduse demonstratsiooni, mis võimaldab teil mõnda nende kehtivat varjutajat oma seadmes käivitada. Sellele veebilehele pääsete juurde järgmiselt järgides seda linki.
Avalikustamise ajaskaala
- 28. märts 2018: GraafikaFuzz ulatas käe XDA-arendajad meid probleemist teavitades. XDA-arendajad reprodutseerisime probleemi meie enda Samsung Galaxy S9+ (SM-G965U) peal.
- 29. märts 2018: GraafikaFuzz andis rohkem üksikasju ja koostas Qualcommi ja Samsungi töötajatele spetsiaalsed veebilehed, et viga reprodutseerida
- 30. märts 2018: XDA-arendajad pöördus nii Samsungi kui ka Qualcommi poole aruande täielike üksikasjadega. Meie Qualcommi kontakt võttis meiega ühendust, kinnitades, et meie sõnum on kätte saadud.
- 2. aprill 2018: Meie Samsungi kontakt võttis meiega ühendust, kinnitades, et meie sõnum on kätte saadud.
- 4. aprill 2018: Meie Samsungi kontakt soovitas meil Samsungile aruande esitada Turvaaruandlus lehel. XDA-arendajad esitas aruande ja Samsungi insener määrati raportile.