diff options
| author | Guchun Chen <guchunc@codeaurora.org> | 2017-06-29 14:15:04 +0800 |
|---|---|---|
| committer | Guchun Chen <guchunc@codeaurora.org> | 2017-08-08 16:31:37 +0800 |
| commit | b2278c42ae5241b3cdb3dc3ead107dd550c48b1a (patch) | |
| tree | 8aeced561e266a080a11bfaf4881fc830ccfff80 /tools/perf/scripts/python/syscall-counts.py | |
| parent | 58274ed8f17d7f826283d19c305fb7d85beecb3e (diff) | |
msm: sde: fix page freeing error when handing off early display
Sometimes, after user space is up and starts the handoff for early
animation/display, page freeing error happens like below.
The error happens in a very small possibility, but will lead to
device rebooting.
Call trace:
dump_backtrace+0x0/0x1b8
show_stack+0x14/0x1c
dump_stack+0xa8/0xe0
bad_page+0xf0/0x118
free_pages_prepare+0x100/0x2cc
free_hot_cold_page+0x38/0x1a0
__free_pages+0x34/0x48
_sde_splash_free_bootup_memory_to_system+0x78/0x9c
sde_splash_clean_up_free_resource+0xbc/0x1f0
sde_crtc_complete_commit+0x114/0x14c
sde_kms_complete_commit+0x50/0x98
complete_commit+0x684/0x6b0
_msm_drm_commit_work_cb+0x30/0x38
kthread_worker_fn+0xcc/0x170
kthread+0xf8/0x100
ret_from_fork+0x10/0x20
The issue is caused by race competition.
In async commit mode, the first is, mutex lock should be involved to
ensure the member of splash_info structure can be protected to
read/write in multiple threads. And the second is, 2 DSI connectors
are available in kernel, and the coming sequent commits may happen on
one DSI or on two DSI respectively. Because DSI interfaces shares the same
resource in LK, if the consecutive commits are for one DSI, DSI resources
could not be released, as another DSI is still visiting and using these
resources. So till confirming the commits for different DSIs have been
done, it's safe to release DSI resource.
Change-Id: Ie6386e3e58d5320cd4e2caab9a07b4e659eb8780
Signed-off-by: Guchun Chen <guchunc@codeaurora.org>
Signed-off-by: Yujun Zhang <yujunzhang@codeaurora.org>
Diffstat (limited to 'tools/perf/scripts/python/syscall-counts.py')
0 files changed, 0 insertions, 0 deletions
