From owner-freebsd-hackers Sat Mar 15 19:07:19 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id TAA02897 for hackers-outgoing; Sat, 15 Mar 1997 19:07:19 -0800 (PST) Received: from scanner.worldgate.com (scanner.worldgate.com [198.161.84.3]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA02892; Sat, 15 Mar 1997 19:07:15 -0800 (PST) Received: from znep.com (uucp@localhost) by scanner.worldgate.com (8.8.5/8.7.3) with UUCP id UAA01691; Sat, 15 Mar 1997 20:07:07 -0700 (MST) Received: from localhost (marcs@localhost) by alive.znep.com (8.7.5/8.7.3) with SMTP id UAA07731; Sat, 15 Mar 1997 20:06:53 -0700 (MST) Date: Sat, 15 Mar 1997 20:06:53 -0700 (MST) From: Marc Slemko cc: isp@freebsd.org, hackers@freebsd.org Subject: Re: freebsd as a news server? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Sun, 9 Mar 1997, Marc Slemko wrote: > You are probably using 2.2 or -current, right? On a 2.2 system I get > similar results to yours. On 2.1, async mounts only change one bit of > ffs code. In 2.2, they make more things async. I don't think the > difference in real life between 2.1 async and 2.2 async is as big as in a > test like this. For anyone still interested in this sync vs. async discussion, below is patch for 2.1-stable that should make async close to what it is in 2.2. This is the same change that was made in 2.2... Index: ffs_inode.c =================================================================== RCS file: /usr/cvs/src/sys/ufs/ffs/ffs_inode.c,v retrieving revision 1.13.4.1 diff -c -r1.13.4.1 ffs_inode.c *** ffs_inode.c 1995/08/24 06:03:02 1.13.4.1 --- ffs_inode.c 1997/03/16 01:23:13 *************** *** 222,227 **** --- 222,229 ---- oip->i_size = length; if (aflags & B_SYNC) bwrite(bp); + else if (ovp->v_mount->mnt_flag & MNT_ASYNC) + bdwrite(bp); else bawrite(bp); vnode_pager_setsize(ovp, (u_long)length); *************** *** 252,257 **** --- 254,261 ---- allocbuf(bp, size); if (aflags & B_SYNC) bwrite(bp); + else if (ovp->v_mount->mnt_flag & MNT_ASYNC) + bdwrite(bp); else bawrite(bp); }