From owner-cvs-all Sat Jun 22 11: 8: 8 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 0487F37B403; Sat, 22 Jun 2002 11:08:05 -0700 (PDT) Received: (from dillon@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g5MI84f97451; Sat, 22 Jun 2002 11:08:04 -0700 (PDT) (envelope-from dillon) Message-Id: <200206221808.g5MI84f97451@freefall.freebsd.org> From: Matt Dillon Date: Sat, 22 Jun 2002 11:08:04 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ufs ufs_readwrite.c X-FreeBSD-CVS-Branch: RELENG_4 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 dillon 2002/06/22 11:08:04 PDT Modified files: (Branch: RELENG_4) sys/ufs/ufs ufs_readwrite.c Log: MFC 1.90. Fix a major performance issue that was introduced in late 2000. Setting B_CLRBUF for the BALLOC call unexpectedly caused BALLOC to issue a read-before-write for each fs block, resulting in a huge (4x) performance penalty due to extra I/Os and lack of clustering. This workaround avoids the unnecessary read resulting in full write clustering performance to media. It is expected to have major visible effects only on large news systems (e.g. INN cyclic buffers), and databases, especially on hardware RAID systems (10x), and has already been shown to have a huge positive effect on INN. Most other programs use write-append which is already optimal. This patch does not fix the double-memory-copy to the filesystem buffer. That is a more difficult problem and is being worked on as a separate issue. Reviewed by: mckusick, tegge Revision Changes Path 1.65.2.11 +11 -7 src/sys/ufs/ufs/ufs_readwrite.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message