packages (Titanium): kernel-desktop/kernel-desktop-sched-bfs.patch - bfs up...

cactus cactus at pld-linux.org
Fri Sep 25 18:19:28 CEST 2009


Author: cactus                       Date: Fri Sep 25 16:19:28 2009 GMT
Module: packages                      Tag: Titanium
---- Log message:
- bfs up to 232

---- Files affected:
packages/kernel-desktop:
   kernel-desktop-sched-bfs.patch (1.1.2.7 -> 1.1.2.8) 

---- Diffs:

================================================================
Index: packages/kernel-desktop/kernel-desktop-sched-bfs.patch
diff -u packages/kernel-desktop/kernel-desktop-sched-bfs.patch:1.1.2.7 packages/kernel-desktop/kernel-desktop-sched-bfs.patch:1.1.2.8
--- packages/kernel-desktop/kernel-desktop-sched-bfs.patch:1.1.2.7	Tue Sep 22 02:44:22 2009
+++ packages/kernel-desktop/kernel-desktop-sched-bfs.patch	Fri Sep 25 18:19:22 2009
@@ -1,4 +1,4 @@
-The Brain Fuck Scheduler v0.230 by Con Kolivas.
+The Brain Fuck Scheduler v0.232 by Con Kolivas.
 
 A single shared runqueue O(n) strict fairness earliest deadline first design.
 
@@ -38,23 +38,7 @@
  kernel/kthread.c                |    4
  kernel/posix-cpu-timers.c       |   14
  kernel/sched.c                  |10583 ----------------------------------------
- Documentation/sysctl/kernel.txt |   26
- Makefile                        |    2
- fs/pipe.c                       |    4
- fs/proc/base.c                  |    2
- include/linux/init_task.h       |   15
- include/linux/ioprio.h          |    2
- include/linux/sched.h           |  194
- init/Kconfig                    |   61
- kernel/Kconfig.preempt          |   19
- kernel/Makefile                 |    4
- kernel/delayacct.c              |    2
- kernel/exit.c                   |    6
- kernel/fork.c                   |    2
- kernel/kthread.c                |    4
- kernel/posix-cpu-timers.c       |   14
- kernel/sched.c                  |10583 ----------------------------------------
- kernel/sched_bfs.c              | 6104 +++++++++++++++++++++++
+ kernel/sched_bfs.c              | 6150 +++++++++++++++++++++++
  kernel/sched_debug.c            |  509 -
  kernel/sched_fair.c             | 1842 ------
  kernel/sched_idletask.c         |  129
@@ -64,12 +48,12 @@
  kernel/trace/trace.c            |    4
  kernel/workqueue.c              |    2
  mm/oom_kill.c                   |    2
- 26 files changed, 6213 insertions(+), 15265 deletions(-)
+ 26 files changed, 6259 insertions(+), 15265 deletions(-)
 
 Index: linux-2.6.31-bfs/Documentation/sysctl/kernel.txt
 ===================================================================
 --- linux-2.6.31-bfs.orig/Documentation/sysctl/kernel.txt	2009-09-10 11:43:10.000000000 +1000
-+++ linux-2.6.31-bfs/Documentation/sysctl/kernel.txt	2009-09-19 16:44:41.750240511 +1000
++++ linux-2.6.31-bfs/Documentation/sysctl/kernel.txt	2009-09-22 18:42:26.751614798 +1000
 @@ -27,6 +27,7 @@ show up in /proc/sys/kernel:
  - domainname
  - hostname
@@ -127,7 +111,7 @@
 Index: linux-2.6.31-bfs/fs/pipe.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/fs/pipe.c	2009-09-10 11:45:24.000000000 +1000
-+++ linux-2.6.31-bfs/fs/pipe.c	2009-09-19 16:44:41.751239255 +1000
++++ linux-2.6.31-bfs/fs/pipe.c	2009-09-22 18:42:26.777615327 +1000
 @@ -78,10 +78,6 @@ void pipe_wait(struct pipe_inode_info *p
  {
  	DEFINE_WAIT(wait);
@@ -142,7 +126,7 @@
 Index: linux-2.6.31-bfs/include/linux/init_task.h
 ===================================================================
 --- linux-2.6.31-bfs.orig/include/linux/init_task.h	2009-09-10 11:45:32.000000000 +1000
-+++ linux-2.6.31-bfs/include/linux/init_task.h	2009-09-19 16:44:41.784239187 +1000
++++ linux-2.6.31-bfs/include/linux/init_task.h	2009-09-22 18:42:26.793618650 +1000
 @@ -116,21 +116,16 @@ extern struct cred init_cred;
  	.usage		= ATOMIC_INIT(2),				\
  	.flags		= PF_KTHREAD,					\
@@ -173,7 +157,7 @@
 Index: linux-2.6.31-bfs/include/linux/sched.h
 ===================================================================
 --- linux-2.6.31-bfs.orig/include/linux/sched.h	2009-09-10 11:45:35.000000000 +1000
-+++ linux-2.6.31-bfs/include/linux/sched.h	2009-09-19 16:44:41.787239190 +1000
++++ linux-2.6.31-bfs/include/linux/sched.h	2009-09-22 18:42:26.810615979 +1000
 @@ -36,8 +36,11 @@
  #define SCHED_FIFO		1
  #define SCHED_RR		2
@@ -451,7 +435,7 @@
 Index: linux-2.6.31-bfs/kernel/sched.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/sysctl.c	2009-09-10 11:45:40.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/sysctl.c	2009-09-19 16:44:41.797239567 +1000
++++ linux-2.6.31-bfs/kernel/sysctl.c	2009-09-22 18:42:26.823615207 +1000
 @@ -86,6 +86,8 @@ extern int percpu_pagelist_fraction;
  extern int compat_log;
  extern int latencytop_enabled;
@@ -642,7 +626,7 @@
 Index: linux-2.6.31-bfs/kernel/workqueue.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/workqueue.c	2009-09-10 11:45:41.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/workqueue.c	2009-09-19 16:44:41.809251974 +1000
++++ linux-2.6.31-bfs/kernel/workqueue.c	2009-09-22 18:42:26.827615694 +1000
 @@ -317,8 +317,6 @@ static int worker_thread(void *__cwq)
  	if (cwq->wq->freezeable)
  		set_freezable();
@@ -655,8 +639,8 @@
 Index: linux-2.6.31-bfs/kernel/sched_fair.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.31-bfs/kernel/sched_bfs.c	2009-09-19 16:46:17.843365208 +1000
-@@ -0,0 +1,6104 @@
++++ linux-2.6.31-bfs/kernel/sched_bfs.c	2009-09-22 19:16:28.271354482 +1000
+@@ -0,0 +1,6150 @@
 +/*
 + *  kernel/sched_bfs.c, was sched.c
 + *
@@ -1013,8 +997,8 @@
 +static inline void grq_lock_irqsave(unsigned long *flags)
 +	__acquires(grq.lock)
 +{
-+	smp_mb();
-+	spin_lock_irqsave(&grq.lock, *flags);
++	local_irq_save(*flags);
++	grq_lock();
 +}
 +
 +static inline void grq_unlock_irqrestore(unsigned long *flags)
@@ -1040,6 +1024,29 @@
 +	return rq;
 +}
 +
++static inline struct rq
++*task_grq_lock_irq(struct task_struct *p)
++	__acquires(grq.lock)
++{
++	grq_lock_irq();
++	return task_rq(p);
++}
++
++static inline void
++time_task_grq_lock_irq(struct task_struct *p)
++	__acquires(grq.lock)
++{
++	struct rq *rq = task_grq_lock_irq(p);
++	update_rq_clock(rq);
++}
++
++static inline void
++task_grq_unlock_irq(void)
++	__releases(grq.lock)
++{
++	grq_unlock_irq();
++}
++
 +static inline void task_grq_unlock(unsigned long *flags)
 +	__releases(grq.lock)
 +{
@@ -1068,8 +1075,8 @@
 +static inline void time_grq_lock(struct rq *rq, unsigned long *flags)
 +	__acquires(grq.lock)
 +{
-+	spin_lock_irqsave(&grq.lock, *flags);
-+	update_rq_clock(rq);
++	local_irq_save(*flags);
++	time_lock_grq(rq);
 +}
 +
 +static inline struct rq *__task_grq_lock(struct task_struct *p)
@@ -1233,7 +1240,33 @@
 +{
 +	return grq.qnr;
 +}
-+#else
++
++static inline void set_cpuidle_map(unsigned long cpu)
++{
++	cpu_set(cpu, grq.cpu_idle_map);
++}
++
++static inline void clear_cpuidle_map(unsigned long cpu)
++{
++	cpu_clear(cpu, grq.cpu_idle_map);
++}
++
++static int suitable_idle_cpus(struct task_struct *p)
++{
++	return (cpus_intersects(p->cpus_allowed, grq.cpu_idle_map));
++}
++
++static inline void resched_suitable_idle(struct task_struct *p)
++{
++	cpumask_t tmp;
++
++	cpus_and(tmp, p->cpus_allowed, grq.cpu_idle_map);
++
++	if (!cpus_empty(tmp))
++		wake_up_idle_cpu(first_cpu(tmp));
++}
++
++#else /* CONFIG_SMP */
 +static inline void inc_qnr(void)
 +{
 +}
@@ -1246,7 +1279,25 @@
 +{
 +	return grq.nr_running;
 +}
-+#endif
++
++static inline void set_cpuidle_map(unsigned long cpu)
++{
++}
++
++static inline void clear_cpuidle_map(unsigned long cpu)
++{
++}
++
++/* Always called from a busy cpu on UP */
++static int suitable_idle_cpus(struct task_struct *p)
++{
++	return 0;
++}
++
++static inline void resched_suitable_idle(struct task_struct *p)
++{
++}
++#endif /* CONFIG_SMP */
 +
 +/*
 + * activate_idle_task - move idle task to the _front_ of runqueue.
@@ -1604,6 +1655,7 @@
 +#endif
 +
 +#define rq_idle(rq)	((rq)->rq_prio == PRIO_LIMIT)
++#define task_idle(p)	((p)->prio == PRIO_LIMIT)
 +
 +/*
 + * RT tasks preempt purely on priority. SCHED_NORMAL tasks preempt on the
@@ -1697,18 +1749,6 @@
 +	preempt_enable();
 +}
 +
-+#ifdef CONFIG_SMP
-+static int suitable_idle_cpus(struct task_struct *p)
-+{
-+	return (cpus_intersects(p->cpus_allowed, grq.cpu_idle_map));
-+}
-+#else
-+static int suitable_idle_cpus(struct task_struct *p)
-+{
-+	return 0;
-+}
-+#endif
-+
 +/***
 + * try_to_wake_up - wake up a thread
 + * @p: the to-be-woken-up thread
@@ -1834,8 +1874,7 @@
 +	 * matter since that's the same as being 0. current's time_slice is
 +	 * actually in rq_time_slice when it's running.
 +	 */
-+	local_irq_disable();
-+	rq = task_rq(current);
++	rq = task_grq_lock_irq(current);
 +	if (likely(rq->rq_time_slice > 0)) {
 +		rq->rq_time_slice /= 2;
 +		/*
@@ -1845,7 +1884,7 @@
 +		p->first_time_slice = 1;
 +	}
 +	p->time_slice = rq->rq_time_slice;
-+	local_irq_enable();
++	task_grq_unlock_irq();
 +out:
 +	put_cpu();
 +}
@@ -2667,11 +2706,8 @@
 +	update_cpu_clock(rq, rq->curr, 1);
 +	if (!rq_idle(rq))
 +		task_running_tick(rq);
-+	else {
++	else
 +		no_iso_tick();
-+		if (unlikely(queued_notrunning()))
-+			set_tsk_need_resched(rq->idle);
-+	}
 +}
 +
 +notrace unsigned long get_parent_ip(unsigned long addr)
@@ -2840,27 +2876,6 @@
 +	return edt;
 +}
 +
-+#ifdef CONFIG_SMP
-+static inline void set_cpuidle_map(unsigned long cpu)
-+{
-+	cpu_set(cpu, grq.cpu_idle_map);
-+}
-+
-+static inline void clear_cpuidle_map(unsigned long cpu)
-+{
-+	cpu_clear(cpu, grq.cpu_idle_map);
-+}
-+
-+#else /* CONFIG_SMP */
-+static inline void set_cpuidle_map(unsigned long cpu)
-+{
-+}
-+
-+static inline void clear_cpuidle_map(unsigned long cpu)
-+{
-+}
-+#endif /* !CONFIG_SMP */
-+
 +/*
 + * Print scheduling while atomic bug:
 + */
@@ -2906,6 +2921,14 @@
 +#endif
 +}
 +
++static inline void set_rq_task(struct rq *rq, struct task_struct *p)
++{
++	rq->rq_time_slice = p->time_slice;
++	rq->rq_deadline = p->deadline;
++	rq->rq_policy = p->policy;
++	rq->rq_prio = p->prio;
++}
++
 +/*
 + * schedule() is the main scheduler function.
 + */
@@ -2958,6 +2981,10 @@
 +		prev->deadline = rq->rq_deadline;
 +		check_deadline(prev);
 +		return_task(prev, deactivate);
++		/* Task changed affinity off this cpu */
++		if (unlikely(!cpus_intersects(prev->cpus_allowed,
++		    cpumask_of_cpu(cpu))))
++		    	resched_suitable_idle(prev);
 +	}
 +
 +	if (likely(queued_notrunning())) {
@@ -2967,7 +2994,7 @@
 +		schedstat_inc(rq, sched_goidle);
 +	}
 +
-+	if (next == rq->idle)
++	if (task_idle(next))
 +		set_cpuidle_map(cpu);
 +	else
 +		clear_cpuidle_map(cpu);
@@ -2978,9 +3005,7 @@
 +	prev->timestamp = prev->last_ran = now;
 +
 +	if (likely(prev != next)) {
-+		rq->rq_time_slice = next->time_slice;
-+		rq->rq_deadline = next->deadline;
-+		rq->rq_prio = next->prio;
++		set_rq_task(rq, next);
 +
 +		sched_info_switch(prev, next);
 +		grq.nr_switches++;
@@ -4158,10 +4183,9 @@
 +{
 +	struct task_struct *p;
 +
-+	grq_lock_irq();
 +	p = current;
++	time_task_grq_lock_irq(p);
 +	schedstat_inc(this_rq(), yld_count);
-+	update_rq_clock(task_rq(p));
 +	time_slice_expired(p);
 +	requeue_task(p);
 +
@@ -4641,7 +4665,7 @@
 +int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
 +{
 +	unsigned long flags;
-+	int running = 0;
++	int running_wrong = 0;
 +	int queued = 0;
 +	struct rq *rq;
 +	int ret = 0;
@@ -4667,10 +4691,11 @@
 +	if (cpumask_test_cpu(task_cpu(p), new_mask))
 +		goto out;
 +
-+	/* Reschedule the task, schedule() will know if it can keep running */
-+	if (task_running(p))
-+		running = 1;
-+	else
++	if (task_running(p)) {
++		/* Task is running on the wrong cpu now, reschedule it. */
++		set_tsk_need_resched(p);
++		running_wrong = 1;
++	} else
 +		set_task_cpu(p, cpumask_any_and(cpu_online_mask, new_mask));
 +
 +out:
@@ -4678,9 +4703,9 @@
 +		try_preempt(p);
 +	task_grq_unlock(&flags);
 +
-+	/* This might be a flaky way of changing cpus! */
-+	if (running)
-+		schedule();
++	if (running_wrong)
++		_cond_resched();
++
 +	return ret;
 +}
 +EXPORT_SYMBOL_GPL(set_cpus_allowed_ptr);
@@ -4934,8 +4959,10 @@
 +		cpus_and(cpus_remaining, p->cpus_allowed, cpu_online_map);
 +		cpu_clear(cpu, cpus_remaining);
 +		if (cpus_empty(cpus_remaining)) {
-+			p->unplugged_mask = p->cpus_allowed;
-+			p->cpus_allowed = cpu_possible_map;
++			cpumask_copy(&p->unplugged_mask, &p->cpus_allowed);
++			cpumask_copy(&p->cpus_allowed, &cpu_possible_map);
++			p->rt_nr_cpus_allowed =
++				cpumask_weight(&cpu_possible_map);
 +		}
 +	} while_each_thread(t, p);
 +
@@ -4967,7 +4994,9 @@
 +				 * them. Then clear the unplugged_mask as we've
 +				 * set all the cpus back.
 +				 */
-+				p->cpus_allowed = p->unplugged_mask;
++				cpumask_copy(&p->cpus_allowed, &p->unplugged_mask);
++				p->rt_nr_cpus_allowed =
++					cpumask_weight(&p->cpus_allowed);
 +				cpus_clear(p->unplugged_mask);
 +			}
 +		}
@@ -4987,6 +5016,7 @@
 +static int __cpuinit
 +migration_call(struct notifier_block *nfb, unsigned long action, void *hcpu)
 +{
++	struct task_struct *idle;
 +	int cpu = (long)hcpu;
 +	unsigned long flags;
 +	struct rq *rq;
@@ -5020,13 +5050,15 @@
 +	case CPU_DEAD_FROZEN:
 +		cpuset_lock(); /* around calls to cpuset_cpus_allowed_lock() */
 +		rq = cpu_rq(cpu);
++		idle = rq->idle;
 +		/* Idle task back to normal (off runqueue, low prio) */
 +		grq_lock_irq();
 +		remove_cpu(cpu);
-+		deactivate_task(rq->idle);
-+		rq->idle->static_prio = MAX_PRIO;
-+		__setscheduler(rq->idle, SCHED_NORMAL, 0);
-+		rq->idle->prio = PRIO_LIMIT;
++		return_task(idle, 1);
++		idle->static_prio = MAX_PRIO;
++		__setscheduler(idle, SCHED_NORMAL, 0);
++		idle->prio = PRIO_LIMIT;
++		set_rq_task(rq, idle);
 +		update_rq_clock(rq);
 +		grq_unlock_irq();
 +		cpuset_unlock();
@@ -6641,8 +6673,6 @@
 +		if (queued)
 +			dequeue_task(p);
 +		__setscheduler(p, SCHED_NORMAL, 0);
-+		if (task_running(p))
-+			resched_task(p);
 +		if (queued) {
 +			enqueue_task(p);
 +			try_preempt(p);
@@ -6764,7 +6794,7 @@
 Index: linux-2.6.31-bfs/kernel/Makefile
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/Makefile	2009-09-10 11:45:39.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/Makefile	2009-09-19 16:44:41.825239461 +1000
++++ linux-2.6.31-bfs/kernel/Makefile	2009-09-22 18:42:26.844616476 +1000
 @@ -2,7 +2,7 @@
  # Makefile for the linux kernel.
  #
@@ -6786,7 +6816,7 @@
 Index: linux-2.6.31-bfs/kernel/kthread.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/kthread.c	2009-09-10 11:45:39.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/kthread.c	2009-09-19 16:44:41.842721296 +1000
++++ linux-2.6.31-bfs/kernel/kthread.c	2009-09-22 18:42:26.860614756 +1000
 @@ -16,7 +16,7 @@
  #include <linux/mutex.h>
  #include <trace/events/sched.h>
@@ -6808,7 +6838,7 @@
 Index: linux-2.6.31-bfs/kernel/posix-cpu-timers.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/posix-cpu-timers.c	2009-09-10 11:45:40.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/posix-cpu-timers.c	2009-09-19 16:44:41.859455109 +1000
++++ linux-2.6.31-bfs/kernel/posix-cpu-timers.c	2009-09-22 18:42:26.877616322 +1000
 @@ -249,7 +249,7 @@ void thread_group_cputime(struct task_st
  	do {
  		times->utime = cputime_add(times->utime, t->utime);
@@ -6875,7 +6905,7 @@
 Index: linux-2.6.31-bfs/kernel/exit.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/exit.c	2009-09-10 11:45:39.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/exit.c	2009-09-19 16:44:41.876239609 +1000
++++ linux-2.6.31-bfs/kernel/exit.c	2009-09-22 18:42:26.902615260 +1000
 @@ -120,7 +120,7 @@ static void __exit_signal(struct task_st
  		sig->inblock += task_io_get_inblock(tsk);
  		sig->oublock += task_io_get_oublock(tsk);
@@ -6901,7 +6931,7 @@
 Index: linux-2.6.31-bfs/kernel/fork.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/fork.c	2009-09-10 11:45:39.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/fork.c	2009-09-19 16:44:41.892923549 +1000
++++ linux-2.6.31-bfs/kernel/fork.c	2009-09-22 18:42:26.927615177 +1000
 @@ -1193,7 +1193,7 @@ static struct task_struct *copy_process(
  	 * parent's CPU). This avoids alot of nasty races.
  	 */
@@ -6914,7 +6944,7 @@
 Index: linux-2.6.31-bfs/mm/oom_kill.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/mm/oom_kill.c	2009-06-10 13:05:27.000000000 +1000
-+++ linux-2.6.31-bfs/mm/oom_kill.c	2009-09-19 16:44:41.909691807 +1000
++++ linux-2.6.31-bfs/mm/oom_kill.c	2009-09-22 18:42:26.952616369 +1000
 @@ -338,7 +338,7 @@ static void __oom_kill_task(struct task_
  	 * all the memory it needs. That way it should be able to
  	 * exit() and clear out its resources quickly...
@@ -6927,7 +6957,7 @@
 Index: linux-2.6.31-bfs/init/Kconfig
 ===================================================================
 --- linux-2.6.31-bfs.orig/init/Kconfig	2009-09-10 11:45:38.000000000 +1000
-+++ linux-2.6.31-bfs/init/Kconfig	2009-09-19 16:44:41.926424769 +1000
++++ linux-2.6.31-bfs/init/Kconfig	2009-09-22 18:42:26.969615338 +1000
 @@ -441,65 +441,13 @@ config LOG_BUF_SHIFT
  config HAVE_UNSTABLE_SCHED_CLOCK
  	bool
@@ -7012,7 +7042,7 @@
 Index: linux-2.6.31-bfs/kernel/delayacct.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/delayacct.c	2009-06-10 13:05:27.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/delayacct.c	2009-09-19 16:44:41.943239852 +1000
++++ linux-2.6.31-bfs/kernel/delayacct.c	2009-09-22 18:42:26.986616514 +1000
 @@ -127,7 +127,7 @@ int __delayacct_add_tsk(struct taskstats
  	 */
  	t1 = tsk->sched_info.pcount;
@@ -7025,7 +7055,7 @@
 Index: linux-2.6.31-bfs/kernel/trace/trace.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/kernel/trace/trace.c	2009-09-10 11:45:41.000000000 +1000
-+++ linux-2.6.31-bfs/kernel/trace/trace.c	2009-09-19 16:44:41.946239140 +1000
++++ linux-2.6.31-bfs/kernel/trace/trace.c	2009-09-22 18:42:27.011614734 +1000
 @@ -275,10 +275,10 @@ unsigned long trace_flags = TRACE_ITER_P
  void trace_wake_up(void)
  {
@@ -7042,7 +7072,7 @@
 Index: linux-2.6.31-bfs/fs/proc/base.c
 ===================================================================
 --- linux-2.6.31-bfs.orig/fs/proc/base.c	2009-09-10 11:45:24.000000000 +1000
-+++ linux-2.6.31-bfs/fs/proc/base.c	2009-09-19 16:44:41.968330290 +1000
++++ linux-2.6.31-bfs/fs/proc/base.c	2009-09-22 18:42:27.036615869 +1000
 @@ -366,7 +366,7 @@ static int proc_pid_stack(struct seq_fil
  static int proc_pid_schedstat(struct task_struct *task, char *buffer)
  {
@@ -7054,8 +7084,522 @@
  }
 Index: linux-2.6.31-bfs/kernel/sched_debug.c
 ===================================================================
+--- linux-2.6.31-bfs.orig/kernel/sched_debug.c	2009-09-10 11:45:40.000000000 +1000
++++ /dev/null	1970-01-01 00:00:00.000000000 +0000
+@@ -1,509 +0,0 @@
+-/*
+- * kernel/time/sched_debug.c
+- *
+- * Print the CFS rbtree
+- *
+- * Copyright(C) 2007, Red Hat, Inc., Ingo Molnar
+- *
+- * This program is free software; you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License version 2 as
+- * published by the Free Software Foundation.
+- */
+-
+-#include <linux/proc_fs.h>
+-#include <linux/sched.h>
+-#include <linux/seq_file.h>
+-#include <linux/kallsyms.h>
+-#include <linux/utsname.h>
+-
+-/*
+- * This allows printing both to /proc/sched_debug and
+- * to the console
+- */
+-#define SEQ_printf(m, x...)			\
+- do {						\
+-	if (m)					\
+-		seq_printf(m, x);		\
+-	else					\
+-		printk(x);			\
+- } while (0)
+-
+-/*
+- * Ease the printing of nsec fields:
+- */
+-static long long nsec_high(unsigned long long nsec)
+-{
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/kernel-desktop/kernel-desktop-sched-bfs.patch?r1=1.1.2.7&r2=1.1.2.8&f=u



More information about the pld-cvs-commit mailing list