aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2009-05-02 21:57:58 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2009-05-02 21:57:58 -0400
commit588411e07c2c93456d29904b813c05553db88559 (patch)
tree128da753107c1b1f4811e152834827a3b870d309
parente856595d055f3a1f8ca46f19e8d061f73e12a09a (diff)
litmus core: report ready tasks to user space
-rw-r--r--litmus/litmus.c9
-rw-r--r--litmus/sync.c14
2 files changed, 21 insertions, 2 deletions
diff --git a/litmus/litmus.c b/litmus/litmus.c
index becc00069b..60e7507ba0 100644
--- a/litmus/litmus.c
+++ b/litmus/litmus.c
@@ -701,6 +701,9 @@ static struct sysrq_key_op sysrq_kill_rt_tasks_op = {
701 701
702#endif 702#endif
703 703
704/* in sync.c */
705int count_tasks_waiting_for_release(void);
706
704static int proc_read_stats(char *page, char **start, 707static int proc_read_stats(char *page, char **start,
705 off_t off, int count, 708 off_t off, int count,
706 int *eof, void *data) 709 int *eof, void *data)
@@ -708,8 +711,10 @@ static int proc_read_stats(char *page, char **start,
708 int len; 711 int len;
709 712
710 len = snprintf(page, PAGE_SIZE, 713 len = snprintf(page, PAGE_SIZE,
711 "real-time task count = %d\n", 714 "real-time tasks = %d\n"
712 atomic_read(&rt_task_count)); 715 "ready for release = %d\n",
716 atomic_read(&rt_task_count),
717 count_tasks_waiting_for_release());
713 return len; 718 return len;
714} 719}
715 720
diff --git a/litmus/sync.c b/litmus/sync.c
index 9c9941fc27..bd2c677d64 100644
--- a/litmus/sync.c
+++ b/litmus/sync.c
@@ -33,6 +33,20 @@ static long do_wait_for_ts_release(void)
33 return ret; 33 return ret;
34} 34}
35 35
36int count_tasks_waiting_for_release(void)
37{
38 long flags;
39 int task_count = 0;
40 struct list_head *pos;
41
42 spin_lock_irqsave(&ts_release.wait.lock, flags);
43 list_for_each(pos, &ts_release.wait.task_list) {
44 task_count++;
45 }
46 spin_unlock_irqrestore(&ts_release.wait.lock, flags);
47
48 return task_count;
49}
36 50
37static long do_release_ts(lt_t start) 51static long do_release_ts(lt_t start)
38{ 52{