diff options
Diffstat (limited to 'kernel/sched_gsn_edf.c')
| -rw-r--r-- | kernel/sched_gsn_edf.c | 34 |
1 files changed, 2 insertions, 32 deletions
diff --git a/kernel/sched_gsn_edf.c b/kernel/sched_gsn_edf.c index 293dd5d532..5ff2670727 100644 --- a/kernel/sched_gsn_edf.c +++ b/kernel/sched_gsn_edf.c | |||
| @@ -393,7 +393,7 @@ static noinline void job_completion(struct task_struct *t) | |||
| 393 | /* unlink */ | 393 | /* unlink */ |
| 394 | unlink(t); | 394 | unlink(t); |
| 395 | /* requeue | 395 | /* requeue |
| 396 | * But on't requeue a blocking task. */ | 396 | * But don't requeue a blocking task. */ |
| 397 | if (is_running(t)) | 397 | if (is_running(t)) |
| 398 | gsnedf_job_arrival(t); | 398 | gsnedf_job_arrival(t); |
| 399 | } | 399 | } |
| @@ -729,36 +729,6 @@ static long gsnedf_return_priority(struct pi_semaphore *sem) | |||
| 729 | return ret; | 729 | return ret; |
| 730 | } | 730 | } |
| 731 | 731 | ||
| 732 | /* | ||
| 733 | * Deactivate current task until the beginning of the next period. | ||
| 734 | */ | ||
| 735 | static long gsnedf_sleep_next_period(void) | ||
| 736 | { | ||
| 737 | unsigned long flags; | ||
| 738 | struct task_struct* t = current; | ||
| 739 | |||
| 740 | queue_lock_irqsave(&gsnedf_lock, flags); | ||
| 741 | |||
| 742 | /* Mark that we do not excute anymore */ | ||
| 743 | set_rt_flags(t, RT_F_SLEEP); | ||
| 744 | sched_trace_job_completion(t); | ||
| 745 | /* prepare for next period */ | ||
| 746 | edf_prepare_for_next_period(t); | ||
| 747 | |||
| 748 | /* unlink */ | ||
| 749 | unlink(t); | ||
| 750 | /* requeue */ | ||
| 751 | gsnedf_job_arrival(t); | ||
| 752 | |||
| 753 | /* will reschedule on return to user mode */ | ||
| 754 | set_tsk_need_resched(t); | ||
| 755 | |||
| 756 | queue_unlock_irqrestore(&gsnedf_lock, flags); | ||
| 757 | |||
| 758 | return 0; | ||
| 759 | } | ||
| 760 | |||
| 761 | |||
| 762 | static int gsnedf_mode_change(int new_mode) | 732 | static int gsnedf_mode_change(int new_mode) |
| 763 | { | 733 | { |
| 764 | unsigned long flags; | 734 | unsigned long flags; |
| @@ -806,7 +776,7 @@ static sched_plugin_t s_plugin __cacheline_aligned_in_smp = { | |||
| 806 | .algo_scheduler_tick = gsnedf_scheduler_tick, \ | 776 | .algo_scheduler_tick = gsnedf_scheduler_tick, \ |
| 807 | .scheduler_tick = rt_scheduler_tick, \ | 777 | .scheduler_tick = rt_scheduler_tick, \ |
| 808 | .prepare_task = gsnedf_prepare_task, \ | 778 | .prepare_task = gsnedf_prepare_task, \ |
| 809 | .sleep_next_period = gsnedf_sleep_next_period, \ | 779 | .sleep_next_period = edf_sleep_next_period, \ |
| 810 | .tear_down = gsnedf_tear_down, \ | 780 | .tear_down = gsnedf_tear_down, \ |
| 811 | .schedule = gsnedf_schedule, \ | 781 | .schedule = gsnedf_schedule, \ |
| 812 | .finish_switch = gsnedf_finish_switch, \ | 782 | .finish_switch = gsnedf_finish_switch, \ |
