Re: New buffer cache + SMP + mke2fs with 4MB success

Harald Koenig (koenig@tat.physik.uni-tuebingen.de)
Fri, 11 Jul 1997 09:50:52 +0200


On Jul 10, David S. Miller wrote:

> Time for a pre-2.0.31-3? David?
>
> All of next week will be dedicated to pre-2.0.31-3

ah, great. I just browsed pre-2.0.31-2 again and realized, that a nice
small patch from Ingo Molnar didn't make it into so far.

we've been using this patch to run "real" background jobs, which shouldn't
compete even with "nice 19" user processes, for a long time now (both SMP
and non-SMP) with no problems at all.

this would be a nice and pretty risk-free feature for 2.0.31
(we can't dedicate our many PPro-cycles for rc5 without this...)

-------------------------------------------------------------------------------
--- /soft/linux/include/linux/sched.h Mon Oct 14 22:57:20 1996
+++ linux/include/linux/sched.h Sun Apr 13 23:54:30 1997
@@ -93,6 +93,7 @@
#define SCHED_OTHER 0
#define SCHED_FIFO 1
#define SCHED_RR 2
+#define SCHED_IDLE 3

struct sched_param {
int sched_priority;
@@ -210,7 +211,8 @@
struct wait_queue *wait_chldexit; /* for wait4() */
unsigned short uid,euid,suid,fsuid;
unsigned short gid,egid,sgid,fsgid;
- unsigned long timeout, policy, rt_priority;
+ unsigned long timeout, policy;
+ long rt_priority;
unsigned long it_real_value, it_prof_value, it_virt_value;
unsigned long it_real_incr, it_prof_incr, it_virt_incr;
struct timer_list real_timer;
--- /soft/linux/kernel/sched.c Wed Apr 9 01:32:34 1997
+++ linux/kernel/sched.c Sun Apr 13 23:53:27 1997
@@ -59,7 +59,7 @@
*/
/* TIME_ERROR prevents overwriting the CMOS clock */
int time_state = TIME_ERROR; /* clock synchronization status */
-int time_status = STA_UNSYNC; /* clock status bits */
+int time_status = STA_UNSYNC|STA_PLL; /* clock status bits */
long time_offset = 0; /* time adjustment (us) */
long time_constant = 2; /* pll time constant */
long time_tolerance = MAXFREQ; /* frequency tolerance (ppm) */
@@ -1380,7 +1380,7 @@
if (policy < 0)
policy = p->policy;
else if (policy != SCHED_FIFO && policy != SCHED_RR &&
- policy != SCHED_OTHER)
+ policy != SCHED_OTHER && policy != SCHED_IDLE)
return -EINVAL;

/*
@@ -1399,7 +1399,15 @@
return -EPERM;

p->policy = policy;
- p->rt_priority = lp.sched_priority;
+
+ if (policy == SCHED_IDLE)
+ /*
+ * look into goodness() before complaining ;)
+ */
+ p->rt_priority = -1999;
+ else
+ p->rt_priority = lp.sched_priority;
+
cli();
if (p->next_run)
move_last_runqueue(p);

-------------------------------------------------------------------------------

Harald

--
All SCSI disks will from now on                     ___       _____
be required to send an email notice                0--,|    /OOOOOOO\
24 hours prior to complete hardware failure!      <_/  /  /OOOOOOOOOOO\
                                                    \  \/OOOOOOOOOOOOOOO\
                                                      \ OOOOOOOOOOOOOOOOO|//
Harald Koenig,                                         \/\/\/\/\/\/\/\/\/
Inst.f.Theoret.Astrophysik                              //  /     \\  \
koenig@tat.physik.uni-tuebingen.de                     ^^^^^       ^^^^^