Snapdragon Samsung Galaxy S9 ir GPU stabilitātes kļūda, ko var izmantot, lai aktivizētu attālo atsāknēšanu

click fraud protection

Samsung Galaxy S9 un Galaxy S9+ tika laisti klajā vairākos tirgos, tostarp ASV, Honkongā un dažviet Latīņamerikā, izmantojot Qualcomm Snapdragon 845 sistēmu mikroshēmā. Apvienotās Karalistes uzņēmums GraphicsFuzz atklāja GPU stabilitātes kļūdu, ko var izmantot, lai izraisītu attālas tālruņa atsāknēšanas/avārijas.

Jauno Samsung Galaxy S9 ietver jaunāko Qualcomm Snapdragon 845 sistēmas mikroshēmu vairākiem tirgiem, tostarp Honkongai, ASV, Kanādai un dažām Latīņamerikas valstīm. Samsung dažos tirgos bieži ir izvēlējies jaunāko vadošo Qualcomm Snapdragon SoC, nevis savu iekšējo Exynos SoC. Tas parasti notiek Amerikas Savienotajās Valstīs, izņemot Samsung Galaxy S6. Vidusmēra patērētājam ir neliela atšķirība starp Exynos 9810 un Snapdragon 845 variantiem. Tomēr mikroshēmojumu atšķirības var radīt ļoti atšķirīgu pieredzi.

AnandtechPārskats par Snapdragon Galaxy S9 un Exynos Galaxy S9 atklāja krasas veiktspējas atšķirības un akumulatora darbības laiks starp diviem modeļiem, Snapdragon modelim viegli pārspējot Exynos modeli. Saskaņā ar Apvienotās Karalistes uzņēmuma teikto, izmantojot šīs divas ļoti atšķirīgas mikroshēmas, veiktspējas atšķirības šoreiz nav vienīgās bažas.

GraphicsFuzz. GraphicsFuzz ir jaunizveidots uzņēmums, kas specializējas GPU uzticamības pārbaudē ierīcēs. Viņi izstrādā testus, lai meklētu kļūdas grafikas draiveros, un piedāvā palīdzību, lai diagnosticētu visu atklāto problēmu cēloņus. Piemēram, komanda atklāja drošības problēmu kas ietekmē Samsung Galaxy S6 ARM draiveri, par ko Google viņiem piešķīra naudas balvas par kļūdu. Snapdragon Samsung Galaxy S9 testēšanas laikā, GraphicsFuzz atrada kļūdu Adreno 630 grafikas draiverī, kas ļauj to izdarīt aktivizējiet visa tālruņa atsāknēšanu izmantojot derīgu WebGL interneta lapu, pārlūkojot Samsung interneta pārlūkprogrammu.

Konkrēti, Adreno 630 atveidojot sarežģītu, taču derīgu ēnotāju, ir kļūda, ko var izmantot, lai ierīce sasalst un pēc tam pārstartētu. Shader ir vienkārši programma, kas ļauj GPU renderēt attēlu. GraphicsFuzz neveica WebGL lapu ar ļaunprātīgu nolūku, lai izraisītu šo kļūdu, un tā vietā apgalvoja, ka tā nejauši tika atklāta ierīču GPU stabilitātes standarta testēšanas laikā. Kad viņi atklāja, ka šī attālā avārija ir atkārtojama, uzņēmums sazinājās ar XDA izstrādātāji lai atvieglotu informācijas izpaušanas procesu gan ar Qualcomm, gan Samsung.

WebGL avārijas reprodukcija Snapdragon Samsung Galaxy S9

Pirms sazinājāmies ar jebkura uzņēmuma pārstāvjiem, mēs apstiprinājām GraphicsFuzzatklājumus mūsu pašu ierīcē. GraphicsFuzz izveidojām īpašu tīmekļa lapu, ar kuru mēs varētu pārbaudīt, un mēs izvēlējāmies 5 populārākās interneta pārlūkprogrammas Google Play veikalā, lai redzētu, kas notiks. Tālāk esošajā tabulā parādīta kompleksā ēnotāja renderēšanas ietekme 5 dažādās tīmekļa pārlūkprogrammās.

Ierīce pārbaudīta: Qualcomm Snapdragon 845 Samsung Galaxy S9+ (SM-G965U)

Operētājsistēma: Android 8.0.0 Oreo SM-G965U

Interneta pārlūks

Rezultāts

Google Chrome v65.0.3325.109

Sasalst tikai ~2 sekundes

Samsung Internet v7.0.10.46

Sasalst, pēc tam galu galā izraisa pilnīgu atsāknēšanu

Opera v45.1.2246.125351

Sasaldē tālruni

Microsoft Edge v1.0.0.1726

Sasalst tikai ~3 sekundes

Firefox v59.0.2

Pārlūkprogramma avarē

Gan Google Chrome, gan Microsoft Edge uz dažām sekundēm iesaldēs tālruni un radīs WebGL kļūdu, taču galu galā ar ierīci viss būs kārtībā. GraphicsFuzz mums ziņoja, ka viņi kādu laiku ir diskutējuši ar Google Chrome komandu un ir iemācījušies ka pārlūkā Chrome tiek ieviests mehānisms, kas beidz GPU procesu pēc noteikta laika, lai novērstu tālruņa pilnu darbību avārija. Opera sasaldē tālruni, taču tas neizraisa atsāknēšanu. Pati Firefox lietotne avarē, bet tālrunis ir kārtībā. Visbeidzot, piekļūstot lapai, izmantojot Samsung internetu, tālrunis palēninās līdz pārmeklēšanai, pirms tiek aktivizēta pilnīga tālruņa atsāknēšana.

Šeit ir avārijas video demonstrācija:

Detalizēts kļūdas skaidrojums

GraphicsFuzz veica padziļinātu izmeklēšanu, kas norāda, ka problēma, kas izraisa tālruņa atsāknēšanu, ir Qualcomm Adreno 630 GPU draiverī, kas ir daļa no Qualcomm Snapdragon 845 sistēma mikroshēmā. GraphicsFuzz savāca žurnālu par avāriju, ko esam ieguluši tālāk. Lai sniegtu īsu kopsavilkumu par notiekošo, kad tālrunis atveido sarežģīto ēnotāju, iestata GPU kaut ko sauc par "žogu". Žogs tiek izmantots, lai organizētu piekļuvi kopīgajai atmiņai starp CPU un GPU. Mobilajam GPU, atšķirībā no galddatora, ir piekļuve tai pašai operatīvajai atmiņai kā centrālajam procesoram, tāpēc, kad tiek spēlēta spēle vai tiek renderēts kaut kas cits, tas izmanto žogu, lai piekļūtu koplietotajai atmiņai. Ierīcē, kurai ir diskrēta grafika, pašam GPU ir sava atmiņa. Visiem pašreizējiem mobilajiem tālruņiem ir kopīga videoatmiņa un brīvpiekļuves atmiņa ar RAM zibatmiņu. Problēma šeit ir tāda, ka žogu nevar pabeigt, kas izraisa kodola paniku un izraisa tālruņa atsāknēšanu.

Pabeidziet kodola paniku pirms atsāknēšanas

[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

Lasīt vairāk

GraphicsFuzz uzskata, ka iemesls, kāpēc šī problēma rodas tikai Samsung interneta pārlūkprogrammā, ir GPU sargsuņa iemesls. Dažkārt GPU var uzkarināt ilgstoši darbojošos ēnotājus, un tādā gadījumā pārlūkprogrammai vai operētājsistēmai parasti ir GPU sargsuns, kas piespiedu kārtā restartē nereaģējošo grafikas draiveri. The GraphicsFuzz testa ēnotājam ir vairākas forumu cilpas, kuru dēļ renderēšana var aizņemt ilgāku laiku, taču tas joprojām ir derīgs ēnotājs. Vairākas citas ierīces, tostarp Exynos 9810 Samsung Galaxy S9 ar Mali-G72 GPU, spēj atveidot šo ēnotāju. Tādējādi komanda plkst GraphicsFuzz nonāca pie secinājuma, ka šī kļūda rodas kļūdaina Adreno 630 GPU draivera dēļ.

Google Pixel 2 XL ar Qualcomm Snapdragon 835 Adreno 540 GPU, kurā darbojas tā pati Samsung interneta pārlūkprogrammas versija, palēnina pārmeklēšanu labi — tas nozīmē, ka šī kļūda varētu būt saistīta ar Qualcomm GPU draivera, kas renderē ēnotāju, un Samsung pārlūkprogrammas sargsuns nebeidz apkalpošana.

Cerams, ka Qualcomm varēs diagnosticēt galveno problēmu savā GPU draiverī, kas izraisa atsāknēšanu, un drīzumā nodrošināt Samsung fiksētu draiveri. Protams, var paiet kāds laiks, pirms šis atjauninājums tiks izplatīts galalietotājiem. Tikmēr mēs sagaidām, ka Samsung ieviesīs Samsung interneta pārlūkprogrammas atjauninājumu, lai mazinātu problēma (vismaz neļaujot to izmantot, izmantojot tīmekļa lapu), kas atbilst Google uzvedībai Chrome. Lai gan ir zināms, ka šī problēma ietekmē Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, tā var ietekmēt arī vairāk ierīču ar Snapdragon 845.

Ja vēlaties pārbaudīt savas mobilās vai galddatora ierīces GPU uzticamību, komanda vietnē GraphicsFuzz ir izveidojis tīmekļa lietotnes demonstrāciju, kas ļauj ierīcē palaist dažus to derīgos ēnotājus. Šai tīmekļa lapai varat piekļūt, izmantojot sekojot šai saitei.

Informācijas atklāšanas laika skala

  • 2018. gada 28. marts: GraphicsFuzz sasniedza XDA izstrādātāji informējot mūs par problēmu. XDA izstrādātāji atkārtoja šo problēmu mūsu pašu Samsung Galaxy S9+ (SM-G965U).
  • 2018. gada 29. marts: GraphicsFuzz sazinājās ar sīkāku informāciju un izveidoja īpašas tīmekļa lapas Qualcomm un Samsung darbiniekiem, lai reproducētu kļūdu
  • 2018. gada 30. marts: XDA izstrādātāji sazinājās gan ar Samsung, gan ar Qualcomm, sniedzot pilnu informāciju par ziņojumu. Mūsu Qualcomm kontaktpersona sazinājās ar mums, apstiprinot, ka mūsu ziņojums ir saņemts.
  • 2018. gada 2. aprīlis: Mūsu Samsung kontaktpersona sazinājās ar mums, apstiprinot, ka mūsu ziņojums ir saņemts.
  • 2018. gada 4. aprīlis: Mūsu Samsung kontaktpersona ieteica iesniegt ziņojumu Samsung Drošības ziņojumi lappuse. XDA izstrādātāji iesniedza ziņojumu, un ziņojumam tika norīkots Samsung inženieris.