[PATCH]O20.1int

From: Con Kolivas
Date: Tue Sep 09 2003 - 21:53:33 EST


Should be the last of the O1int patches.

Tiny tweak to keep top two interactive levels round robin at the fastest
(10ms) which keeps X smooth when another interactive task is also using
bursts of cpu (eg web browser).

Credit. Is this too bold?

Con
--- linux-2.6.0-test5-mm1-O20/kernel/sched.c 2003-09-10 11:15:45.000000000 +1000
+++ linux-2.6.0-test5-mm1/kernel/sched.c 2003-09-10 11:51:38.000000000 +1000
@@ -14,6 +14,7 @@
* an array-switch method of distributing timeslices
* and per-CPU runqueues. Cleanups and useful suggestions
* by Davide Libenzi, preemptible kernel bits by Robert Love.
+ * 2003-09-03 Interactivity tuning by Con Kolivas.
*/

#include <linux/mm.h>
@@ -122,12 +123,12 @@
MAX_SLEEP_AVG)

#ifdef CONFIG_SMP
-#define TIMESLICE_GRANULARITY(p) \
- (MIN_TIMESLICE * (1 << (MAX_BONUS - CURRENT_BONUS(p))) * \
- num_online_cpus())
+#define TIMESLICE_GRANULARITY(p) (MIN_TIMESLICE * \
+ (1 << (((MAX_BONUS - CURRENT_BONUS(p)) ? : 1) - 1)) * \
+ num_online_cpus())
#else
-#define TIMESLICE_GRANULARITY(p) \
- (MIN_TIMESLICE * (1 << (MAX_BONUS - CURRENT_BONUS(p))))
+#define TIMESLICE_GRANULARITY(p) (MIN_TIMESLICE * \
+ (1 << (((MAX_BONUS - CURRENT_BONUS(p)) ? : 1) - 1)))
#endif

#define SCALE(v1,v1_max,v2_max) \