aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/nvidia_info.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2013-01-21 20:00:29 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2013-01-21 20:00:29 -0500
commit95717fa9f4b9f725928e898c42fb0e711e896311 (patch)
tree6c552bd879cdafcd90b6bdacdc167338dd3189bf /litmus/nvidia_info.c
parent84aa3706d63edda13560ff812740cac0adf744e1 (diff)
Fixed case where blocked tasks are released.
Fixed bug where AUX tasks were being added to the ready queue while those AUX tasks were actually blocked. Bug stems from the fact that the AUX tasks do not make themselves realtime, but another thread does this instead. Also fixed minor bugs elsewhere. NOTE: ONLY FIXES C-EDF. OTHER PLUGINS REMAIN TO BE FIXED.
Diffstat (limited to 'litmus/nvidia_info.c')
-rw-r--r--litmus/nvidia_info.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/litmus/nvidia_info.c b/litmus/nvidia_info.c
index 7160bb85ac9d..dda863009fee 100644
--- a/litmus/nvidia_info.c
+++ b/litmus/nvidia_info.c
@@ -729,6 +729,7 @@ int gpu_owner_increase_priority(struct task_struct *t)
729 binheap_decrease(&tsk_rt(t)->gpu_owner_node, &reg->owners); 729 binheap_decrease(&tsk_rt(t)->gpu_owner_node, &reg->owners);
730 } 730 }
731 731
732#ifdef CONFIG_LITMUS_SOFTIRQD
732 hp = container_of(binheap_top_entry(&reg->owners, struct rt_param, gpu_owner_node), 733 hp = container_of(binheap_top_entry(&reg->owners, struct rt_param, gpu_owner_node),
733 struct task_struct, rt_param); 734 struct task_struct, rt_param);
734 735
@@ -738,6 +739,7 @@ int gpu_owner_increase_priority(struct task_struct *t)
738 739
739 retval = gpu_klmirqd_increase_priority(reg->thread, hp_eff); 740 retval = gpu_klmirqd_increase_priority(reg->thread, hp_eff);
740 } 741 }
742#endif
741 743
742out: 744out:
743 return retval; 745 return retval;
@@ -774,6 +776,7 @@ int gpu_owner_decrease_priority(struct task_struct *t)
774 binheap_add(&tsk_rt(t)->gpu_owner_node, &reg->owners, 776 binheap_add(&tsk_rt(t)->gpu_owner_node, &reg->owners,
775 struct rt_param, gpu_owner_node); 777 struct rt_param, gpu_owner_node);
776 778
779#ifdef CONFIG_LITMUS_SOFTIRQD
777 if (hp == t) { /* t was originally the hp */ 780 if (hp == t) { /* t was originally the hp */
778 struct task_struct *new_hp = 781 struct task_struct *new_hp =
779 container_of(binheap_top_entry(&reg->owners, struct rt_param, gpu_owner_node), 782 container_of(binheap_top_entry(&reg->owners, struct rt_param, gpu_owner_node),
@@ -784,6 +787,7 @@ int gpu_owner_decrease_priority(struct task_struct *t)
784 retval = gpu_klmirqd_decrease_priority(reg->thread, hp_eff); 787 retval = gpu_klmirqd_decrease_priority(reg->thread, hp_eff);
785 } 788 }
786 } 789 }
790#endif
787 791
788out: 792out:
789 return retval; 793 return retval;