From owner-freebsd-hackers Mon Feb 15 12:27:12 1999 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id MAA00291 for freebsd-hackers-outgoing; Mon, 15 Feb 1999 12:27:12 -0800 (PST) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from iquest3.iquest.net (iquest3.iquest.net [209.43.20.203]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id MAA00280 for ; Mon, 15 Feb 1999 12:27:09 -0800 (PST) (envelope-from toor@y.dyson.net) Received: (qmail 5699 invoked from network); 15 Feb 1999 20:27:06 -0000 Received: from dyson.iquest.net (HELO y.dyson.net) (198.70.144.127) by iquest3.iquest.net with SMTP; 15 Feb 1999 20:27:06 -0000 Received: (from root@localhost) by y.dyson.net (8.9.1/8.9.1) id PAA01706; Mon, 15 Feb 1999 15:27:04 -0500 (EST) Message-Id: <199902152027.PAA01706@y.dyson.net> Subject: Re: inode / exec_map interlock ? (Ask the authors) In-Reply-To: <199902151944.LAA18828@apollo.backplane.com> from Matthew Dillon at "Feb 15, 99 11:44:24 am" To: dillon@apollo.backplane.com (Matthew Dillon) Date: Mon, 15 Feb 1999 15:27:04 -0500 (EST) Cc: freebsd-hackers@FreeBSD.ORG From: "John S. Dyson" Reply-To: dyson@iquest.net X-Mailer: ELM [version 2.4ME+ PL38 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Matthew Dillon said: > I found an interesting interlock situation between what I believe to > be a program binaries inode and the exec_map. The machine locked up > trying to exec new programs. > > This was running a make -j10 buildworld on a machine with 16MB of ram > configured, while testing my new VM system. I don't think the lockup is > due to my VM system, though. It took it 7 hours of extremely heavy > paging before it locked up. > > When I broke the machine out into DDB and did a ps, all of the cc's > were stuck in 'inode' wait, while a single ld program was stuck in > 'thrd_sleep'. > > I tracked 'thrd_sleep' down to a vm_map lock and the map down to > the exec_map. I tracked down the inode lock to the 'cc' program binary. > The inode had one shared lock and 7 waiters. The exec_map appears to > own one shared lock with 6 waiters ( but most of the waiters are due to > me trying to run other programs before breaking into the DDB ). > > I am guessing that there is an interlock situation with exec_map and > a program inode where one process locks exec_map followed by the program > inode, and another locks the program inode followed by exec_map. But > I'm not familiar with that section of the code so I would appreciate > any help. > I don't know what you are trying to do in your code, but there is alot of history of problems in that area. I suspect that you might be making one of the mistakes that we used to do, and there is a resource deadlock problem in that area. I suggest that you look at some of the mailing-list archives (either in -hackers or in -current) for information on such deadlocks. It could be cloaked by other subjects. Hint: it isn't generally a good idea to fault data into the kernel. If that isn't the problem, then there are other deadlock issues (throughout the VM system structure), that need to be carefully considered before hacking away. I strongly suggest that if you are hacking away at DGs and my VM code, that you contact the authors, rather than randomly asking questions on the mailing lists :-). Being very busy, I cannot answer questions immediately all the time. However, DG and I are the authors of the existing code (mostly leaving old copyrights on for reasons of convienience), so contact the authors who are available. -- John | Never try to teach a pig to sing, dyson@iquest.net | it makes one look stupid jdyson@nc.com | and it irritates the pig. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message