Mir server with QtUbuntu client can cause system crash or Android GPU driver stall (Qualcomm)
Bug #1566747 reported by
Nick Dedekind
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mir |
Expired
|
High
|
Unassigned | ||
mir (Ubuntu) |
Expired
|
High
|
Unassigned | ||
qtubuntu (Ubuntu) |
Invalid
|
High
|
Unassigned |
Bug Description
While investigating new surface occlusion work in unity8 I've noticed that resizing a client multiple times can cause the system to either crash or a kworker process to cycle at 100% while attempting to reset the GPU.
Only seems to occur on Qualcomm devices
To Reproduce:
I've written an extension for the demo server which can be found @ https:/
Server:
mir_demo_server --test-resize [--test-
Client:
QT_QPA_
-------
[Test.qml]
Item {
width: 700
height: 1000
}
-------
summary: |
Mir server with QtUbuntu client can cause system crash or Android GPU - driver stall + driver stall (Qualcomm) |
description: | updated |
tags: |
added: nexus4 nexus7 removed: android |
Changed in qtubuntu: | |
status: | New → Confirmed |
Changed in mir: | |
status: | New → Confirmed |
importance: | Undecided → High |
Changed in qtubuntu: | |
importance: | Undecided → High |
Changed in mir (Ubuntu): | |
status: | New → Confirmed |
importance: | Undecided → High |
affects: | qtubuntu → qtubuntu (Ubuntu) |
To post a comment you must log in.
From dmesg
[ 231.829742] kgsl kgsl-3d0: |kgsl_iommu_ fault_handler| GPU PAGE FAULT: addr = C03AD000 pid = 3839 fault_handler| context = 0 FSR = 4001000A FSYNR0 = 9000008 FSYNR1 = 443542(read fault)
[ 231.829833] kgsl kgsl-3d0: |kgsl_iommu_
[ 231.829986] kgsl kgsl-3d0: ---- premature free ----
[ 231.830108] kgsl kgsl-3d0: [C0000000-C03C0000] (egl_surface) was already freed by pid 3839
[ 231.830230] kgsl kgsl-3d0: ---- nearby memory ----
[ 231.830322] kgsl kgsl-3d0: [C0303000 - C03AC000] (+guard) (pid = 3839) (egl_surface)
[ 231.830444] kgsl kgsl-3d0: <- fault @ C03AD000
[ 231.830505] kgsl kgsl-3d0: [C0400000 - C0702000] (+guard) (pid = 3839) (egl_surface)