Re: Kaffeine problem with CFS

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ingo Molnar
Date: Sunday, April 15, 2007 - 9:13 am

* S.Çağlar Onur <caglar@pardus.org.tr> wrote:



thanks. This does has the appearance of a userspace race condition of 
some sorts. Can you trigger this hang with the patch below applied to 
the vanilla tree as well? (with no CFS patch applied)

if yes then this would suggest that Kaffeine has some sort of 
child-runs-first problem. (which CFS changes to parent-runs-first. 
Kaffeine starts a couple of threads and the futex calls are a sign of 
thread<->thread communication.)

[ i have also Cc:-ed the Kaffeine folks - maybe your strace gives them
  an idea about what the problem could be :) ]

	Ingo

---
 kernel/sched.c |   70 ++-------------------------------------------------------
 1 file changed, 3 insertions(+), 67 deletions(-)

Index: linux/kernel/sched.c
===================================================================
--- linux.orig/kernel/sched.c
+++ linux/kernel/sched.c
@@ -1653,77 +1653,13 @@ void fastcall sched_fork(struct task_str
  */
 void fastcall wake_up_new_task(struct task_struct *p, unsigned long clone_flags)
 {
-	struct rq *rq, *this_rq;
 	unsigned long flags;
-	int this_cpu, cpu;
+	struct rq *rq;
 
 	rq = task_rq_lock(p, &flags);
 	BUG_ON(p->state != TASK_RUNNING);
-	this_cpu = smp_processor_id();
-	cpu = task_cpu(p);
-
-	/*
-	 * We decrease the sleep average of forking parents
-	 * and children as well, to keep max-interactive tasks
-	 * from forking tasks that are max-interactive. The parent
-	 * (current) is done further down, under its lock.
-	 */
-	p->sleep_avg = JIFFIES_TO_NS(CURRENT_BONUS(p) *
-		CHILD_PENALTY / 100 * MAX_SLEEP_AVG / MAX_BONUS);
-
-	p->prio = effective_prio(p);
-
-	if (likely(cpu == this_cpu)) {
-		if (!(clone_flags & CLONE_VM)) {
-			/*
-			 * The VM isn't cloned, so we're in a good position to
-			 * do child-runs-first in anticipation of an exec. This
-			 * usually avoids a lot of COW overhead.
-			 */
-			if (unlikely(!current->array))
-				__activate_task(p, rq);
-			else {
-				p->prio = current->prio;
-				p->normal_prio = current->normal_prio;
-				list_add_tail(&p->run_list, &current->run_list);
-				p->array = current->array;
-				p->array->nr_active++;
-				inc_nr_running(p, rq);
-			}
-			set_need_resched();
-		} else
-			/* Run child last */
-			__activate_task(p, rq);
-		/*
-		 * We skip the following code due to cpu == this_cpu
-	 	 *
-		 *   task_rq_unlock(rq, &flags);
-		 *   this_rq = task_rq_lock(current, &flags);
-		 */
-		this_rq = rq;
-	} else {
-		this_rq = cpu_rq(this_cpu);
-
-		/*
-		 * Not the local CPU - must adjust timestamp. This should
-		 * get optimised away in the !CONFIG_SMP case.
-		 */
-		p->timestamp = (p->timestamp - this_rq->most_recent_timestamp)
-					+ rq->most_recent_timestamp;
-		__activate_task(p, rq);
-		if (TASK_PREEMPTS_CURR(p, rq))
-			resched_task(rq->curr);
-
-		/*
-		 * Parent and child are on different CPUs, now get the
-		 * parent runqueue to update the parent's ->sleep_avg:
-		 */
-		task_rq_unlock(rq, &flags);
-		this_rq = task_rq_lock(current, &flags);
-	}
-	current->sleep_avg = JIFFIES_TO_NS(CURRENT_BONUS(current) *
-		PARENT_PENALTY / 100 * MAX_SLEEP_AVG / MAX_BONUS);
-	task_rq_unlock(this_rq, &flags);
+	__activate_task(p, rq);
+	task_rq_unlock(rq, &flags);
 }
 
 /*
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Fri Apr 13, 2:21 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Michal Piotrowski, (Fri Apr 13, 2:57 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Fri Apr 13, 3:21 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Fri Apr 13, 4:30 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Fri Apr 13, 4:58 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Eric W. Biederman, (Sat Apr 14, 10:15 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Eric W. Biederman, (Sat Apr 14, 10:44 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Eric W. Biederman, (Sat Apr 14, 11:40 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sat Apr 14, 12:48 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sat Apr 14, 9:01 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sun Apr 15, 8:26 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sun Apr 15, 8:47 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Sun Apr 15, 9:13 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Sun Apr 15, 9:25 am)
Re: Kaffeine problem with CFS, Christoph Pfister, (Sun Apr 15, 9:55 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Jonathan Lundell, (Sun Apr 15, 12:00 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sun Apr 15, 12:35 pm)
Re: Kaffeine problem with CFS, S.Çağlar, (Sun Apr 15, 3:14 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sun Apr 15, 4:39 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sun Apr 15, 4:54 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Sun Apr 15, 8:04 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 4:04 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 6:46 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 8:45 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 9:13 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Michael K. Edwards, (Mon Apr 16, 4:10 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 11:09 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 11:14 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Mon Apr 16, 11:26 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 12:09 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 1:23 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 1:24 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 2:05 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 2:57 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 4:31 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 1:05 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 3:32 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Michael K. Edwards, (Tue Apr 17, 4:00 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Tue Apr 17, 4:07 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., Michael K. Edwards, (Tue Apr 17, 4:52 pm)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 1:27 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 1:57 am)
Re: Kaffeine problem with CFS, Christoph Pfister, (Wed Apr 18, 1:57 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 2:01 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 2:06 am)
Re: Kaffeine problem with CFS, Mike Galbraith, (Wed Apr 18, 2:12 am)
Re: Kaffeine problem with CFS, Christoph Pfister, (Wed Apr 18, 2:13 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 2:17 am)
Re: Kaffeine problem with CFS, Christoph Pfister, (Wed Apr 18, 2:25 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 2:28 am)
Re: Kaffeine problem with CFS, Christoph Pfister, (Wed Apr 18, 2:52 am)
Re: Kaffeine problem with CFS, Christoph Pfister, (Wed Apr 18, 3:04 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 3:17 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 3:32 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 3:37 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 3:49 am)
Re: Kaffeine problem with CFS, Ingo Molnar, (Wed Apr 18, 3:53 am)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Wed Apr 18, 6:08 am)
Re: CFS and suspend2: hang in atomic copy, Christian Hesse, (Wed Apr 18, 1:45 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Thu Apr 19, 12:57 am)
Renice X for cpu schedulers, Con Kolivas, (Thu Apr 19, 4:59 am)
Re: Renice X for cpu schedulers, Peter Williams, (Thu Apr 19, 5:42 am)
Re: Renice X for cpu schedulers, Mark Lord, (Thu Apr 19, 6:17 am)
Re: Renice X for cpu schedulers, Con Kolivas, (Thu Apr 19, 8:10 am)
Re: Renice X for cpu schedulers, Mark Lord, (Thu Apr 19, 9:15 am)
Re: Renice X for cpu schedulers, Gene Heskett, (Thu Apr 19, 11:16 am)
Re: Renice X for cpu schedulers, Gene Heskett, (Thu Apr 19, 11:21 am)
Re: Renice X for cpu schedulers, Ray Lee, (Thu Apr 19, 12:26 pm)
Re: Renice X for cpu schedulers, Michael K. Edwards, (Thu Apr 19, 2:35 pm)
Re: Renice X for cpu schedulers, Con Kolivas, (Thu Apr 19, 3:47 pm)
Re: Renice X for cpu schedulers, Con Kolivas, (Thu Apr 19, 3:56 pm)
Re: Renice X for cpu schedulers, Con Kolivas, (Thu Apr 19, 5:17 pm)
Re: Renice X for cpu schedulers, Michael K. Edwards, (Thu Apr 19, 5:20 pm)
Re: Renice X for cpu schedulers, Ray Lee, (Thu Apr 19, 5:56 pm)
Re: Renice X for cpu schedulers, Ed Tomlinson, (Thu Apr 19, 6:17 pm)
Re: Renice X for cpu schedulers, Linus Torvalds, (Thu Apr 19, 6:27 pm)
Re: Renice X for cpu schedulers, Gene Heskett, (Thu Apr 19, 7:00 pm)
Re: Renice X for cpu schedulers, Gene Heskett, (Thu Apr 19, 7:01 pm)
Re: Renice X for cpu schedulers, Nick Piggin, (Thu Apr 19, 8:57 pm)
Re: Renice X for cpu schedulers, Nick Piggin, (Thu Apr 19, 9:09 pm)
Re: Renice X for cpu schedulers, Mike Galbraith, (Thu Apr 19, 10:24 pm)
Re: [Announce] [patch] Modular Scheduler Core and Complete ..., William Lee Irwin III, (Thu Apr 19, 10:26 pm)
Re: Renice X for cpu schedulers, Bill Huey, (Thu Apr 19, 10:34 pm)
Re: Renice X for cpu schedulers, Mark Lord, (Sat Apr 21, 7:55 am)
Re: Renice X for cpu schedulers, Mark Lord, (Sun Apr 22, 5:54 am)
Re: Renice X for cpu schedulers, Con Kolivas, (Sun Apr 22, 5:58 am)
Re: Renice X for cpu schedulers, Ray Lee, (Tue Apr 24, 8:50 am)
Re: Renice X for cpu schedulers, Matt Mackall, (Tue Apr 24, 9:23 am)