From owner-freebsd-current Mon Nov 9 13:02:09 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id NAA21402 for freebsd-current-outgoing; Mon, 9 Nov 1998 13:02:09 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from burka.carrier.kiev.ua (burka.carrier.kiev.ua [193.193.193.107]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id NAA21283 for ; Mon, 9 Nov 1998 13:02:03 -0800 (PST) (envelope-from archer@grape.carrier.kiev.ua) Received: from kozlik.carrier.kiev.ua (kozlik.carrier.kiev.ua [193.193.193.111]) by burka.carrier.kiev.ua (8.9.0/8.Who.Cares) with ESMTP id XAA24004; Mon, 9 Nov 1998 23:01:36 +0200 (EET) (envelope-from archer@grape.carrier.kiev.ua) Received: (from uucp@localhost) by kozlik.carrier.kiev.ua (8.9.0/8.9.0/8.Who.Cares) with UUCP id XAA01919; Mon, 9 Nov 1998 23:00:51 +0200 (EET) (envelope-from archer@grape.carrier.kiev.ua) Received: (from archer@localhost) by grape.carrier.kiev.ua (8.9.1/8.9.1) id WAA27346; Mon, 9 Nov 1998 22:42:14 +0200 (EET) (envelope-from archer) Date: Mon, 9 Nov 1998 22:42:14 +0200 (EET) From: Alexander Litvin Message-Id: <199811092042.WAA27346@grape.carrier.kiev.ua> To: dg@root.com Cc: current@FreeBSD.ORG Subject: Re: The infamous dying daemons bug X-Newsgroups: grape.freebsd.current In-Reply-To: <199811081924.LAA06586@root.com> Organization: Lucky Grape User-Agent: tin/pre-1.4-980818 ("Laura") (UNIX) (FreeBSD/3.0-CURRENT (i386)) Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG In article <199811081924.LAA06586@root.com> you wrote: >>Please don't tell anyone, but I am almost convinced that the bug is >>here: >> >>-----swap_pager.c, line 1132------ >> /* >> * If we're out of swap space, then attempt to free >> * some whenever multiple pages are brought in. We >> * must set the dirty bits so that the page contents >> * will be preserved. >> */ >> if (SWAPLOW || >> (vm_swap_size < btodb((cnt.v_page_count - cnt.v_wire_count)) * PAGE_SIZE)) { >> for (i = 0; i < count; i++) { >> m[i]->dirty = VM_PAGE_BITS_ALL; >> } >> swap_pager_freespace(object, >> m[0]->pindex + paging_offset, count); >> } >>------------------------------------ >>If I sysctl out the call to swap_pager_freespace, all symptoms >>disappear. This code activates at about the time when the "suggest more >>swap space" message printed. IIRC, it was introduced by John Dyson this >>winter. >> >>(Perhaps, the code just triggers a bug elsewhere... No idea what is >>wrong). DG> I don't see anything wrong with it, but if it is the cause of the DG> problem, it can safely be removed. I'd suggest that people #if 0 out DG> the code and see if the problem completely vanishes. If it is not the cause, it is at least related. May be, someone more skillful may investigate it? I can quite reliably reproduce 'daemons dying' just by starting a bunch of special 'memory hungry' progs. If I comment out swap_pager_freespace() in the code above, that doesn't work anymore. At least with the memory usage pattern of the above mantioned 'memory hungry' progs, daemons keep running. HURRAY? Though, when I tried to stress the system with 'make -j# buildworld', something weird happened. Particularily, I got a corrupt ld built. It happened several times -- sometimes it is a bootstrap ld, and as a result my buildworld just stopped (ld running indefinitely). The last time it was a dynamic ld which I 'managed' to install into /usr/libexec/elf/ld (made installworld) -- I was forced to extract binary from 3.0-RELEASE distribution, since my system was not able to build anything. It may or may not be related to kernel stuff. The fact that it always happen to ld makes me feel that it may be just build process coruption. Anybody seen things like this? Anybody interested in details? DG> -DG DG> David Greenman DG> Co-founder/Principal Architect, The FreeBSD Project --- Weiler's Law: Nothing is impossible for the man who doesn't have to do it himself. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message