| Summary: | meta-fsl-arm kernel crash when using graphics acceleration | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] BSPs | Reporter: | lpa <lee.page> | ||||||
| Component: | bsps-meta-fsl-arm | Assignee: | Daiane <angolini> | ||||||
| Status: | VERIFIED FIXED | QA Contact: | |||||||
| Severity: | major | ||||||||
| Priority: | Medium+ | CC: | jessica.zhang, otavio, sgw, sjolley.yp.pm | ||||||
| Version: | unspecified | ||||||||
| Target Milestone: | 1.5.3 | ||||||||
| Hardware: | Other | ||||||||
| OS: | arm | ||||||||
| Whiteboard: | |||||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||||
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |||||||
| Attachments: |
|
||||||||
How someone can reproduce this? Is it using normal Chromium package? Created attachment 1518 [details]
Additional log from /var/log/messages
Chromium recipe used.
meta-browser/recipes-browser/chromium/chromium_29.0.1518.2.bb
Changed do_configure to link against libGAL otherwise chromium failed to start due to missing symbols from libGAL.
do_configure() {
cd ${S}
# replace LD with CXX, to workaround a possible gyp issue?
- LD="${CXX}" export LD
+ LD="${CXX} -lGAL -lEGL -lGLESv2" export LD
Started chromium with these parameters.
google-chrome --ignore-gpu-blacklist --enable-gpu --use-gl=egl --enable-accelerated-2d-canvas --force-compositing-mode &
Tested with multiple open tabs. Sites such as http://browsermark.rightware.com/
After some indeterminate amount of time, ~15 mins of usage, the kernel Oops occurs.
Switched to chromium 31.0.1636.0 and changed gyp settings instead of LD flag.
+--- a/ui/gl/gl.gyp
++++ b/ui/gl/gl.gyp
+@@ -123,6 +123,12 @@
+ '<(gl_binding_output_dir)/gl_bindings_autogen_osmesa.h',
+ '<(gl_binding_output_dir)/gl_interface_autogen_gl.h',
+ ],
++ 'link_settings': {
++ 'libraries': [
++ '-lEGL',
++ '-lGAL',
++ ],
++ },
Since the change the kernel Oops has not yet reoccurred.
The kernel Oops only occurred with gpu enabled in chromium 29. Additional kernel debug flags, CONFIG_DEBUG_PAGEALLOC=y, indicated memory corruption with the gpu enabled. galcore galcore.0: rpm_suspend returns 0 galcore galcore.0: rpm_resume flags 0x4 galcore galcore.0: rpm_resume returns 0 galcore galcore.0: rpm_resume flags 0x4 galcore galcore.0: rpm_resume returns 1 pagealloc: memory corruption 96681000: e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff ................ 96681010: e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff ................ 96681020: e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff ................ 96681030: e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff ................ 96681040: e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff e5 e5 e5 ff ................ Are unit tests available for testing gpu drivers? Fixed in update in Dora for 3.0.35-4.1.0. Working fine for a while, close it. |
Created attachment 1514 [details] minicom log Hardware i.MX6dl Branch master revision c3c1d2616e59ba314c6ff602b99909da632a11d5 Kernel 3.0.35-4.0.0+yocto+g3383d80 Running chromium package from meta-browser layer with GPU acceleration enabled. Several crashes have occurred with this build. The kernel appears to panic due to null pointer dereference, each time the address can differ. Examples. Unable to handle kernel paging request at virtual address ffedf135 Unable to handle kernel NULL pointer dereference at virtual address 00000003 Unable to handle kernel NULL pointer dereference at virtual address 00000017 Unable to handle kernel paging request at virtual address fffffffc Unable to handle kernel paging request at virtual address ff2518b5 Further information provided in the attached log files. Are there any pending patches for the GPU drivers not yet available on the master branch?