aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2012-01-11 14:37:13 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2012-01-11 14:37:13 -0500
commit5d7dcfa10ea0dd283773a301e3ce610a7797d582 (patch)
tree7f7a57ac940e7fe1f538cdd771a954d4fb28f8c0 /kernel
parent3d5537c160c1484e8d562b9828baf679cc53f67a (diff)
PAI implementation, C-RM, C-FIFO.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/sched.c4
-rw-r--r--kernel/softirq.c4
-rw-r--r--kernel/workqueue.c2
3 files changed, 8 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 3162605ffc91..3aa2be09122b 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -3897,8 +3897,10 @@ need_resched_nonpreemptible:
3897 if (need_resched()) 3897 if (need_resched())
3898 goto need_resched; 3898 goto need_resched;
3899 3899
3900#ifdef LITMUS_SOFTIRQD
3900 reacquire_klitirqd_lock(prev); 3901 reacquire_klitirqd_lock(prev);
3901 3902#endif
3903
3902 srp_ceiling_block(); 3904 srp_ceiling_block();
3903} 3905}
3904EXPORT_SYMBOL(schedule); 3906EXPORT_SYMBOL(schedule);
diff --git a/kernel/softirq.c b/kernel/softirq.c
index be4b8fab3637..ae77c5c1d17e 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -35,6 +35,7 @@
35 35
36#ifdef CONFIG_LITMUS_NVIDIA 36#ifdef CONFIG_LITMUS_NVIDIA
37#include <litmus/nvidia_info.h> 37#include <litmus/nvidia_info.h>
38#include <litmus/trace.h>
38#endif 39#endif
39 40
40/* 41/*
@@ -441,6 +442,9 @@ void __tasklet_schedule(struct tasklet_struct *t)
441 if(likely(_litmus_tasklet_schedule(t,nvidia_device))) 442 if(likely(_litmus_tasklet_schedule(t,nvidia_device)))
442 { 443 {
443 unlock_nv_registry(nvidia_device, &flags); 444 unlock_nv_registry(nvidia_device, &flags);
445
446 TS_NV_RELEASE_BOTISR_END;
447
444 return; 448 return;
445 } 449 }
446 else 450 else
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 8139208eaee1..637cadac2627 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -2531,7 +2531,7 @@ EXPORT_SYMBOL(cancel_delayed_work_sync);
2531 */ 2531 */
2532int schedule_work(struct work_struct *work) 2532int schedule_work(struct work_struct *work)
2533{ 2533{
2534#ifdef CONFIG_LITMUS_NVIDIA 2534#if defined(CONFIG_LITMUS_NVIDIA) && defined(CONFIG_LITMUS_SOFTIRQD)
2535 if(is_nvidia_func(work->func)) 2535 if(is_nvidia_func(work->func))
2536 { 2536 {
2537 u32 nvidiaDevice = get_work_nv_device_num(work); 2537 u32 nvidiaDevice = get_work_nv_device_num(work);