public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Performance regression in 2.6.7-rc3
@ 2004-06-12  0:28 Con Kolivas
  2004-06-12  7:58 ` Nick Piggin
  2004-06-15  4:56 ` Ingo Molnar
  0 siblings, 2 replies; 14+ messages in thread
From: Con Kolivas @ 2004-06-12  0:28 UTC (permalink / raw)
  To: Linux Kernel Mailinglist
  Cc: Nick Piggin, Ingo Molnar, Andrew Morton, Martin J. Bligh,
	William Lee Irwin III

[-- Attachment #1: Type: Text/Plain, Size: 1222 bytes --]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all

The OSDL robot monkeys revealed a massive reproducible regression in the 
dbt3-pgsql benchmark which could be related to MBligh's measure regression.


2.6.7-rc2: http://khack.osdl.org/stp/293625/
Composite 	Query Processing Power 	Throughput Numerical Quantity
199.38 	152.52 	260.63

vs

2.6.7-rc3: http://khack.osdl.org/stp/293704/
Composite 	Query Processing Power 	Throughput Numerical Quantity
152.13 	146.36 	158.12


with a little bit of detective work and help from Wli we tracked down that 
this patch caused it:
[PATCH] sched: improve wakeup-affinity
A massive increase in idle time was observed and the throughput dropped by 40%
Reversing this patch gave these results:

backsched1: http://khack.osdl.org/stp/293865/
Composite 	Query Processing Power 	Throughput Numerical Quantity
193.93 	145.95 	257.67


It may be best to reverse this patch until the regression is better 
understood.
Here is a patch reversing it:

Con
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAyk4SZUg7+tp6mRURAk5RAKCKIxzmRS3u+gs8W5gVyGgvL6glUgCeNggF
8mBUT4HtP4g5d/MViraZ9ds=
=vj+s
-----END PGP SIGNATURE-----

[-- Attachment #2: backsched1.patch --]
[-- Type: text/x-diff, Size: 824 bytes --]

--- linux-2.6.7-rc3-base/kernel/sched.c	2004-06-10 23:29:04.000000000 +1000
+++ linux-2.6.7-rc3-backsched/kernel/sched.c	2004-06-12 02:11:13.600754377 +1000
@@ -770,8 +770,7 @@ static int try_to_wake_up(task_t * p, un
 		this_load -= SCHED_LOAD_SCALE;
 
 	/* Don't pull the task off an idle CPU to a busy one */
-	if (load < SCHED_LOAD_SCALE && load + this_load > SCHED_LOAD_SCALE
-			&& this_load > load)
+	if (load < SCHED_LOAD_SCALE/2 && this_load > SCHED_LOAD_SCALE/2)
 		goto out_set_cpu;
 
 	new_cpu = this_cpu; /* Wake to this CPU if we can */
@@ -1633,7 +1632,8 @@ nextgroup:
 	return busiest;
 
 out_balanced:
-	if (busiest && idle != NOT_IDLE && max_load > SCHED_LOAD_SCALE) {
+	if (busiest && (idle == NEWLY_IDLE ||
+			(idle == IDLE && max_load > SCHED_LOAD_SCALE)) ) {
 		*imbalance = 1;
 		return busiest;
 	}

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2004-06-16 14:54 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-06-12  0:28 [PATCH] Performance regression in 2.6.7-rc3 Con Kolivas
2004-06-12  7:58 ` Nick Piggin
2004-06-15  4:56 ` Ingo Molnar
2004-06-15 13:11   ` Con Kolivas
2004-06-15 15:02   ` Martin J. Bligh
2004-06-16  2:14     ` Herbert Xu
2004-06-16  3:05       ` Nick Piggin
2004-06-16  3:10         ` Linus Torvalds
2004-06-16  3:18           ` Nick Piggin
2004-06-16  7:02           ` Ingo Molnar
2004-06-16  3:09       ` Linus Torvalds
2004-06-16 14:54         ` Martin J. Bligh
2004-06-16  3:00   ` Nick Piggin
2004-06-16  1:22     ` Con Kolivas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox