diff options
author | Zelin Tong <ztong@ludwig.cs.unc.edu> | 2020-10-23 00:11:54 -0400 |
---|---|---|
committer | Zelin Tong <ztong@ludwig.cs.unc.edu> | 2020-10-23 12:06:51 -0400 |
commit | 3ab72024d097d2ebcc25442bedcd29b6f1f3abd7 (patch) | |
tree | 659ca1c3c0e1ec6df7b6bab9384ff7fddcb53d31 /drivers/pwm/pwm-stm32.c | |
parent | 6b29cbb940ec64c8d49277b91b006230ac0c8617 (diff) |
Fixed Occasional Deadlock when scheduling
Problem:
When multiple scheduling events occur simultaneously, a situation could
happen where:
- one core schedules a task that is linked to it
- a check_for_preemption occurs due to another scheduling event
- that task is now linked to another core
- the other core tries to schedule it but can't grab the task from the
runqueue of the other core
Solution:
Added in the scheduled_on field in gedf_reservation. This enables us in
link_task_to_cpu to check for this occuring and swap the linking so the
above situation doesn't happen. The code is taken and modified from
link_task_to_cpu in GSN-EDF
Diffstat (limited to 'drivers/pwm/pwm-stm32.c')
0 files changed, 0 insertions, 0 deletions