summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/netdev-times.py
diff options
context:
space:
mode:
authorSubhash Jadavani <subhashj@codeaurora.org>2015-04-13 12:43:02 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 10:59:31 -0700
commit2ca2b1ba2a25812dd807837984417b23005b7099 (patch)
tree66dc6ea63be011ce43880f4ef767582717387b80 /tools/perf/scripts/python/netdev-times.py
parent2ad7d0f046578eda81aae3ef496cafe39f2a893d (diff)
scsi: ufs: fix race between clock gating and scaling work
UFS Clock scaling work may change the UFS gear mode as well which requires holding the vote for UFS clocks but if UFS clock gating work is running at the same time, it may end up waiting for UFS clock scaling work to finish hence enters into deadlock state. Here is the call stack for this deadlock state: Clock scaling work: __schedule() schedule() schedule_timeout() do_wait_for_common(inline) __wait_for_common(inline) wait_for_common() wait_for_completion() flush_work() ufshcd_hold() ufshcd_pm_qos_hold(inline) ufshcd_hold_all() ufshcd_wait_for_doorbell_clr() ufshcd_scale_gear() ufshcd_devfreq_scale(inline) ufshcd_devfreq_target() update_devfreq() devfreq_monitor() static_key_false(inline) trace_workqueue_execute_end(inline) process_one_work() worker_thread() kthread() Clock gating work: __schedule() schedule() schedule_preempt_disabled() __mutex_lock_common(inline) __mutex_lock_slowpath() current_thread_info(inline) mutex_set_owner(inline) mutex_lock() devfreq_monitor_resume() devfreq_simple_ondemand_handler() devfreq_resume_device() ufshcd_ungate_work() static_key_false(inline) trace_workqueue_execute_end(inline) process_one_work() process_scheduled_works(inline) worker_thread() kthread() This change avoids this deadlock by cancelling the clock gating work before voting for clocks in clock scaling work. Change-Id: Icae8762282fc10032ae9bb823ab9f5de9912b2e5 Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'tools/perf/scripts/python/netdev-times.py')
0 files changed, 0 insertions, 0 deletions