El Samsung Galaxy S9 y el Galaxy S9+ se lanzaron en varios mercados, incluidos EE. UU., Hong Kong y partes de América Latina, con el sistema en chip Qualcomm Snapdragon 845. La empresa británica GraphicsFuzz descubrió un error de estabilidad de la GPU que puede explotarse para provocar reinicios o fallos remotos del teléfono.
El nuevo samsung galaxy s9 incluye el último sistema en chip Qualcomm Snapdragon 845 para varios mercados, incluidos Hong Kong, Estados Unidos, Canadá y partes de América Latina. Samsung a menudo ha elegido el último SoC insignia de Qualcomm Snapdragon en lugar de su SoC Exynos interno en algunos mercados. Este suele ser el caso en Estados Unidos, a excepción del Samsung Galaxy S6. Para el consumidor medio, hay poca diferencia entre las variantes Exynos 9810 y Snapdragon 845. Sin embargo, en el interior, la diferencia en los conjuntos de chips puede generar experiencias tremendamente diferentes.
anandtechLa revisión del Snapdragon Galaxy S9 y el Exynos Galaxy S9 reveló marcadas diferencias en el rendimiento. y duración de la batería entre los dos modelos, y el modelo Snapdragon supera fácilmente al modelo Exynos. Con estos dos conjuntos de chips tan diferentes, la diferencia en el rendimiento no parece ser la única preocupación esta vez, según una empresa con sede en el Reino Unido llamada
GráficosFuzz. GráficosFuzz es una empresa de nueva creación que se especializa en probar la confiabilidad de GPU en dispositivos. Desarrollan pruebas para buscar errores en los controladores de gráficos y ofrecen ayuda para diagnosticar las causas fundamentales de cualquier problema que descubran. Por ejemplo, el equipo descubrió un problema de seguridad. afectando el controlador ARM para el Samsung Galaxy S6, por lo que Google les otorgó una recompensa por errores. Durante sus pruebas del Snapdragon Samsung Galaxy S9, GráficosFuzz Encontré un error en el controlador de gráficos del Adreno 630 que les permite desencadenar un reinicio completo del teléfono a través de una página de Internet WebGL válida cuando navega con el navegador de Internet estándar de Samsung.En particular, hay un error en la representación del Adreno 630 de un sombreador complejo pero válido que puede explotarse para hacer que el dispositivo se congele y finalmente se reinicie. Un sombreador es simplemente un programa que permite a la GPU representar una imagen. GráficosFuzz no diseñó la página WebGL con intenciones maliciosas de desencadenar este error y, en cambio, dice que fue descubierto incidentalmente durante sus pruebas estándar de estabilidad de GPU de los dispositivos. Una vez que descubrieron que este accidente remoto era reproducible, la compañía se acercó a Desarrolladores XDA para facilitar el proceso de divulgación tanto con Qualcomm como con Samsung.
Reproducción de fallos de WebGL en el Snapdragon Samsung Galaxy S9
Antes de comunicarnos con representantes de cualquiera de las empresas, validamos GráficosFuzzLos hallazgos en nuestro propio dispositivo. GráficosFuzz Creó una página web especial para que la probáramos y elegimos los 5 navegadores de Internet más populares en Google Play Store para ver qué pasaba. La siguiente tabla muestra los efectos de renderizar el sombreador complejo en 5 navegadores web diferentes.
Dispositivo probado: Qualcomm Snapdragon 845 Samsung Galaxy S9+ (SM-G965U)
Sistema operativo: Android 8.0.0 Oreo SM-G965U
Navegador web |
Resultado |
---|---|
Google Chrome v65.0.3325.109 |
Se congela solo durante ~2 segundos |
SamsungInternet v7.0.10.46 |
Se congela y finalmente provoca un reinicio completo |
Ópera v45.1.2246.125351 |
Congela el teléfono |
Microsoft Edge v1.0.0.1726 |
Se congela solo durante ~3 segundos |
Firefox v59.0.2 |
El navegador falla |
Tanto Google Chrome como Microsoft Edge congelarán el teléfono durante unos segundos y generarán un error de WebGL, pero el dispositivo finalmente estará bien. GráficosFuzz nos informaron que han estado en conversaciones con el equipo de Google Chrome durante algún tiempo y han aprendido que Chrome implementa un mecanismo que finaliza el proceso de la GPU después de un período de tiempo determinado para evitar que el teléfono se llene chocar. Opera congela el teléfono, pero no provoca un reinicio. La aplicación Firefox falla pero el teléfono está bien. Por último, acceder a la página a través de Samsung Internet hace que el teléfono se ralentice antes de activar el reinicio completo del teléfono.
Aquí hay un vídeo de demostración del accidente:
Explicación detallada del error
GráficosFuzz realizó una investigación más profunda que indica que el problema que causa que el teléfono se reinicie es en el controlador de GPU para el Qualcomm Adreno 630 que forma parte del Qualcomm Snapdragon 845 sistema en chip. GráficosFuzz recopiló un registro sobre el bloqueo, que hemos incluido a continuación. Para dar un breve resumen de lo que está sucediendo, cuando el teléfono procesa el sombreador complejo, la GPU configura algo llamado "valla". Se utiliza una valla para orquestar el acceso a la memoria compartida entre la CPU. y GPU. Una GPU móvil, a diferencia de una computadora de escritorio, tiene acceso a la misma RAM que la CPU, por lo que cuando se juega un juego o se procesa algo más, utiliza una barrera para acceder a esa memoria compartida. En un dispositivo que tiene gráficos discretos, la propia GPU tiene su propia memoria. Todos los teléfonos móviles actuales comparten memoria de vídeo y memoria de acceso aleatorio con el almacenamiento flash de la RAM. El problema aquí es que la barrera no se puede completar, lo que provoca un pánico en el kernel y hace que el teléfono se reinicie.
Complete Kernel Panic antes de reiniciar
[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
leer más
GráficosFuzz cree que la razón por la que este problema sólo ocurre en el navegador de Internet de Samsung es por el control de la GPU. A veces, una GPU puede bloquearse en sombreadores de ejecución prolongada, en cuyo caso el navegador o el sistema operativo generalmente tiene un mecanismo de vigilancia de GPU que reinicia a la fuerza un controlador de gráficos que no responde. El GráficosFuzz El sombreador de prueba tiene varios bucles for que pueden hacer que el procesamiento tarde más tiempo, pero sigue siendo un sombreador válido. Varios otros dispositivos, incluido el Samsung Galaxy S9 Exynos 9810 con la GPU Mali-G72, logran renderizar este sombreador. Así, el equipo de GráficosFuzz Llegué a la conclusión de que este error se debe a un controlador de GPU defectuoso para el Adreno 630.
El Google Pixel 2 XL con la GPU Adreno 540 de Qualcomm Snapdragon 835 que ejecuta la misma versión del navegador de Internet de Samsung se ralentiza a medida que Bueno, esto significa que este error podría ser un problema con el controlador de GPU de Qualcomm que genera el sombreador y el perro guardián del navegador Samsung que no finaliza el proceso. servicio.
Con suerte, Qualcomm puede diagnosticar el problema subyacente en su controlador de GPU que provoca el reinicio y proporcionar pronto un controlador reparado a Samsung. Por supuesto, podría pasar algún tiempo antes de que esta actualización se propague a los usuarios finales. Mientras tanto, esperamos que Samsung impulse una actualización del navegador web de Internet de Samsung para mitigar el problema (al menos evitando que sea explotado a través de una página web), coincidiendo con el comportamiento de Google Cromo. Aunque se sabe que este problema afecta al Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+, también podría afectar a más dispositivos con el Snapdragon 845.
Si está interesado en probar la confiabilidad de la GPU de su propio dispositivo móvil o de escritorio, el equipo de GráficosFuzz ha preparado una demostración de una aplicación web que le permite ejecutar algunos de sus sombreadores válidos en su dispositivo. Puede acceder a esa página web mediante siguiendo este enlace.
Cronograma de divulgación
- 28 de marzo de 2018: GráficosFuzz se acercó a Desarrolladores XDA informándonos del problema. Desarrolladores XDA Reprodujimos el problema en nuestro propio Samsung Galaxy S9+ (SM-G965U).
- 29 de marzo de 2018: GráficosFuzz Se comunicó con más detalles y creó páginas web especiales para que los empleados de Qualcomm y Samsung reprodujeran el error.
- 30 de marzo de 2018: Desarrolladores XDA contactó tanto a Samsung como a Qualcomm con todos los detalles del informe. Nuestro contacto de Qualcomm nos contactó reconociendo que nuestro mensaje fue recibido.
- 2 de abril de 2018: Nuestro contacto de Samsung nos contactó reconociendo que nuestro mensaje fue recibido.
- 4 de abril de 2018: Nuestro contacto de Samsung recomendó que presentáramos un informe en Samsung. Informes de seguridad página. Desarrolladores XDA presentó un informe y se asignó un ingeniero de Samsung al informe.