lkml.org 
[lkml]   [1999]   [Jan]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject2.2.1 seems to be stable under high load
Hi,

I've run some tests with high system loads. I'm using
the command

while true; do make clean; make MAKE='make -j10'; done

in two kernel trees at the same time to hold the system (PII, 400MHz,
128MB, 2x128MB swap UW-SCSI disk) at high load.


In comparison to 2.2.0 the 2.2.1 remains stable, no deadlock,
no oops, and no spontaneous reboot.

I've observed the load progress with xosview and xload. The first remarkable
load peek was at 49, whereas the following load curve shows minima at appr. 10
and maxima at 33. It looks like the systems needs time to get a well formed
cache, during this time the load curve will reach its highest point.

With this result in mind I've done a little patch to avoid this highest peak.
This patch seems to avoid the first mega peak and, as a side effect, the
long time average load seems to be higher together with a better interactive
response (mouse, ...) than without this little patch.


Werner

------------------------------------------------------------------------
diff -urN linux-2.2.1/mm/vmscan.c linux/mm/vmscan.c
--- linux-2.2.1/mm/vmscan.c Tue Jan 26 16:29:18 1999
+++ linux/mm/vmscan.c Fri Jan 29 14:24:18 1999
@@ -310,6 +310,8 @@
{
struct task_struct * p, * pbest;
int counter, assign, max_cnt;
+ unsigned long limit = (num_physpages >> 4);
+ int kswapd = (gfp_mask & __GFP_SWAP);

/*
* We make one or two passes through the task list, indexed by
@@ -339,9 +341,14 @@
read_lock(&tasklist_lock);
p = init_task.next_task;
for (; p != &init_task; p = p->next_task) {
+ unsigned long rss = p->mm->rss;
if (!p->swappable)
continue;
- if (p->mm->rss <= 0)
+ if (rss <= 0)
+ continue;
+ if (kswapd && p == current->next_run && rss < limit)
+ continue;
+ if (p == current && rss < limit)
continue;
/* Refresh swap_cnt? */
if (assign)
@@ -522,4 +529,4 @@
retval = do_try_to_free_pages(gfp_mask);
return retval;
}
-
+
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.047 / U:0.204 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site