From owner-freebsd-hackers Sun Jun 6 23: 0:52 1999 Delivered-To: freebsd-hackers@freebsd.org Received: from dyson.iquest.net. (dyson.iquest.net [198.70.144.127]) by hub.freebsd.org (Postfix) with ESMTP id 0582D14FC4 for ; Sun, 6 Jun 1999 23:00:48 -0700 (PDT) (envelope-from toor@dyson.iquest.net) Received: (from toor@localhost) by dyson.iquest.net. (8.9.3/8.9.3) id BAA63817; Mon, 7 Jun 1999 01:00:25 -0500 (EST) (envelope-from toor) Message-Id: <199906070600.BAA63817@dyson.iquest.net.> Subject: Re: problem for the VM gurus In-Reply-To: from Arun Sharma at "Jun 6, 1999 08:14:11 pm" To: adsharma@home.com (Arun Sharma) Date: Mon, 7 Jun 1999 01:00:25 -0500 (EST) Cc: green@unixhelp.org (Brian Feldman), hackers@FreeBSD.ORG From: "John S. Dyson" Reply-To: dyson@iquest.net X-Mailer: ELM [version 2.4ME+ PL54 (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 Arun Sharma said: > bread > ffs_read > ffs_getpages > vnode_pager_getpages > vm_fault > --- > slow_copyin > ffs_write > vn_write > dofilewrite > write > syscall > > getblk finds that the buffer is marked B_BUSY and sleeps on it. But I > can't figure out who marked it busy. > This looks like the historical problem of doing I/O to an mmap'ed region. There are two facets to the problem: One where the I/O is to the same vn, and the other is where the I/O is to a different vn. The case where the I/O is to the same vn had a (short term) fix previously in the code, by allowing for recursive usage of a vn under certain circumstances. The problem of different vn's can be fixed by proper resource handling in vfs_bio (and perhaps other places.) (My memory isn't 100% clear on the code anymore, but you have shown alot of info with your backtrace.) -- 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