Re: pre-patch-2.0.31-2 + werners buffer patch

Dr. Werner Fink (werner@suse.de)
Wed, 16 Jul 1997 13:56:12 +0200


> Path: not-for-mail
> Just FYI:
>
> We've tried running pre-patch-2.0.31-2 + werners buffer patch (11 July) on our
> news machine. It crashes every night at expire time.. when we're not there
> to have a look. This morning we did an expire manually with this as
> result:
>
> Jul 16 08:59:21 enterprise kernel: Out of memory for syslogd.
> Jul 16 08:59:21 enterprise kernel:
> Jul 16 08:59:21 enterprise kernel: Out of memory for sshd.
> Jul 16 08:59:21 enterprise kernel:
> Jul 16 08:59:21 enterprise kernel: Out of memory for expireover.
> Jul 16 09:05:59 enterprise kernel: Unable to load interpreter
> Jul 16 09:06:14 enterprise kernel: Kernel logging (proc) stopped.
>
> .. now it has died. Reboot is necessary.
>
> Back to 2.0.29 for a while, to see if that one survives the next expire.

Do you have more infomation on the affected system? I'm interested on
physical mem, swap space, ide or scsi disk for swap, smp, typical load,
number of open file per process, .... other interesting things?.
Are there more patches included as the two listed above?

The message is produced by oom() out of mm/memory.c ... the message at
syslogd (a long running process) leads to swap_in() in mm/page_alloc.c
or shm_swap_in() in ipc/shm.c ... other possiblities are found in
fs/exec.c (exec_mmap()) and mm/memory.c (put_dirty_page(), do_wp_page(),
and handle_mm_fault()).

Does the appended patch against pre-patch-2.0.31-2 + my collected patch help?

If this one does not not ... please try to remove the lines with

/* Give the physical reallocated page a bigger start */
mem_map[MAP_NR(page)].age = (2*PAGE_INITIAL_AGE);

at swap_in() in mm/page_alloc.c and shm_swap_in() in ipc/shm.c ... it
will slow down the dynamic of the system a bit.

If both will not help ... hmmm ...

Werner

--------------------------------------------------------------------------
--- linux/mm/vmscan.c~1 Wed Jul 16 13:35:59 1997
+++ linux/mm/vmscan.c Tue Jul 15 19:38:09 1997
@@ -346,8 +346,10 @@

/* we don't try as hard if we're not waiting.. */
stop = 3;
- if (wait)
+ if (wait) {
stop = 0;
+ run_task_queue(&tq_disk);
+ }
switch (state) {
do {
case 0: