diff --git a/kernel/sched.c b/kernel/sched.c index f6a81061fd502bd90dd07585ee85e210eb5ec9f0..3209e2cc2c2e8a850b1ca81c11af12bfce95abb2 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -189,11 +189,11 @@ struct cfs_rq { struct rb_root tasks_timeline; struct rb_node *rb_leftmost; struct rb_node *rb_load_balance_curr; -#ifdef CONFIG_FAIR_GROUP_SCHED /* 'curr' points to currently running entity on this cfs_rq. * It is set to NULL otherwise (i.e when none are currently running). */ struct sched_entity *curr; +#ifdef CONFIG_FAIR_GROUP_SCHED struct rq *rq; /* cpu runqueue to which this cfs_rq is attached */ /* leaf cfs_rqs are those that hold tasks (lowest schedulable entity in diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 105d57b41aa24397d09bfa990a58392d6a77c098..335faf06a56184c1123a776918fa8884f1a373d8 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -111,51 +111,38 @@ extern struct sched_class fair_sched_class; * CFS operations on generic schedulable entities: */ -#ifdef CONFIG_FAIR_GROUP_SCHED - -/* cpu runqueue to which this cfs_rq is attached */ -static inline struct rq *rq_of(struct cfs_rq *cfs_rq) -{ - return cfs_rq->rq; -} - /* currently running entity (if any) on this cfs_rq */ static inline struct sched_entity *cfs_rq_curr(struct cfs_rq *cfs_rq) { return cfs_rq->curr; } -/* An entity is a task if it doesn't "own" a runqueue */ -#define entity_is_task(se) (!se->my_q) - static inline void set_cfs_rq_curr(struct cfs_rq *cfs_rq, struct sched_entity *se) { cfs_rq->curr = se; } -#else /* CONFIG_FAIR_GROUP_SCHED */ +#ifdef CONFIG_FAIR_GROUP_SCHED +/* cpu runqueue to which this cfs_rq is attached */ static inline struct rq *rq_of(struct cfs_rq *cfs_rq) { - return container_of(cfs_rq, struct rq, cfs); + return cfs_rq->rq; } -static inline struct sched_entity *cfs_rq_curr(struct cfs_rq *cfs_rq) -{ - struct rq *rq = rq_of(cfs_rq); +/* An entity is a task if it doesn't "own" a runqueue */ +#define entity_is_task(se) (!se->my_q) - if (unlikely(rq->curr->sched_class != &fair_sched_class)) - return NULL; +#else /* CONFIG_FAIR_GROUP_SCHED */ - return &rq->curr->se; +static inline struct rq *rq_of(struct cfs_rq *cfs_rq) +{ + return container_of(cfs_rq, struct rq, cfs); } #define entity_is_task(se) 1 -static inline void -set_cfs_rq_curr(struct cfs_rq *cfs_rq, struct sched_entity *se) { } - #endif /* CONFIG_FAIR_GROUP_SCHED */ static inline struct task_struct *task_of(struct sched_entity *se)