From 89f07556637c1a70f5a78ac6cee7deae165755e9 Mon Sep 17 00:00:00 2001 From: Tobias Bouschen <tobias.bouschen@googlemail.com> Date: Mon, 25 Mar 2019 12:57:58 +0100 Subject: [PATCH] Fix some minor layout issues --- kernel/sched/fair.c | 8 +++--- kernel/sched/idle_task.c | 5 ++-- kernel/sched/pb.c | 53 +++++++++++++++++----------------------- 3 files changed, 28 insertions(+), 38 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 68de29374ef9..66d0580d227f 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6191,8 +6191,7 @@ pick_next_task_fair(struct rq *rq, struct task_struct *prev, struct rq_flags *rf next_mode = determine_next_mode_pb(rq); - if (next_mode == PB_EXEC_MODE) - { + if (next_mode == PB_EXEC_MODE) { return RETRY_TASK; } @@ -8970,14 +8969,13 @@ static void task_tick_fair(struct rq *rq, struct task_struct *curr, int queued) if (static_branch_unlikely(&sched_numa_balancing)) task_tick_numa(rq, curr); - if(pb->mode==PB_ADMIN_MODE){ + if (pb->mode==PB_ADMIN_MODE) { pb->count_admin_cycles++; } next_mode = determine_next_mode_pb(rq); - if (next_mode == PB_EXEC_MODE) - { + if (next_mode == PB_EXEC_MODE) { resched_curr(rq); } } diff --git a/kernel/sched/idle_task.c b/kernel/sched/idle_task.c index 50e127c0d6a3..f6183c875367 100644 --- a/kernel/sched/idle_task.c +++ b/kernel/sched/idle_task.c @@ -30,8 +30,7 @@ pick_next_task_idle(struct rq *rq, struct task_struct *prev, struct rq_flags *rf next_mode = determine_next_mode_pb(rq); - if (next_mode == PB_EXEC_MODE) - { + if (next_mode == PB_EXEC_MODE) { return RETRY_TASK; } @@ -64,7 +63,7 @@ static void task_tick_idle(struct rq *rq, struct task_struct *curr, int queued) struct pb_rq *pb = &(rq->pb); enum pb_mode next_mode; - if(pb->mode == PB_ADMIN_MODE){ + if (pb->mode == PB_ADMIN_MODE) { pb->count_admin_cycles++; } diff --git a/kernel/sched/pb.c b/kernel/sched/pb.c index 2c06100fba6a..2af03985b818 100644 --- a/kernel/sched/pb.c +++ b/kernel/sched/pb.c @@ -1,5 +1,4 @@ #include "perf_error_detection.h" -//#include "sched.h" /* * It is possible submit a plan only if no plan is currently executed @@ -11,8 +10,9 @@ int pb_submit_plan(struct pb_init_struct *initstr, struct rq *rq) */ volatile struct pb_rq * pb = (volatile struct pb_rq*)(&(rq->pb)); - if (pb->mode != PB_DISABLED_MODE) + if (pb->mode != PB_DISABLED_MODE) { return -1; + } pb->plan = initstr->plan; pb->size = initstr->size; @@ -25,7 +25,7 @@ int pb_submit_plan(struct pb_init_struct *initstr, struct rq *rq) pb->is_initialized = 1; // must be initialized last - resched_curr(rq); // reschedule asap + resched_curr(rq); // reschedule ASAP return 0; } @@ -42,7 +42,7 @@ EXPORT_SYMBOL(set_pb_plan_size); * Kelvin's Testcode */ //insert into pb queue (analog to enqueue) -void set_pb_plan_entry(struct pb_rq *pb_rq, unsigned int i, u64 n_instr, u64 task_id, struct task_struct *task_struct ) +void set_pb_plan_entry(struct pb_rq *pb_rq, unsigned int i, u64 n_instr, u64 task_id, struct task_struct *task_struct) { pb_rq->plan[i].n_instr = n_instr; pb_rq->plan[i].task_id = task_id; @@ -100,13 +100,12 @@ static struct task_struct * pick_next_task_pb(struct rq *rq, pb->mode = next_mode; // The mode does not change --> no behavior change is needed - if (next_mode == PB_EXEC_MODE) - { - if (current_mode == PB_EXEC_MODE){ + if (next_mode == PB_EXEC_MODE) { + if (current_mode == PB_EXEC_MODE) { u64 perf_counter; u64 read_error = get_perf_counter(pb->pevent, &perf_counter); - if (read_error){ + if (read_error) { printk(KERN_WARNING "FETCHING PERFORMANCE COUNTER IN PB SCHEDULER FAILED WITH %llu\n", read_error); } @@ -115,55 +114,51 @@ static struct task_struct * pick_next_task_pb(struct rq *rq, // see 'perf_event_release_kernel(struct perf_event *event)' in core.c pb->pevent = NULL; - if (perf_counter < pb->plan[pb->c_entry].n_instr){ + if (perf_counter < pb->plan[pb->c_entry].n_instr) { u64 under_time = pb->plan[pb->c_entry].n_instr - perf_counter; - printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO SHORT\n", pb->plan[pb->c_entry].task_id, under_time); - - } else if (perf_counter > pb->plan[pb->c_entry].n_instr){ + printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO SHORT\n", pb->plan[pb->c_entry].task_id, under_time); + } else if (perf_counter > pb->plan[pb->c_entry].n_instr) { u64 under_time = perf_counter - pb->plan[pb->c_entry].n_instr; - printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO LONG\n", pb->plan[pb->c_entry].task_id, under_time); + printk(KERN_WARNING "PB TASK %llu RAN %llu INSTRUCTIONS TOO LONG\n", pb->plan[pb->c_entry].task_id, under_time); } - pb->c_entry++; - if (pb->c_entry >= pb->size){ + if (pb->c_entry >= pb->size) { printk(KERN_DEBUG "PLAN DONE\n"); pb->mode = PB_DISABLED_MODE; pb->is_initialized = 0; - }else{ + } else { int perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &pb->pevent); - if(perf_init_res < 0){ + if(perf_init_res < 0) { //initialization error detection/handling could happen here printk(KERN_WARNING "PB EXEC,START,%u,%llu: FAILED OPEN PERF EVENT\n", pb->c_entry, sched_clock()); } else { printk(KERN_DEBUG "PB EXEC,START,%u,%llu\n", pb->c_entry, sched_clock()); - } } - }else if(current_mode == PB_ADMIN_MODE){ + } else if(current_mode == PB_ADMIN_MODE) { printk(KERN_DEBUG "PB ADMIN,STOP,%u,%llu\n", pb->c_entry, sched_clock()); - }else{ + } else { // PB_DISABLED_MODE int perf_init_res = init_perf_event(&pb->plan[pb->c_entry], &pb->pevent); - if(perf_init_res < 0){ + if(perf_init_res < 0) { //initialization error detection/handling could happen here printk(KERN_WARNING "PB INIT,%u,%llu: FAILED OPEN PERF EVENT\n", pb->c_entry, sched_clock()); } else { printk(KERN_DEBUG "PB INIT,%u,%llu\n", pb->c_entry, sched_clock()); - } } - if (pb->mode != PB_DISABLED_MODE){ + if (pb->mode != PB_DISABLED_MODE) { // Return current task from plan if plan is enabled picked = pb->plan[pb->c_entry].task_struct; } } - if (current_mode != next_mode){ + if (current_mode != next_mode) { // Necessary to manage the preempted task put_prev_task(rq, prev); } @@ -192,8 +187,7 @@ 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 (next_mode != PB_EXEC_MODE) - { + if (next_mode != PB_EXEC_MODE) { resched_curr(rq); } } @@ -203,8 +197,7 @@ static unsigned int get_rr_interval_pb(struct rq *rq, struct task_struct *task) return 0; } -static void -prio_changed_pb(struct rq *rq, struct task_struct *p, int oldprio) +static void prio_changed_pb(struct rq *rq, struct task_struct *p, int oldprio) { // NOP } @@ -233,9 +226,9 @@ const struct sched_class pb_sched_class = { .set_curr_task = set_curr_task_pb, // NOP .task_tick = task_tick_pb, - .get_rr_interval = get_rr_interval_pb, // NOP + .get_rr_interval = get_rr_interval_pb, // NOP (return 0) - .prio_changed = prio_changed_pb, // NOP (return 0) + .prio_changed = prio_changed_pb, // NOP .switched_to = switched_to_pb, // NOP .update_curr = update_curr_pb, // NOP -- GitLab