Snapdragon Samsung Galaxy S9'da Uzaktan Yeniden Başlatmayı Tetiklemek İçin Kullanılabilecek Bir GPU Kararlılık Hatası Var

Samsung Galaxy S9 ve Galaxy S9+, çip üzerinde Qualcomm Snapdragon 845 sistemiyle ABD, Hong Kong ve Latin Amerika'nın bazı bölgeleri de dahil olmak üzere çeşitli pazarlarda piyasaya sürüldü. İngiliz firması GraphicsFuzz, telefonun uzaktan yeniden başlatılmasını/çökmesini tetiklemek için kullanılabilecek bir GPU kararlılık hatası keşfetti.

Yeni Samsung Galaxy S9 Hong Kong, Amerika Birleşik Devletleri, Kanada ve Latin Amerika'nın bazı bölgeleri de dahil olmak üzere çeşitli pazarlar için en yeni Qualcomm Snapdragon 845 çip üzerinde sistemi içerir. Samsung, bazı pazarlarda şirket içi Exynos SoC yerine sıklıkla en yeni amiral gemisi Qualcomm Snapdragon SoC'yi seçiyor. Bu genellikle Samsung Galaxy S6 hariç Amerika Birleşik Devletleri'ndeki durumdur. Ortalama tüketici için Exynos 9810 ve Snapdragon 845 çeşitleri arasında çok az fark var. Ancak aslında yonga setlerindeki farklılık son derece farklı deneyimlere yol açabilir.

Anandtech'nin Snapdragon Galaxy S9 ve Exynos Galaxy S9 incelemesi performansta keskin farkları ortaya çıkardı Snapdragon modelinin Exynos modelinden kolayca daha iyi performans göstermesiyle iki model arasındaki pil ömrü ve pil ömrü. İngiltere merkezli bir şirkete göre, birbirinden çok farklı olan bu iki yonga seti ile bu kez performans farkı tek endişe kaynağı gibi görünmüyor.

GrafikFuzz. GrafikFuzz cihazlarda GPU güvenilirliğini test etme konusunda uzmanlaşmış yeni kurulmuş bir firmadır. Grafik sürücülerindeki hataları aramak için testler geliştirirler ve keşfettikleri sorunların temel nedenlerini teşhis etmede yardım sunarlar. Örneğin ekip bir güvenlik sorunu keşfetti Samsung Galaxy S6 için ARM sürücüsünü etkiliyor, bunun için Google tarafından bir hata ödülüne layık görüldüler. Snapdragon Samsung Galaxy S9 testleri sırasında, GrafikFuzz Adreno 630'un grafik sürücüsünde bunlara izin veren bir hata bulundu tüm telefonun yeniden başlatılmasını tetikle Stok Samsung İnternet tarayıcısıyla gezinirken geçerli bir WebGL İnternet sayfası aracılığıyla.

Özellikle, Adreno 630'un karmaşık ancak geçerli bir gölgelendiriciyi oluşturmasında, cihazın donmasını ve sonunda yeniden başlatılmasını sağlamak için kullanılabilecek bir hata var. Gölgelendirici, GPU'nun bir görüntüyü oluşturmasına olanak tanıyan bir programdır. GrafikFuzz WebGL sayfasını bu hatayı tetiklemek için kötü niyetle tasarlamadı ve bunun yerine, cihazların GPU kararlılığına ilişkin standart testler sırasında tesadüfen keşfedildiğini söyledi. Bu uzaktan gerçekleşen kazanın tekrarlanabilir olduğunu keşfettiklerinde şirket iletişime geçti. XDA Geliştiricileri Hem Qualcomm hem de Samsung ile ifşa sürecini kolaylaştırmak.

Snapdragon Samsung Galaxy S9'da WebGL Çökme Reprodüksiyonu

Her iki şirketin temsilcilerine ulaşmadan önce doğruladık GrafikFuzzbulguları kendi cihazımızda. GrafikFuzz Test etmemiz için özel bir web sayfası hazırladık ve ne olacağını görmek için Google Play Store'daki en popüler 5 İnternet tarayıcısını seçtik. Aşağıdaki tablo, karmaşık gölgelendiriciyi 5 farklı web tarayıcısında oluşturmanın etkilerini göstermektedir.

Cihaz Test Edildi: Qualcomm Snapdragon 845 Samsung Galaxy S9+ (SM-G965U)

İşletim sistemi: Android 8.0.0 Oreo SM-G965U

İnternet tarayıcısı

Sonuç

Google Chrome v65.0.3325.109

Yalnızca ~2 saniye donuyor

Samsung İnternet v7.0.10.46

Donuyor ve sonunda tam bir yeniden başlatmayı tetikliyor

Opera v45.1.2246.125351

Telefonu dondurur

Microsoft Edge v1.0.0.1726

Yalnızca ~3 saniye donuyor

Firefox v59.0.2

Tarayıcı çöküyor

Hem Google Chrome hem de Microsoft Edge, telefonu birkaç saniyeliğine donduracak ve bir WebGL hatası oluşturacaktır, ancak sonuçta cihaz iyi durumda olacaktır. GrafikFuzz bir süredir Google Chrome ekibiyle görüştüklerini ve öğrendiklerini bize bildirdiler Chrome'un telefonun dolmasını önlemek için belirli bir süre sonra GPU işlemini sonlandıran bir mekanizma uyguladığı kaza. Opera telefonu donduruyor ancak yeniden başlatmayı tetiklemiyor. Firefox uygulamasının kendisi çöküyor ancak telefon iyi durumda. Son olarak, sayfaya Samsung Internet üzerinden erişim, tam telefonun yeniden başlatılmasını tetiklemeden önce telefonun yavaşlayarak tarama yapmasına neden olur.

İşte kazanın video gösterimi:

Hatanın Ayrıntılı Açıklaması

GrafikFuzz telefonun yeniden başlatılmasına neden olan sorunun Qualcomm Snapdragon 845'in bir parçası olan Qualcomm Adreno 630'un GPU sürücüsünde çip üzerinde sistem. GrafikFuzz Kazayla ilgili aşağıya yerleştirdiğimiz bir günlük topladık. Neler olduğuna dair kısa bir özet vermek gerekirse, telefon karmaşık gölgelendiriciyi oluşturduğunda GPU, "çit" denen bir şey. CPU arasında paylaşılan belleğe erişimi düzenlemek için bir çit kullanılır. ve GPU. Mobil GPU, masaüstü bilgisayardan farklı olarak CPU ile aynı RAM'e erişime sahiptir; dolayısıyla bir oyun oynandığında veya başka bir şey görüntülendiğinde, bu paylaşılan belleğe erişmek için bir çit kullanır. Ayrı grafiklere sahip bir cihazda GPU'nun kendi belleği vardır. Mevcut tüm cep telefonları, video belleğini ve rastgele erişim belleğini RAM'in flash deposuyla paylaşır. Buradaki sorun çitin tamamlanamamasıdır, bu da çekirdek paniğini tetikler ve telefonun yeniden başlatılmasına neden olur.

Yeniden Başlatmadan Önce Çekirdek Paniğini Tamamlayın

[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

devamını oku

GrafikFuzz bu sorunun yalnızca Samsung İnternet tarayıcısında ortaya çıkmasının nedeninin GPU gözlemcisi olduğuna inanıyor. Bazen bir GPU uzun süre çalışan gölgelendiricilere takılabilir; bu durumda tarayıcı veya işletim sistemi genellikle yanıt vermeyen grafik sürücüsünü yeniden başlatmaya zorlayan bir GPU gözlemcisine sahiptir. GrafikFuzz test gölgelendiricisinde, oluşturulmasının daha uzun sürmesine neden olabilecek birkaç for döngüsü vardır, ancak yine de geçerli bir gölgelendiricidir. Mali-G72 GPU'lu Exynos 9810 Samsung Galaxy S9 da dahil olmak üzere diğer birçok cihaz bu gölgelendiriciyi oluşturmayı başarıyor. Böylece ekip şu anda GrafikFuzz Bu hatanın Adreno 630'un hatalı GPU sürücüsünden kaynaklandığı sonucuna vardık.

Samsung İnternet tarayıcısının aynı sürümünü çalıştıran Qualcomm Snapdragon 835'in Adreno 540 GPU'suna sahip Google Pixel 2 XL, taramayı yavaşlatıyor yani bu, bu hatanın Qualcomm GPU sürücüsünün gölgelendiriciyi oluşturması ve Samsung Tarayıcı gözlemcisinin gölgelendiriciyi sonlandırmaması ile ilgili bir sorun olabileceği anlamına gelir. hizmet.

Umarız Qualcomm, GPU sürücüsünde yeniden başlatmaya neden olan temel sorunu teşhis edebilir ve Samsung'a yakın zamanda sabit bir sürücü sağlayabilir. Elbette bu güncellemenin son kullanıcılara yayılması biraz zaman alabilir. Bu arada, Samsung'un Samsung İnternet web tarayıcısına bir güncelleme sunmasını bekliyoruz. Google'ın davranışıyla eşleşen sorun (en azından bir web sayfası aracılığıyla kötüye kullanılmasının önlenmesi) Krom. Bu sorunun Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+'ı etkilediği bilinmesine rağmen, Snapdragon 845'e sahip daha fazla cihazı da etkileyebilir.

Kendi mobil veya masaüstü cihazınızın GPU güvenilirliğini test etmekle ilgileniyorsanız, şu adresteki ekip: GrafikFuzz geçerli gölgelendiricilerden bazılarını cihazınızda çalıştırmanıza olanak tanıyan bir web uygulaması gösterimi hazırladı. Bu web sayfasına şu adresten erişebilirsiniz: bu bağlantıyı takip ederek.

Açıklama Zaman Çizelgesi

  • 28 Mart 2018: GrafikFuzz uzandı XDA Geliştiricileri konuyu bize bildiriyor. XDA Geliştiricileri Sorunu kendi Samsung Galaxy S9+ (SM-G965U) cihazımızda yeniden oluşturduk.
  • 29 Mart 2018: GrafikFuzz Daha fazla ayrıntıyla iletişime geçtik ve Qualcomm ve Samsung çalışanlarının hatayı yeniden oluşturmaları için özel web sayfaları hazırladık
  • 30 Mart 2018: XDA Geliştiricileri Raporun tüm ayrıntılarını hem Samsung hem de Qualcomm'a ulaştı. Qualcomm yetkilimiz bize ulaşarak mesajımızın alındığını bildirdi.
  • 2 Nisan 2018: Samsung yetkilimiz mesajımızın alındığını bildirerek bize geri döndü.
  • 4 Nisan 2018: Samsung yetkilimiz Samsung'a bir rapor sunmamızı önerdi Güvenlik Raporlaması sayfa. XDA Geliştiricileri bir rapor sundu ve rapora bir Samsung Mühendisi atandı.