diff options
| author | Prateek Sood <prsood@codeaurora.org> | 2017-06-16 10:32:47 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-06-30 02:06:25 -0700 |
| commit | 6933043199fe89f4fc9150df58039b3ee05942fb (patch) | |
| tree | e414c55cf87b6caa7839c64cd8e02dc3e27017a5 /tools/perf/scripts/python | |
| parent | c1a5075d60955f6e4a15ce94aebd746c27684466 (diff) | |
osq_lock: avoid live-lock issue for RT task
Live Lock due to task spinning while unqueue of CPU osq_node
from optimistic_spin_queue. Task T1 had decremented mutex count to
acquire the lock on CPU0. Before setting owner it got preempted. On
CPU1 task T2 acquired osq_lock and started spinning on owner of mutex
with preemption disabled. CPU1 runq has one task, so need_resched will
not be set. On CPU0 task T3 tried to acquire osq_lock to spin on the
same mutex. At this time following scenario causes soft lockup:
After preemption of task T1, RT task T3 tried to acquire the same
mutex. It will start spinning on the osq_lock until the lock is available
or need_resched is set. For RT task, need_resched will not be set. Task T3
will not be able to bail out of the infinite loop.
Change-Id: Ifd7506047119a22e14b15459ac6b04b410ba1c84
Signed-off-by: Prateek Sood <prsood@codeaurora.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
