linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] O1int 0307010922 for 2.5.73 interactivity
@ 2003-06-30 23:44 Con Kolivas
  2003-06-30 23:52 ` Con Kolivas
  0 siblings, 1 reply; 13+ messages in thread
From: Con Kolivas @ 2003-06-30 23:44 UTC (permalink / raw)
  To: linux kernel mailing list
  Cc: Felipe Alfaro Solana, Mike Galbraith, Zwane Mwaikambo,
	Marc-Christian Petersen

[-- Attachment #1: Type: text/plain, Size: 660 bytes --]

Here is an evolution of the O1int design to minimise audio skips/smooth X. 
I've been forced to work with even less sleep than usual because of this but 
I'm getting quite happy with it now.

Changes:
Reintroduction of the child penalty set at 95, but normalised to work for a 2 
second average to work with the new system.
Long sleepers classified as idle again like previous incarnations instead of 
being reset, but over a 2 second average.

This should impact on a lot of the corner cases.

More thrashing please. I know these had been coming out frequently but I 
needed to assess every small increment. I hope not to need to do too much 
from here.

Con

[-- Attachment #2: patch-O1int-0307010922 --]
[-- Type: text/x-diff, Size: 3609 bytes --]

--- linux-2.5.73/include/linux/sched.h	2003-06-30 10:06:40.000000000 +1000
+++ linux-2.5.73-test/include/linux/sched.h	2003-07-01 08:51:26.000000000 +1000
@@ -336,6 +336,7 @@ struct task_struct {
 	prio_array_t *array;
 
 	unsigned long sleep_avg;
+	unsigned long avg_start;
 	unsigned long last_run;
 
 	unsigned long policy;
--- linux-2.5.73/kernel/sched.c	2003-06-30 10:06:40.000000000 +1000
+++ linux-2.5.73-test/kernel/sched.c	2003-07-01 09:22:01.000000000 +1000
@@ -67,12 +67,13 @@
  */
 #define MIN_TIMESLICE		( 10 * HZ / 1000)
 #define MAX_TIMESLICE		(200 * HZ / 1000)
-#define CHILD_PENALTY		50
+#define CHILD_PENALTY		95
 #define PARENT_PENALTY		100
 #define EXIT_WEIGHT		3
 #define PRIO_BONUS_RATIO	25
 #define INTERACTIVE_DELTA	2
 #define MAX_SLEEP_AVG		(10*HZ)
+#define SLEEP_TAU		(MAX_SLEEP_AVG / 5)
 #define STARVATION_LIMIT	(10*HZ)
 #define NODE_THRESHOLD		125
 
@@ -297,6 +298,17 @@ static inline void enqueue_task(struct t
 	p->array = array;
 }
 
+static inline void normalise_sleep(task_t *p)
+{
+	int old_avg_time, new_avg_time;
+	new_avg_time = SLEEP_TAU;
+	old_avg_time = jiffies - p->avg_start;
+
+	if (!old_avg_time) return;
+	p->sleep_avg = p->sleep_avg * new_avg_time / old_avg_time;
+	p->avg_start = jiffies - new_avg_time;
+}
+
 /*
  * effective_prio - return the priority that is based on the static
  * priority but is modified by bonuses/penalties.
@@ -314,11 +326,23 @@ static inline void enqueue_task(struct t
 static int effective_prio(task_t *p)
 {
 	int bonus, prio;
+	long sleep_period;
 
 	if (rt_task(p))
 		return p->prio;
 
-	bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/MAX_SLEEP_AVG/100 -
+	sleep_period = jiffies - p->avg_start;
+
+	if (!sleep_period)
+		return p->static_prio;
+
+	if (sleep_period > MAX_SLEEP_AVG)
+		sleep_period = MAX_SLEEP_AVG;
+
+	if (p->sleep_avg > sleep_period)
+		sleep_period = p->sleep_avg;
+
+	bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/sleep_period/100 -
 			MAX_USER_PRIO*PRIO_BONUS_RATIO/100/2;
 
 	prio = p->static_prio - bonus;
@@ -349,7 +373,6 @@ static inline void activate_task(task_t 
 	long sleep_time = jiffies - p->last_run - 1;
 
 	if (sleep_time > 0) {
-		int sleep_avg;
 
 		/*
 		 * This code gives a bonus to interactive tasks.
@@ -359,7 +382,7 @@ static inline void activate_task(task_t 
 		 * spends sleeping, the higher the average gets - and the
 		 * higher the priority boost gets as well.
 		 */
-		sleep_avg = p->sleep_avg + sleep_time;
+		p->sleep_avg += sleep_time;
 
 		/*
 		 * 'Overflow' bonus ticks go to the waker as well, so the
@@ -367,12 +390,17 @@ static inline void activate_task(task_t 
 		 * boosting tasks that are related to maximum-interactive
 		 * tasks.
 		 */
-		if (sleep_avg > MAX_SLEEP_AVG)
-			sleep_avg = MAX_SLEEP_AVG;
-		if (p->sleep_avg != sleep_avg) {
-			p->sleep_avg = sleep_avg;
-			p->prio = effective_prio(p);
+		if (p->sleep_avg > MAX_SLEEP_AVG * 12/10)
+			p->sleep_avg = MAX_SLEEP_AVG * 11/10;
+		if (sleep_time > SLEEP_TAU / 2){
+			p->avg_start = jiffies - SLEEP_TAU;
+			p->sleep_avg = SLEEP_TAU / 2;
 		}
+		if (unlikely(p->avg_start > jiffies)){
+			p->avg_start = jiffies;
+			p->sleep_avg = 0;
+		}
+		p->prio = effective_prio(p);
 	}
 	__activate_task(p, rq);
 }
@@ -551,6 +579,10 @@ void wake_up_forked_process(task_t * p)
 	 */
 	current->sleep_avg = current->sleep_avg * PARENT_PENALTY / 100;
 	p->sleep_avg = p->sleep_avg * CHILD_PENALTY / 100;
+	p->avg_start = current->avg_start;
+	if (p->avg_start > MAX_SLEEP_AVG)
+		p->avg_start = MAX_SLEEP_AVG;
+	normalise_sleep(p);
 	p->prio = effective_prio(p);
 	set_task_cpu(p, smp_processor_id());
 

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-06-30 23:44 [PATCH] O1int 0307010922 for 2.5.73 interactivity Con Kolivas
@ 2003-06-30 23:52 ` Con Kolivas
  2003-07-01  1:04   ` Joshua Kwan
  2003-07-01 10:12   ` Wiktor Wodecki
  0 siblings, 2 replies; 13+ messages in thread
From: Con Kolivas @ 2003-06-30 23:52 UTC (permalink / raw)
  To: linux kernel mailing list
  Cc: Felipe Alfaro Solana, Mike Galbraith, Zwane Mwaikambo,
	Marc-Christian Petersen

[-- Attachment #1: Type: text/plain, Size: 791 bytes --]

On Tue, 1 Jul 2003 09:44, Con Kolivas wrote:
> Here is an evolution of the O1int design to minimise audio skips/smooth X.
> I've been forced to work with even less sleep than usual because of this
> but I'm getting quite happy with it now.
>
> Changes:
> Reintroduction of the child penalty set at 95, but normalised to work for a
> 2 second average to work with the new system.
> Long sleepers classified as idle again like previous incarnations instead
> of being reset, but over a 2 second average.
>
> This should impact on a lot of the corner cases.
>
> More thrashing please. I know these had been coming out frequently but I
> needed to assess every small increment. I hope not to need to do too much
> from here.

The sleep thing is definitely affecting me.

Here is a small bugfix.

[-- Attachment #2: patch-O1int-0307010949 --]
[-- Type: text/x-diff, Size: 3609 bytes --]

--- linux-2.5.73/include/linux/sched.h	2003-06-30 10:06:40.000000000 +1000
+++ linux-2.5.73-test/include/linux/sched.h	2003-07-01 08:51:26.000000000 +1000
@@ -336,6 +336,7 @@ struct task_struct {
 	prio_array_t *array;
 
 	unsigned long sleep_avg;
+	unsigned long avg_start;
 	unsigned long last_run;
 
 	unsigned long policy;
--- linux-2.5.73/kernel/sched.c	2003-06-30 10:06:40.000000000 +1000
+++ linux-2.5.73-test/kernel/sched.c	2003-07-01 09:22:01.000000000 +1000
@@ -67,12 +67,13 @@
  */
 #define MIN_TIMESLICE		( 10 * HZ / 1000)
 #define MAX_TIMESLICE		(200 * HZ / 1000)
-#define CHILD_PENALTY		50
+#define CHILD_PENALTY		95
 #define PARENT_PENALTY		100
 #define EXIT_WEIGHT		3
 #define PRIO_BONUS_RATIO	25
 #define INTERACTIVE_DELTA	2
 #define MAX_SLEEP_AVG		(10*HZ)
+#define SLEEP_TAU		(MAX_SLEEP_AVG / 5)
 #define STARVATION_LIMIT	(10*HZ)
 #define NODE_THRESHOLD		125
 
@@ -297,6 +298,17 @@ static inline void enqueue_task(struct t
 	p->array = array;
 }
 
+static inline void normalise_sleep(task_t *p)
+{
+	int old_avg_time, new_avg_time;
+	new_avg_time = SLEEP_TAU;
+	old_avg_time = jiffies - p->avg_start;
+
+	if (!old_avg_time) return;
+	p->sleep_avg = p->sleep_avg * new_avg_time / old_avg_time;
+	p->avg_start = jiffies - new_avg_time;
+}
+
 /*
  * effective_prio - return the priority that is based on the static
  * priority but is modified by bonuses/penalties.
@@ -314,11 +326,23 @@ static inline void enqueue_task(struct t
 static int effective_prio(task_t *p)
 {
 	int bonus, prio;
+	long sleep_period;
 
 	if (rt_task(p))
 		return p->prio;
 
-	bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/MAX_SLEEP_AVG/100 -
+	sleep_period = jiffies - p->avg_start;
+
+	if (!sleep_period)
+		return p->static_prio;
+
+	if (sleep_period > MAX_SLEEP_AVG)
+		sleep_period = MAX_SLEEP_AVG;
+
+	if (p->sleep_avg > sleep_period)
+		sleep_period = p->sleep_avg;
+
+	bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/sleep_period/100 -
 			MAX_USER_PRIO*PRIO_BONUS_RATIO/100/2;
 
 	prio = p->static_prio - bonus;
@@ -349,7 +373,6 @@ static inline void activate_task(task_t 
 	long sleep_time = jiffies - p->last_run - 1;
 
 	if (sleep_time > 0) {
-		int sleep_avg;
 
 		/*
 		 * This code gives a bonus to interactive tasks.
@@ -359,7 +382,7 @@ static inline void activate_task(task_t 
 		 * spends sleeping, the higher the average gets - and the
 		 * higher the priority boost gets as well.
 		 */
-		sleep_avg = p->sleep_avg + sleep_time;
+		p->sleep_avg += sleep_time;
 
 		/*
 		 * 'Overflow' bonus ticks go to the waker as well, so the
@@ -367,12 +390,17 @@ static inline void activate_task(task_t 
 		 * boosting tasks that are related to maximum-interactive
 		 * tasks.
 		 */
-		if (sleep_avg > MAX_SLEEP_AVG)
-			sleep_avg = MAX_SLEEP_AVG;
-		if (p->sleep_avg != sleep_avg) {
-			p->sleep_avg = sleep_avg;
-			p->prio = effective_prio(p);
+		if (p->sleep_avg > MAX_SLEEP_AVG * 12/10)
+			p->sleep_avg = MAX_SLEEP_AVG * 11/10;
+		if (sleep_time > SLEEP_TAU / 2){
+			p->avg_start = jiffies - SLEEP_TAU;
+			p->sleep_avg = SLEEP_TAU / 2;
 		}
+		if (unlikely(p->avg_start > jiffies)){
+			p->avg_start = jiffies;
+			p->sleep_avg = 0;
+		}
+		p->prio = effective_prio(p);
 	}
 	__activate_task(p, rq);
 }
@@ -551,6 +579,10 @@ void wake_up_forked_process(task_t * p)
 	 */
 	current->sleep_avg = current->sleep_avg * PARENT_PENALTY / 100;
 	p->sleep_avg = p->sleep_avg * CHILD_PENALTY / 100;
+	p->avg_start = current->avg_start;
+	if (p->sleep_avg > MAX_SLEEP_AVG)
+		p->sleep_avg = MAX_SLEEP_AVG;
+	normalise_sleep(p);
 	p->prio = effective_prio(p);
 	set_task_cpu(p, smp_processor_id());
 

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-06-30 23:52 ` Con Kolivas
@ 2003-07-01  1:04   ` Joshua Kwan
  2003-07-01  1:58     ` Joshua Kwan
  2003-07-01  2:10     ` Con Kolivas
  2003-07-01 10:12   ` Wiktor Wodecki
  1 sibling, 2 replies; 13+ messages in thread
From: Joshua Kwan @ 2003-07-01  1:04 UTC (permalink / raw)
  To: Con Kolivas; +Cc: linux-kernel mailing list

[-- Attachment #1: Type: text/plain, Size: 1034 bytes --]

On Tue, 1 Jul 2003 09:44, Con Kolivas wrote:
> Here is an evolution of the O1int design to minimise audio skips/smooth X.
> I've been forced to work with even less sleep than usual because of this
> but I'm getting quite happy with it now.
[snip]
> More thrashing please. I know these had been coming out frequently but I
> needed to assess every small increment. I hope not to need to do too much
> from here.

Well, this doesn't quite work. It initially seemed to prevent audio
skips, but now I can't launch a new Eterm (with translucency) with the
music not skipping, no change from stock -mm. It seems to work better
under heavy load (extracting a chroot tarball for example) than when
nothing is happening, which kind of puzzles me. In both cases I launch
a new Eterm while music is playing.

Inexplicably, it sometimes prevents skipping entirely.

I'm on a P4 2.0GHz with 256MB of SDRAM.

Regards
Josh

-- 
A man may be so much of everything that he is nothing of anything.
        -- Samuel Johnson


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01  1:04   ` Joshua Kwan
@ 2003-07-01  1:58     ` Joshua Kwan
  2003-07-01  2:10     ` Con Kolivas
  1 sibling, 0 replies; 13+ messages in thread
From: Joshua Kwan @ 2003-07-01  1:58 UTC (permalink / raw)
  To: Con Kolivas; +Cc: linux-kernel mailing list

[-- Attachment #1: Type: text/plain, Size: 375 bytes --]

On Mon, Jun 30, 2003 at 06:04:13PM -0700, Joshua Kwan wrote:
> Well, this doesn't quite work.

It seemed to help GTK2 applications. Used to be that in Firebird, I
would get a skip when a page was rendering - it seems to be gone.

Just a small addendum :)

-Josh

-- 
A man may be so much of everything that he is nothing of anything.
        -- Samuel Johnson


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01  1:04   ` Joshua Kwan
  2003-07-01  1:58     ` Joshua Kwan
@ 2003-07-01  2:10     ` Con Kolivas
  2003-07-01  4:41       ` Joshua Kwan
  1 sibling, 1 reply; 13+ messages in thread
From: Con Kolivas @ 2003-07-01  2:10 UTC (permalink / raw)
  To: Joshua Kwan; +Cc: linux-kernel mailing list

[-- Attachment #1: Type: text/plain, Size: 1104 bytes --]

On Tue, 1 Jul 2003 11:04, Joshua Kwan wrote:
> On Tue, 1 Jul 2003 09:44, Con Kolivas wrote:
> > Here is an evolution of the O1int design to minimise audio skips/smooth
> > X. I've been forced to work with even less sleep than usual because of
> > this but I'm getting quite happy with it now.
>
> [snip]
>
> > More thrashing please. I know these had been coming out frequently but I
> > needed to assess every small increment. I hope not to need to do too much
> > from here.
>
> Well, this doesn't quite work. It initially seemed to prevent audio
> skips, but now I can't launch a new Eterm (with translucency) with the
> music not skipping, no change from stock -mm. It seems to work better
> under heavy load (extracting a chroot tarball for example) than when
> nothing is happening, which kind of puzzles me. In both cases I launch
> a new Eterm while music is playing.
>
> Inexplicably, it sometimes prevents skipping entirely.

Well we're on the way. Sing with me... a tweaking we will go..
Here is a tweaked patch with small changes otherwise which should help.

P.S. Were you running 100Hz?
Con

[-- Attachment #2: patch-O1int-0307011154 --]
[-- Type: text/x-diff, Size: 3473 bytes --]

--- linux-2.5.73/include/linux/sched.h	2003-06-30 10:06:40.000000000 +1000
+++ linux-2.5.73-test/include/linux/sched.h	2003-07-01 11:53:11.000000000 +1000
@@ -336,6 +336,7 @@ struct task_struct {
 	prio_array_t *array;
 
 	unsigned long sleep_avg;
+	unsigned long avg_start;
 	unsigned long last_run;
 
 	unsigned long policy;
--- linux-2.5.73/kernel/sched.c	2003-06-30 10:06:40.000000000 +1000
+++ linux-2.5.73-test/kernel/sched.c	2003-07-01 11:54:22.000000000 +1000
@@ -73,6 +73,7 @@
 #define PRIO_BONUS_RATIO	25
 #define INTERACTIVE_DELTA	2
 #define MAX_SLEEP_AVG		(10*HZ)
+#define SLEEP_TAU		(MAX_SLEEP_AVG / 5)
 #define STARVATION_LIMIT	(10*HZ)
 #define NODE_THRESHOLD		125
 
@@ -297,6 +298,17 @@ static inline void enqueue_task(struct t
 	p->array = array;
 }
 
+static inline void normalise_sleep(task_t *p)
+{
+	int old_avg_time, new_avg_time;
+	new_avg_time = SLEEP_TAU;
+	old_avg_time = jiffies - p->avg_start;
+
+	if (old_avg_time < new_avg_time) return;
+	p->sleep_avg = p->sleep_avg * new_avg_time / old_avg_time;
+	p->avg_start = jiffies - new_avg_time;
+}
+
 /*
  * effective_prio - return the priority that is based on the static
  * priority but is modified by bonuses/penalties.
@@ -314,11 +326,23 @@ static inline void enqueue_task(struct t
 static int effective_prio(task_t *p)
 {
 	int bonus, prio;
+	long sleep_period;
 
 	if (rt_task(p))
 		return p->prio;
 
-	bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/MAX_SLEEP_AVG/100 -
+	sleep_period = jiffies - p->avg_start;
+
+	if (!sleep_period)
+		return p->static_prio;
+
+	if (sleep_period > MAX_SLEEP_AVG)
+		sleep_period = MAX_SLEEP_AVG;
+
+	if (p->sleep_avg > sleep_period)
+		sleep_period = p->sleep_avg;
+
+	bonus = MAX_USER_PRIO*PRIO_BONUS_RATIO*p->sleep_avg/sleep_period/100 -
 			MAX_USER_PRIO*PRIO_BONUS_RATIO/100/2;
 
 	prio = p->static_prio - bonus;
@@ -349,7 +373,6 @@ static inline void activate_task(task_t 
 	long sleep_time = jiffies - p->last_run - 1;
 
 	if (sleep_time > 0) {
-		int sleep_avg;
 
 		/*
 		 * This code gives a bonus to interactive tasks.
@@ -359,7 +382,7 @@ static inline void activate_task(task_t 
 		 * spends sleeping, the higher the average gets - and the
 		 * higher the priority boost gets as well.
 		 */
-		sleep_avg = p->sleep_avg + sleep_time;
+		p->sleep_avg += sleep_time;
 
 		/*
 		 * 'Overflow' bonus ticks go to the waker as well, so the
@@ -367,12 +390,17 @@ static inline void activate_task(task_t 
 		 * boosting tasks that are related to maximum-interactive
 		 * tasks.
 		 */
-		if (sleep_avg > MAX_SLEEP_AVG)
-			sleep_avg = MAX_SLEEP_AVG;
-		if (p->sleep_avg != sleep_avg) {
-			p->sleep_avg = sleep_avg;
-			p->prio = effective_prio(p);
+		if (p->sleep_avg > MAX_SLEEP_AVG * 12/10)
+			p->sleep_avg = MAX_SLEEP_AVG * 11/10;
+		if (sleep_time > SLEEP_TAU / 2){
+			p->avg_start = jiffies - SLEEP_TAU;
+			p->sleep_avg = SLEEP_TAU / 2;
 		}
+		if (unlikely(p->avg_start > jiffies)){
+			p->avg_start = jiffies;
+			p->sleep_avg = 0;
+		}
+		p->prio = effective_prio(p);
 	}
 	__activate_task(p, rq);
 }
@@ -550,6 +578,10 @@ void wake_up_forked_process(task_t * p)
 	 * from forking tasks that are max-interactive.
 	 */
 	current->sleep_avg = current->sleep_avg * PARENT_PENALTY / 100;
+	p->avg_start = current->avg_start;
+	if (p->sleep_avg > MAX_SLEEP_AVG)
+		p->sleep_avg = MAX_SLEEP_AVG;
+	normalise_sleep(p);
 	p->sleep_avg = p->sleep_avg * CHILD_PENALTY / 100;
 	p->prio = effective_prio(p);
 	set_task_cpu(p, smp_processor_id());

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01  2:10     ` Con Kolivas
@ 2003-07-01  4:41       ` Joshua Kwan
  2003-07-01  6:07         ` Con Kolivas
  0 siblings, 1 reply; 13+ messages in thread
From: Joshua Kwan @ 2003-07-01  4:41 UTC (permalink / raw)
  To: Con Kolivas

[-- Attachment #1: Type: text/plain, Size: 535 bytes --]

On Tue, Jul 01, 2003 at 12:10:31PM +1000, Con Kolivas wrote:
> Well we're on the way. Sing with me... a tweaking we will go..
> Here is a tweaked patch with small changes otherwise which should help.
> 
> P.S. Were you running 100Hz?
> Con

Yes, and with this patch coupled with reversing andrew's 100hz patch,
makes the skips largely disappear.

Or could it be that 1000hz alone fixes everything? Who knows...

-Josh

-- 
A man may be so much of everything that he is nothing of anything.
        -- Samuel Johnson


[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01  4:41       ` Joshua Kwan
@ 2003-07-01  6:07         ` Con Kolivas
  0 siblings, 0 replies; 13+ messages in thread
From: Con Kolivas @ 2003-07-01  6:07 UTC (permalink / raw)
  To: Joshua Kwan; +Cc: linux kernel mailing list

On Tue, 1 Jul 2003 14:41, Joshua Kwan wrote:
> On Tue, Jul 01, 2003 at 12:10:31PM +1000, Con Kolivas wrote:
> > Well we're on the way. Sing with me... a tweaking we will go..
> > Here is a tweaked patch with small changes otherwise which should help.
> >
> > P.S. Were you running 100Hz?
> > Con
>
> Yes, and with this patch coupled with reversing andrew's 100hz patch,
> makes the skips largely disappear.
>
> Or could it be that 1000hz alone fixes everything? Who knows...

Great thanks. I'll try my best to leave it alone for a while now and let 
others test it (no 1000Hz alone does not fix this problem).

I'll leave the latest available O1int patch here:
http://kernel.kolivas.org/2.5

for downloading and remind people that if you use the -mm tree you will see 
better performance if you reverse patch the 100Hz patch, but it still should 
benefit at 100Hz.

Con


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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-06-30 23:52 ` Con Kolivas
  2003-07-01  1:04   ` Joshua Kwan
@ 2003-07-01 10:12   ` Wiktor Wodecki
  2003-07-01 10:32     ` Con Kolivas
  1 sibling, 1 reply; 13+ messages in thread
From: Wiktor Wodecki @ 2003-07-01 10:12 UTC (permalink / raw)
  To: Con Kolivas; +Cc: linux kernel mailing list

[-- Attachment #1: Type: text/plain, Size: 845 bytes --]

Hello,

On Tue, Jul 01, 2003 at 09:52:26AM +1000, Con Kolivas wrote:
> On Tue, 1 Jul 2003 09:44, Con Kolivas wrote:
> > Here is an evolution of the O1int design to minimise audio skips/smooth X.
> > I've been forced to work with even less sleep than usual because of this
> > but I'm getting quite happy with it now.
 
for normale usage I'm happy with it, even under heavy load (two kernel
compiles with -j4 on a single processor machine) I can type into my
xterms mostly instantly.
However starting new applications/xterm's is a pain, a plain xterm which
starts normally within a second takes about 3-5secs. Openoffice isn't
usable at all. But on the other side I normally don't compile with
-j4...
However the xmms didn't skip once while playing. I applied this patch
ontop of 2.5.73-bk7.


-- 
Regards,

Wiktor Wodecki

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01 10:12   ` Wiktor Wodecki
@ 2003-07-01 10:32     ` Con Kolivas
  0 siblings, 0 replies; 13+ messages in thread
From: Con Kolivas @ 2003-07-01 10:32 UTC (permalink / raw)
  To: Johoho, Wiktor Wodecki; +Cc: linux kernel mailing list

On Tue, 1 Jul 2003 20:12, Wiktor Wodecki wrote:
> Hello,
>
> On Tue, Jul 01, 2003 at 09:52:26AM +1000, Con Kolivas wrote:
> > On Tue, 1 Jul 2003 09:44, Con Kolivas wrote:
> > > Here is an evolution of the O1int design to minimise audio skips/smooth
> > > X. I've been forced to work with even less sleep than usual because of
> > > this but I'm getting quite happy with it now.
>
> for normale usage I'm happy with it, even under heavy load (two kernel
> compiles with -j4 on a single processor machine) I can type into my
> xterms mostly instantly.
> However starting new applications/xterm's is a pain, a plain xterm which
> starts normally within a second takes about 3-5secs. Openoffice isn't
> usable at all. But on the other side I normally don't compile with
> -j4...
> However the xmms didn't skip once while playing. I applied this patch
> ontop of 2.5.73-bk7.

At least we're moving in the right direction; last time you tried it was a 
disaster on your machine. Tuning can help this sort of thing. Before I tweak 
it further to tackle this can you tell me exactly which version you used? 
Sorry it's such a moving target.

Con


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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
@ 2003-07-01 11:32 Luis Miguel Garcia
  2003-07-01 10:48 ` Con Kolivas
  2003-07-01 10:51 ` Wiktor Wodecki
  0 siblings, 2 replies; 13+ messages in thread
From: Luis Miguel Garcia @ 2003-07-01 11:32 UTC (permalink / raw)
  To: linux-kernel; +Cc: kernel

Con, I want to give you Lots of Thanks for the work you're doing with the O1int patches.

Don't you think that we need an option in the kernel to select if we want a Server Kernel or a Desktop Kernel?

With the first one, only throughput is important and in the second one, we can take in all the stuff to improve the interactivity (preempt, 01int, granularity) so we can give more agresive interactivity to the Desktop Kernel.

Is this a sillyness?

-- 
=============================================================
Luis Miguel Garcia Mancebo
Ingenieria Tecnica en Informatica de Gestion
Universidad de Deusto / University of Deusto
Bilbao / Spain
=============================================================

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01 10:51 ` Wiktor Wodecki
@ 2003-07-01 10:56   ` Luis Miguel Garcia
  0 siblings, 0 replies; 13+ messages in thread
From: Luis Miguel Garcia @ 2003-07-01 10:56 UTC (permalink / raw)
  To: linux-kernel; +Cc: Johoho

On Tue, 1 Jul 2003 12:51:57 +0200
Wiktor Wodecki <wodecki@gmx.de> wrote:

> On Tue, Jul 01, 2003 at 01:32:41PM +0200, Luis Miguel Garcia wrote:
> > With the first one, only throughput is important and in the second one, we can take in all the stuff to improve the interactivity (preempt, 01int, granularity) so we can give more agresive interactivity to the Desktop Kernel.
> > 
> > Is this a sillyness?
> 
> placing this in /proc would be a better idea. The more I watch the whole
> interactivity debate I think that there is no golden way for server and desktop machines.

This is for what I have said that. Sometimes the people says. "This is good for Desktop, but drops the performance / throughput 20%". Perhaps some people prefer having a true multimedia desktop without skips in the music and video, and less throughput (like i prefer).

But let Con do it's best. I think he knows what is doing  ;)

Thanks Con and others!

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01 11:32 Luis Miguel Garcia
  2003-07-01 10:48 ` Con Kolivas
@ 2003-07-01 10:51 ` Wiktor Wodecki
  2003-07-01 10:56   ` Luis Miguel Garcia
  1 sibling, 1 reply; 13+ messages in thread
From: Wiktor Wodecki @ 2003-07-01 10:51 UTC (permalink / raw)
  To: Luis Miguel Garcia; +Cc: linux-kernel, kernel

[-- Attachment #1: Type: text/plain, Size: 529 bytes --]

On Tue, Jul 01, 2003 at 01:32:41PM +0200, Luis Miguel Garcia wrote:
> With the first one, only throughput is important and in the second one, we can take in all the stuff to improve the interactivity (preempt, 01int, granularity) so we can give more agresive interactivity to the Desktop Kernel.
> 
> Is this a sillyness?

placing this in /proc would be a better idea. The more I watch the whole
interactivity debate I think that there is no golden way for server and
desktop machines.

-- 
Regards,

Wiktor Wodecki

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [PATCH] O1int 0307010922 for 2.5.73 interactivity
  2003-07-01 11:32 Luis Miguel Garcia
@ 2003-07-01 10:48 ` Con Kolivas
  2003-07-01 10:51 ` Wiktor Wodecki
  1 sibling, 0 replies; 13+ messages in thread
From: Con Kolivas @ 2003-07-01 10:48 UTC (permalink / raw)
  To: Luis Miguel Garcia, linux-kernel

On Tue, 1 Jul 2003 21:32, Luis Miguel Garcia wrote:
> Con, I want to give you Lots of Thanks for the work you're doing with the
> O1int patches.

Thanks. Hopefully it will all be worthwhile.

> Don't you think that we need an option in the kernel to select if we want a
> Server Kernel or a Desktop Kernel?
>
> With the first one, only throughput is important and in the second one, we
> can take in all the stuff to improve the interactivity (preempt, 01int,
> granularity) so we can give more agresive interactivity to the Desktop
> Kernel.

A properly tuned scheduler should work in all settings. The granularity patch 
is the only one which would only benefit the desktop but I'm hoping to make 
it unnecessary for this patch to be used.

Con


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

end of thread, other threads:[~2003-07-01 10:40 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-30 23:44 [PATCH] O1int 0307010922 for 2.5.73 interactivity Con Kolivas
2003-06-30 23:52 ` Con Kolivas
2003-07-01  1:04   ` Joshua Kwan
2003-07-01  1:58     ` Joshua Kwan
2003-07-01  2:10     ` Con Kolivas
2003-07-01  4:41       ` Joshua Kwan
2003-07-01  6:07         ` Con Kolivas
2003-07-01 10:12   ` Wiktor Wodecki
2003-07-01 10:32     ` Con Kolivas
2003-07-01 11:32 Luis Miguel Garcia
2003-07-01 10:48 ` Con Kolivas
2003-07-01 10:51 ` Wiktor Wodecki
2003-07-01 10:56   ` Luis Miguel Garcia

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).