Date: Sat, 22 Jun 2002 11:08:04 -0700 (PDT) From: Matt Dillon <dillon@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ufs ufs_readwrite.c Message-ID: <200206221808.g5MI84f97451@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206221808.g5MI84f97451>
