kernel/sched_bfs.c | 76 +++++++++++++++++++++++++++-----------------------
2 files changed, 43 insertions(+), 35 deletions(-)
-Index: linux-2.6.35.7/kernel/sched_bfs.c
+Index: linux-2.6.28/kernel/sched_bfs.c
===================================================================
---- linux-2.6.35.7.orig/kernel/sched_bfs.c 2010-10-03 21:29:08.421363441 +1100
-+++ linux-2.6.35.7/kernel/sched_bfs.c 2010-10-04 11:39:08.027283891 +1100
-@@ -111,10 +111,12 @@
+--- linux-2.6.28.orig/kernel/sched_bfs.c 2010-10-03 21:29:08.421363441 +1100
++++ linux-2.6.28/kernel/sched_bfs.c 2010-10-04 11:39:08.027283891 +1100
+@@ -107,10 +107,12 @@
* approximate multiples of ten for less overhead.
*/
#define JIFFIES_TO_NS(TIME) ((TIME) * (1000000000 / HZ))
#define NS_TO_MS(TIME) ((TIME) >> 20)
#define NS_TO_US(TIME) ((TIME) >> 10)
-@@ -165,8 +167,8 @@ struct global_rq {
+@@ -182,8 +184,8 @@ struct global_rq {
cpumask_t cpu_idle_map;
int idle_cpus;
#endif
+ u64 niffies; /* Nanosecond jiffies */
+ unsigned long last_jiffy; /* Last jiffy we updated niffies */
- raw_spinlock_t iso_lock;
+ spinlock_t iso_lock;
int iso_ticks;
-@@ -193,7 +195,7 @@ struct rq {
+@@ -209,7 +211,7 @@ struct rq {
struct mm_struct *prev_mm;
/* Stored data about rq->curr to work outside grq lock */
grq.niffies += ndiff;
}
#endif
-@@ -1202,7 +1221,7 @@ EXPORT_SYMBOL_GPL(kick_process);
+@@ -1203,7 +1222,7 @@ void kick_process(struct task_struct *p)
* prio PRIO_LIMIT so it is always preempted.
*/
static inline int
unsigned int policy)
{
/* Better static priority RT task or better policy preemption */
-@@ -1252,7 +1271,8 @@ static inline int needs_other_cpu(struct
+@@ -1254,7 +1273,8 @@ static inline int needs_other_cpu(struct
static void try_preempt(struct task_struct *p, struct rq *this_rq)
{
struct rq *highest_prio_rq = this_rq;
int highest_prio;
cpumask_t tmp;
-@@ -1274,7 +1294,7 @@ static void try_preempt(struct task_stru
+@@ -1276,7 +1296,7 @@ static void try_preempt(struct task_stru
highest_prio = -1;
for_each_cpu_mask_nr(cpu, tmp) {
struct rq *rq;
int rq_prio;
-@@ -1975,16 +1995,12 @@ static void pc_user_time(struct rq *rq,
+@@ -1895,16 +1915,12 @@ static void pc_user_time(struct rq *rq,
}
/* Convert nanoseconds to percentage of one tick. */
*/
static void
update_cpu_clock(struct rq *rq, struct task_struct *p, int tick)
-@@ -2019,18 +2035,9 @@ update_cpu_clock(struct rq *rq, struct t
+@@ -1939,18 +1955,9 @@ update_cpu_clock(struct rq *rq, struct t
/* time_slice accounting is done in usecs to avoid overflow on 32bit */
if (rq->rq_policy != SCHED_FIFO && p != idle) {
rq->rq_time_slice -= NS_TO_US(time_diff);
}
rq->rq_last_ran = rq->timekeep_clock = rq->clock;
-@@ -2438,17 +2445,17 @@ EXPORT_SYMBOL(sub_preempt_count);
+@@ -2358,17 +2365,17 @@ EXPORT_SYMBOL(sub_preempt_count);
* proportion works out to the square of the virtual deadline difference, so
* this equation will give nice 19 3% CPU compared to nice 0.
*/
{
return prio_deadline_diff(USER_PRIO(static_prio));
}
-@@ -2504,7 +2511,7 @@ static inline void check_deadline(struct
+@@ -2424,7 +2431,7 @@ static inline void check_deadline(struct
static inline struct
task_struct *earliest_deadline_task(struct rq *rq, struct task_struct *idle)
{
struct task_struct *p, *edt = idle;
unsigned int cpu = cpu_of(rq);
struct list_head *queue;
-@@ -6644,6 +6651,7 @@ void __init sched_init(void)
+@@ -6100,6 +6107,7 @@ void __init sched_init(void)
spin_lock_init(&grq.lock);
grq.nr_running = grq.nr_uninterruptible = grq.nr_switches = 0;
grq.niffies = 0;
spin_lock_init(&grq.iso_lock);
grq.iso_ticks = grq.iso_refractory = 0;
#ifdef CONFIG_SMP
-Index: linux-2.6.35.7/include/linux/sched.h
+Index: linux-2.6.28/include/linux/sched.h
===================================================================
---- linux-2.6.35.7.orig/include/linux/sched.h 2010-10-04 09:34:58.028244089 +1100
-+++ linux-2.6.35.7/include/linux/sched.h 2010-10-04 09:35:08.833093538 +1100
-@@ -1541,7 +1541,7 @@ static inline void tsk_cpus_current(stru
+--- linux-2.6.28.orig/include/linux/sched.h 2010-10-04 09:34:58.028244089 +1100
++++ linux-2.6.28/include/linux/sched.h 2010-10-04 09:35:08.833093538 +1100
+@@ -1426,7 +1426,7 @@ static inline void tsk_cpus_current(stru
static inline void print_scheduler_version(void)
{