From owner-cvs-all Sat Dec 15 7:30:33 2001 Delivered-To: cvs-all@freebsd.org Received: from k6.locore.ca (k6.locore.ca [198.96.117.170]) by hub.freebsd.org (Postfix) with ESMTP id C596A37B405; Sat, 15 Dec 2001 07:30:25 -0800 (PST) Received: (from jake@localhost) by k6.locore.ca (8.11.6/8.11.6) id fBFFWX233953; Sat, 15 Dec 2001 10:32:33 -0500 (EST) (envelope-from jake) Date: Sat, 15 Dec 2001 10:32:32 -0500 From: Jake Burkholder To: Kirk McKusick Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/ufs/ffs ffs_alloc.c ffs_snapshot.c ffs_vfsops.c fs.h Message-ID: <20011215103232.C12719@locore.ca> References: <200112140015.fBE0F6Q99440@freefall.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200112140015.fBE0F6Q99440@freefall.freebsd.org>; from mckusick@FreeBSD.org on Thu, Dec 13, 2001 at 04:15:06PM -0800 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Apparently, On Thu, Dec 13, 2001 at 04:15:06PM -0800, Kirk McKusick said words to the effect of; > mckusick 2001/12/13 16:15:06 PST > > Modified files: > sys/ufs/ffs ffs_alloc.c ffs_snapshot.c ffs_vfsops.c > fs.h > Log: > Minimize the time necessary to suspend operations on a filesystem > when taking a snapshot. The two time consuming operations are Atomic_clear_char and atomic_set_char shouldn't be used in MI code because they can't be implemented efficiently on all architectures. [1] Sparc64 only has compare and set instructions for 4 bytes or 8 bytes, which makes the char and short operations very difficult to implement properly. The whole thing is also still under Giant, which has the correct memory barriers to ensure that stores to locations other than the lock itself are correctly drained to memory as its released. Is there a way you can do this without the atomic ops? Cheers, Jake [1] I removed all use of the char and short atomic ops in MI code when the sparc64 port was first committed, but neglected to update the man page to mention that their use is discouraged. I will do so. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message