Skip to contentSkip to conversation

Staircase7 for 2.6.7

PATCH New Con Kolivas 1 participant 1 message Jun 17, 2004

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Staircase7 for 2.6.7

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

This is just a resync of the staircase6.E patch with no changes. A formal announcement it seems is required for people to be aware the patch is up on my site.

Available here:
http://ck.kolivas.org/patches/2.6/2.6.7/from-2.6.7_to_staircase7

and attached below.

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

iD8DBQFA0OnfZUg7+tp6mRURAhu/AKCBf6EIG+7GLX79CD/Jlxxebdts+wCfUanE tYG9iW08uY+W15k5ny6Hx6E=
=p0ot
-----END PGP SIGNATURE-----

fs/proc/array.c +2 -2
diff -Naurp --exclude-from=/home/con/kernel/dontdiff linux-2.6.7/fs/proc/array.c linux-2.6.7-ck1pre/fs/proc/array.c
@@ -155,7 +155,7 @@ static inline char * task_state(struct t
 	read_lock(&tasklist_lock);
 	buffer += sprintf(buffer,
 		"State:\t%s\n"
-		"SleepAVG:\t%lu%%\n"
+		"Burst:\t%d\n"
 		"Tgid:\t%d\n"
 		"Pid:\t%d\n"
 		"PPid:\t%d\n"
@@ -163,7 +163,7 @@ static inline char * task_state(struct t
 		"Uid:\t%d\t%d\t%d\t%d\n"
 		"Gid:\t%d\t%d\t%d\t%d\n",
 		get_task_state(p),
-		(p->sleep_avg/1024)*100/(1020000000/1024),
+		p->burst,
 	       	p->tgid,
 		p->pid, p->pid ? p->real_parent->pid : 0,
 		p->pid && p->ptrace ? p->parent->pid : 0,
include/linux/sched.h +4 -8
diff -Naurp --exclude-from=/home/con/kernel/dontdiff linux-2.6.7/include/linux/sched.h linux-2.6.7-ck1pre/include/linux/sched.h
@@ -164,6 +164,7 @@ extern void show_stack(struct task_struc
 
 void io_schedule(void);
 long io_schedule_timeout(long timeout);
+extern int interactive, compute;
 
 extern void cpu_init (void);
 extern void trap_init(void);
@@ -325,7 +326,6 @@ extern struct user_struct *find_user(uid
 extern struct user_struct root_user;
 #define INIT_USER (&root_user)
 
-typedef struct prio_array prio_array_t;
 struct backing_dev_info;
 struct reclaim_state;
 
@@ -392,16 +392,13 @@ struct task_struct {
 
 	int prio, static_prio;
 	struct list_head run_list;
-	prio_array_t *array;
-
-	unsigned long sleep_avg;
-	long interactive_credit;
 	unsigned long long timestamp;
-	int activated;
+	unsigned long runtime, totalrun;
+	unsigned int burst;
 
 	unsigned long policy;
 	cpumask_t cpus_allowed;
-	unsigned int time_slice, first_time_slice;
+	unsigned int slice, time_slice;
 
 	struct list_head tasks;
 	struct list_head ptrace_children;
@@ -742,7 +739,6 @@ extern void FASTCALL(wake_up_forked_proc
  }
 #endif
 extern void FASTCALL(sched_fork(task_t * p));
-extern void FASTCALL(sched_exit(task_t * p));
 
 extern int in_group_p(gid_t);
 extern int in_egroup_p(gid_t);
include/linux/sysctl.h +2 -0
diff -Naurp --exclude-from=/home/con/kernel/dontdiff linux-2.6.7/include/linux/sysctl.h linux-2.6.7-ck1pre/include/linux/sysctl.h
@@ -133,6 +133,8 @@ enum
 	KERN_NGROUPS_MAX=63,	/* int: NGROUPS_MAX */
 	KERN_SPARC_SCONS_PWROFF=64, /* int: serial console power-off halt */
 	KERN_HZ_TIMER=65,	/* int: hz timer on or off */
+	KERN_INTERACTIVE=66,	/* interactive tasks can have cpu bursts */
+	KERN_COMPUTE=67,	/* adjust timeslices for a compute server */
 };
 
 
init/main.c +8 -1
diff -Naurp --exclude-from=/home/con/kernel/dontdiff linux-2.6.7/init/main.c linux-2.6.7-ck1pre/init/main.c
@@ -314,8 +314,15 @@ static void __init smp_init(void)
 #define smp_init()	do { } while (0)
 #endif
 
+unsigned long cache_decay_ticks;
 static inline void setup_per_cpu_areas(void) { }
-static inline void smp_prepare_cpus(unsigned int maxcpus) { }
+static void smp_prepare_cpus(unsigned int maxcpus)
+{
+	// Generic 2 tick cache_decay for uniprocessor
+	cache_decay_ticks = 2;
+	printk("Generic cache decay timeout: %ld msecs.\n",
+		(cache_decay_ticks * 1000 / HZ));
+}
 
 #else
 
kernel/exit.c +0 -1
diff -Naurp --exclude-from=/home/con/kernel/dontdiff linux-2.6.7/kernel/exit.c linux-2.6.7-ck1pre/kernel/exit.c
@@ -96,7 +96,6 @@ repeat: 
 	p->parent->cmaj_flt += p->maj_flt + p->cmaj_flt;
 	p->parent->cnvcsw += p->nvcsw + p->cnvcsw;
 	p->parent->cnivcsw += p->nivcsw + p->cnivcsw;
-	sched_exit(p);
 	write_unlock_irq(&tasklist_lock);
 	spin_unlock(&p->proc_lock);
 	proc_pid_flush(proc_dentry);
kernel/sched.c +212 -598

1,211 lines not on this page · raw message

kernel/sysctl.c +16 -0
diff -Naurp --exclude-from=/home/con/kernel/dontdiff linux-2.6.7/kernel/sysctl.c linux-2.6.7-ck1pre/kernel/sysctl.c
@@ -636,6 +636,22 @@ static ctl_table kern_table[] = {
 		.mode		= 0444,
 		.proc_handler	= &proc_dointvec,
 	},
+	{
+		.ctl_name	= KERN_INTERACTIVE,
+		.procname	= "interactive",
+		.data		= &interactive,
+		.maxlen		= sizeof (int),
+		.mode		= 0644,
+		.proc_handler	= &proc_dointvec,
+	},
+	{
+		.ctl_name	= KERN_COMPUTE,
+		.procname	= "compute",
+		.data		= &compute,
+		.maxlen		= sizeof (int),
+		.mode		= 0644,
+		.proc_handler	= &proc_dointvec,
+	},
 	{ .ctl_name = 0 }
 };