mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 05:34:13 +08:00
sched: mark scheduling classes as const
mark scheduling classes as const. The speeds up the code a bit and shrinks it: text data bss dec hex filename 40027 4018 292 44337 ad31 sched.o.before 40190 3842 292 44324 ad24 sched.o.after Signed-off-by: Ingo Molnar <mingo@elte.hu> Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
b9fa3df33f
commit
5522d5d5f7
@ -863,7 +863,7 @@ struct rq;
|
||||
struct sched_domain;
|
||||
|
||||
struct sched_class {
|
||||
struct sched_class *next;
|
||||
const struct sched_class *next;
|
||||
|
||||
void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup);
|
||||
void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep);
|
||||
@ -949,7 +949,7 @@ struct task_struct {
|
||||
|
||||
int prio, static_prio, normal_prio;
|
||||
struct list_head run_list;
|
||||
struct sched_class *sched_class;
|
||||
const struct sched_class *sched_class;
|
||||
struct sched_entity se;
|
||||
|
||||
#ifdef CONFIG_PREEMPT_NOTIFIERS
|
||||
|
@ -847,9 +847,9 @@ static int balance_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest,
|
||||
int *this_best_prio, struct rq_iterator *iterator);
|
||||
|
||||
#include "sched_stats.h"
|
||||
#include "sched_rt.c"
|
||||
#include "sched_fair.c"
|
||||
#include "sched_idletask.c"
|
||||
#include "sched_fair.c"
|
||||
#include "sched_rt.c"
|
||||
#ifdef CONFIG_SCHED_DEBUG
|
||||
# include "sched_debug.c"
|
||||
#endif
|
||||
@ -2251,7 +2251,7 @@ static int move_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest,
|
||||
struct sched_domain *sd, enum cpu_idle_type idle,
|
||||
int *all_pinned)
|
||||
{
|
||||
struct sched_class *class = sched_class_highest;
|
||||
const struct sched_class *class = sched_class_highest;
|
||||
unsigned long total_load_moved = 0;
|
||||
int this_best_prio = this_rq->curr->prio;
|
||||
|
||||
@ -2276,7 +2276,7 @@ static int move_tasks(struct rq *this_rq, int this_cpu, struct rq *busiest,
|
||||
static int move_one_task(struct rq *this_rq, int this_cpu, struct rq *busiest,
|
||||
struct sched_domain *sd, enum cpu_idle_type idle)
|
||||
{
|
||||
struct sched_class *class;
|
||||
const struct sched_class *class;
|
||||
int this_best_prio = MAX_PRIO;
|
||||
|
||||
for (class = sched_class_highest; class; class = class->next)
|
||||
@ -3432,7 +3432,7 @@ static inline void schedule_debug(struct task_struct *prev)
|
||||
static inline struct task_struct *
|
||||
pick_next_task(struct rq *rq, struct task_struct *prev)
|
||||
{
|
||||
struct sched_class *class;
|
||||
const struct sched_class *class;
|
||||
struct task_struct *p;
|
||||
|
||||
/*
|
||||
@ -6504,13 +6504,6 @@ void __init sched_init(void)
|
||||
int highest_cpu = 0;
|
||||
int i, j;
|
||||
|
||||
/*
|
||||
* Link up the scheduling class hierarchy:
|
||||
*/
|
||||
rt_sched_class.next = &fair_sched_class;
|
||||
fair_sched_class.next = &idle_sched_class;
|
||||
idle_sched_class.next = NULL;
|
||||
|
||||
for_each_possible_cpu(i) {
|
||||
struct rt_prio_array *array;
|
||||
struct rq *rq;
|
||||
|
@ -76,8 +76,6 @@ const_debug unsigned int sysctl_sched_batch_wakeup_granularity = 25000000UL;
|
||||
*/
|
||||
const_debug unsigned int sysctl_sched_wakeup_granularity = 2000000UL;
|
||||
|
||||
extern struct sched_class fair_sched_class;
|
||||
|
||||
/**************************************************************
|
||||
* CFS operations on generic schedulable entities:
|
||||
*/
|
||||
@ -1031,7 +1029,8 @@ static void set_curr_task_fair(struct rq *rq)
|
||||
/*
|
||||
* All the scheduling class methods:
|
||||
*/
|
||||
struct sched_class fair_sched_class __read_mostly = {
|
||||
static const struct sched_class fair_sched_class = {
|
||||
.next = &idle_sched_class,
|
||||
.enqueue_task = enqueue_task_fair,
|
||||
.dequeue_task = dequeue_task_fair,
|
||||
.yield_task = yield_task_fair,
|
||||
|
@ -57,7 +57,8 @@ static void set_curr_task_idle(struct rq *rq)
|
||||
/*
|
||||
* Simple, special scheduling class for the per-CPU idle tasks:
|
||||
*/
|
||||
static struct sched_class idle_sched_class __read_mostly = {
|
||||
const struct sched_class idle_sched_class = {
|
||||
/* .next is NULL */
|
||||
/* no enqueue/yield_task for idle tasks */
|
||||
|
||||
/* dequeue is not valid, we print a debug message there: */
|
||||
|
@ -225,7 +225,8 @@ static void set_curr_task_rt(struct rq *rq)
|
||||
p->se.exec_start = rq->clock;
|
||||
}
|
||||
|
||||
static struct sched_class rt_sched_class __read_mostly = {
|
||||
const struct sched_class rt_sched_class = {
|
||||
.next = &fair_sched_class,
|
||||
.enqueue_task = enqueue_task_rt,
|
||||
.dequeue_task = dequeue_task_rt,
|
||||
.yield_task = yield_task_rt,
|
||||
|
Loading…
Reference in New Issue
Block a user