aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_cedf.c
diff options
context:
space:
mode:
Diffstat (limited to 'litmus/sched_cedf.c')
-rw-r--r--litmus/sched_cedf.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/litmus/sched_cedf.c b/litmus/sched_cedf.c
index 99f7620925ba..be14dbec6ed2 100644
--- a/litmus/sched_cedf.c
+++ b/litmus/sched_cedf.c
@@ -733,11 +733,11 @@ static void cedf_change_prio_pai_tasklet(struct task_struct *old_prio,
733 unsigned long flags; 733 unsigned long flags;
734 cedf_domain_t *cluster; 734 cedf_domain_t *cluster;
735 struct task_struct *probe; 735 struct task_struct *probe;
736 736
737 // identify the cluster by the assignment of these tasks. one should 737 // identify the cluster by the assignment of these tasks. one should
738 // be non-NULL. 738 // be non-NULL.
739 probe = (old_prio) ? old_prio : new_prio; 739 probe = (old_prio) ? old_prio : new_prio;
740 740
741 if(probe) { 741 if(probe) {
742 cluster = task_cpu_cluster(probe); 742 cluster = task_cpu_cluster(probe);
743 743
@@ -838,8 +838,13 @@ static struct task_struct* cedf_schedule(struct task_struct * prev)
838#if defined(CONFIG_LITMUS_NVIDIA) && defined(CONFIG_LITMUS_AFFINITY_LOCKING) 838#if defined(CONFIG_LITMUS_NVIDIA) && defined(CONFIG_LITMUS_AFFINITY_LOCKING)
839 if(exists && is_realtime(entry->scheduled) && tsk_rt(entry->scheduled)->held_gpus) { 839 if(exists && is_realtime(entry->scheduled) && tsk_rt(entry->scheduled)->held_gpus) {
840 if(!blocks || tsk_rt(entry->scheduled)->suspend_gpu_tracker_on_block) { 840 if(!blocks || tsk_rt(entry->scheduled)->suspend_gpu_tracker_on_block) {
841 // don't track preemptions or locking protocol suspensions.
842 TRACE_TASK(entry->scheduled, "stopping GPU tracker.\n");
841 stop_gpu_tracker(entry->scheduled); 843 stop_gpu_tracker(entry->scheduled);
842 } 844 }
845 else if(blocks && !tsk_rt(entry->scheduled)->suspend_gpu_tracker_on_block) {
846 TRACE_TASK(entry->scheduled, "GPU tracker remains on during suspension.\n");
847 }
843 } 848 }
844#endif 849#endif
845 850
@@ -1596,6 +1601,10 @@ static void cleanup_cedf(void)
1596{ 1601{
1597 int i; 1602 int i;
1598 1603
1604#ifdef CONFIG_LITMUS_NVIDIA
1605 shutdown_nvidia_info();
1606#endif
1607
1599 if (clusters_allocated) { 1608 if (clusters_allocated) {
1600 for (i = 0; i < num_clusters; i++) { 1609 for (i = 0; i < num_clusters; i++) {
1601 kfree(cedf[i].cpus); 1610 kfree(cedf[i].cpus);