From owner-freebsd-arch Sat Feb 22 19:10:19 2003 Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0A64037B401 for ; Sat, 22 Feb 2003 19:10:18 -0800 (PST) Received: from mail.chesapeake.net (chesapeake.net [205.130.220.14]) by mx1.FreeBSD.org (Postfix) with ESMTP id 531BA43F85 for ; Sat, 22 Feb 2003 19:10:16 -0800 (PST) (envelope-from jroberson@chesapeake.net) Received: from localhost (jroberson@localhost) by mail.chesapeake.net (8.11.6/8.11.6) with ESMTP id h1N3AFE02208 for ; Sat, 22 Feb 2003 22:10:15 -0500 (EST) (envelope-from jroberson@chesapeake.net) Date: Sat, 22 Feb 2003 22:10:15 -0500 (EST) From: Jeff Roberson To: arch@FreeBSD.ORG Subject: Re: More buf cache locking. (patch) In-Reply-To: <20030222013233.T88110-100000@mail.chesapeake.net> Message-ID: <20030222220659.D1116-100000@mail.chesapeake.net> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Ok, I did this a little cleaner than I thought I would. I got rid of the buftimelock and acquire the lock's interlock outside of lockmgr. Then I pass a flag into lockmgr to tell it I've already got its interlock. I then added an interlock parameter to BUF_LOCK and BUF_TIMELOCK. The user still has to specify LK_INTERLOCK. This smp safes all of the queueing of bufs onto and off of vnode buf lists. The free list queueing is already safe. I'm testing this code right now on my laptop. I'll throw it on a few machines around here for a while before I commit as well. Since this was much lower impact than I thought it would be I'm not going to wait more than three or four days to commit assuming there are no objections. Cheers, Jeff To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message