Date: Mon, 9 Nov 1998 22:42:14 +0200 (EET) From: Alexander Litvin <archer@lucky.net> To: dg@root.com Cc: current@FreeBSD.ORG Subject: Re: The infamous dying daemons bug Message-ID: <199811092042.WAA27346@grape.carrier.kiev.ua> In-Reply-To: <199811081924.LAA06586@root.com>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811092042.WAA27346>