diff --git a/build b/build_kernel.sh similarity index 89% rename from build rename to build_kernel.sh index 07d48ceef579a4f2886767797729fa7483e94d77..7029679eea09a398b80a155539c4c775f1c47ed9 100755 --- a/build +++ b/build_kernel.sh @@ -1,3 +1,5 @@ +#!/bin/bash + worker=8 time make -j"$worker" bzImage diff --git a/build_module b/build_module.sh similarity index 75% rename from build_module rename to build_module.sh index 011f53a5fd2a68ca11733fd92b05a9f3758a81ba..2b494e563c7fa948ef616a525f9ede5e5de4341e 100755 --- a/build_module +++ b/build_module.sh @@ -1,3 +1,5 @@ +#!/bin/bash + cd ./pb_utils/mod_gen/mods/ make cd - diff --git a/build_pb_submitter.sh b/build_pb_submitter.sh new file mode 100755 index 0000000000000000000000000000000000000000..56ea2188c90f53928ee889ebe886288f42cc886c --- /dev/null +++ b/build_pb_submitter.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +cd ./pb_utils/pb_submitter +./build.sh +cd - + diff --git a/kernel/sched/pb.c b/kernel/sched/pb.c index f320071e32375aa779c1baca2309c08b1400bba2..5f1df293d3d2f4c24c16109fa7dc222a87053b22 100644 --- a/kernel/sched/pb.c +++ b/kernel/sched/pb.c @@ -164,7 +164,7 @@ static void enqueue_task_pb(struct rq *rq, struct task_struct *p, int flags) /** * Don't schedule a task that is dead. (e.g. plan was incorrect and program finished quicker) - * todo: if we have multiple tasks structs just try the next plan entry + * TODO: if we have multiple tasks structs try the next plan entry */ if (pb->c_entry < pb->size && pb->plan[pb->c_entry].task_struct->state == TASK_DEAD) { premature_finish = true; @@ -235,7 +235,6 @@ static void check_preempt_curr_pb(struct rq *rq, struct task_struct *p, int flag static struct task_struct * pick_next_task_pb(struct rq *rq, struct task_struct *prev, struct rq_flags *rf) { - // contains task to be executed struct task_struct *picked = NULL; enum pb_mode current_mode, next_mode; @@ -348,8 +347,8 @@ static void update_curr_pb(struct rq *rq) const struct sched_class pb_sched_class = { .next = &dl_sched_class, - .enqueue_task = enqueue_task_pb, // NOP - .dequeue_task = dequeue_task_pb, // NOP + .enqueue_task = enqueue_task_pb, + .dequeue_task = dequeue_task_pb, .yield_task = yield_task_pb, .check_preempt_curr = check_preempt_curr_pb, // NOP diff --git a/pb_utils/pb_submitter/pb_submitter.c b/pb_utils/pb_submitter/pb_submitter.c index e8cb3474749e655885619f8f4e033cfba0fa13eb..04856044452683865a931a55cdb017b476987f20 100644 --- a/pb_utils/pb_submitter/pb_submitter.c +++ b/pb_utils/pb_submitter/pb_submitter.c @@ -54,7 +54,7 @@ int main(int argc, char** argv) perror("pipe"); return -1; } - + fp = fopen(argv[2], "r"); if (fp == NULL) { usage(); diff --git a/pb_utils/pb_submitter/syscall_long_test.c b/pb_utils/pb_submitter/syscall_long_test.c index afefbcba6c6bb21301255d8220c4efbfd879dd6c..820fec2b2128a698b050740889f27e2226b30519 100644 --- a/pb_utils/pb_submitter/syscall_long_test.c +++ b/pb_utils/pb_submitter/syscall_long_test.c @@ -10,8 +10,9 @@ int main(void) int a = 0; int c = 0; for (;a < 100000; a++){c = c + a;} - // check if program runs && syscall to switch tasks + // check if program runs printf("loop run: %d, c = %d \n", b, c); + // syscall to switch tasks usleep(10000); } return 0; diff --git a/pb_utils/pb_submitter/task_long_test.c b/pb_utils/pb_submitter/task_long_test.c index b9f9c2d7610448545c08be0fc78d901ae118c827..0a96cbd83de4fb64bd20ae37256f8f78571655e8 100644 --- a/pb_utils/pb_submitter/task_long_test.c +++ b/pb_utils/pb_submitter/task_long_test.c @@ -10,8 +10,9 @@ int main(void) int a = 0; int c = 0; for (;a < 10000000; a++){c = c + a;} - // check if program runs && syscall to switch tasks + // check if program runs printf("loop run: %d, c = %d \n", b, c); + // syscall to switch tasks usleep(1); } return 0; diff --git a/pb_utils/pb_submitter/test_prog.c b/pb_utils/pb_submitter/test_prog.c index 74d87392c32815ad0502096c0bafc295b89fa7ac..11c4bcb587b52f9479cc54fdf99113755e6c6cb8 100644 --- a/pb_utils/pb_submitter/test_prog.c +++ b/pb_utils/pb_submitter/test_prog.c @@ -10,8 +10,9 @@ int main(void) int a = 0; int c = 0; for (;a < 100000; a++){c = c + a;} - // check if program runs && syscall to switch tasks + // check if program runs printf("loop run: %d, c = %d \n", b, c); + // syscall to switch tasks usleep(1); } return 0;