Skip to content
Snippets Groups Projects
Commit 38e1bec6 authored by mandersch's avatar mandersch
Browse files

Update Module Template to use seperate task_structs for each plan entry

parent aa7a8b3d
No related branches found
No related tags found
No related merge requests found
......@@ -246,6 +246,10 @@ static void task_tick_pb(struct rq *rq, struct task_struct *p, int queued)
pb->count_pb_cycles++;
next_mode = determine_next_mode_pb(rq);
if (pb->mode != PB_DISABLED_MODE) {
// printk("TICK");
}
if (pb->is_initialized && next_mode != PB_EXEC_MODE) {
resched_curr(rq);
}
......
......@@ -11,24 +11,32 @@ MODULE_DESCRIPTION("PB Scheduler - Module that sets a proxy task and scheduling
static int loop_thread_func(void *data)
{
unsigned int c = 0;
while (!kthread_should_stop()) {
printk(KERN_WARNING "Hello from Module.\n");
// while (!kthread_should_stop()) {
int a = 0;
printk(KERN_WARNING "A.\n");
set_current_state(TASK_INTERRUPTIBLE);
for (;a < 200000; a++){}
schedule();
printk(KERN_WARNING "B.\n");
// schedule();
c++;
}
// }
printk(KERN_WARNING "Bye from module.\n");
return 0;
}
static void init_rq(struct rq *rq)
{
struct pb_rq *pb_rq = &rq->pb;
struct task_struct *proxy_task;
proxy_task = kthread_create(loop_thread_func, NULL, "PB proxy thread");
proxy_task->sched_class = &pb_sched_class;
struct task_struct **proxy_task;
proxy_task = (struct task_struct **) kmalloc(sizeof(struct task_struct*) * [% plan_size %] , GFP_KERNEL);
int i;
for (i = 0; i < [% plan_size %]; i++) {
proxy_task[i] = kthread_create(loop_thread_func, NULL, "PB proxy thread");
proxy_task[i]->sched_class = &pb_sched_class;
}
set_pb_plan_size(pb_rq, [% plan_size %]);
[% FOREACH entry IN plan %]set_pb_plan_entry(pb_rq, [%entry.index%], [%entry.exec_t%], [%entry.idle_t%], proxy_task);
[% FOREACH entry IN plan %]set_pb_plan_entry(pb_rq, [%entry.index%], [%entry.exec_t%], [%entry.idle_t%], proxy_task[[%entry.index%]]);
[% END %]
pb_submit_plan(rq);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment