Date: Tue, 16 Oct 2001 10:34:32 -0700 (PDT) From: John Baldwin <jhb@FreeBSD.org> To: Dag-Erling Smorgrav <des@ofug.org> Cc: cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, Bruce Evans <bde@zeta.org.au>, Matthew Dillon <dillon@apollo.backplane.com> Subject: Re: cvs commit: src/sys/vm vnode_pager.c Message-ID: <XFMail.011016103432.jhb@FreeBSD.org> In-Reply-To: <xzpn12rwmph.fsf@flood.ping.uio.no>
next in thread | previous in thread | raw e-mail | index | archive | help
On 16-Oct-01 Dag-Erling Smorgrav wrote: > Dag-Erling Smorgrav <des@ofug.org> writes: >> Matthew Dillon <dillon@apollo.backplane.com> writes: >> > ffs_sync() in -current is doing a lot of mutex operations >> > in the loop. If you have various -current mutex debugging >> > options turned on, even the default ones I think, this could >> > be responsible for the latency you are experiencing. Each >> > scan loop is doing four mutex ops. >> So, what changed in the witness code to make it so slow (or in the FFS >> code to make it perform so many mutex operations) around late June / >> early July? > > BTW, the profiling data show that mutex debugging actually have very > little impact - 88% of CPU time is spent in _mtx_unlock_spin_flags(), > and only 0.6% in witness_unlock() (which _mtx_unlock_spin_flags() > calls). Witness functions amount to about 3% all told, _mtx_assert() > accounts for 0.1%. The problem isn't mutex debugging, or mutex > handling at all - the problem is that ffs_fsync() has an insane amount > of work to do, most of which is probably bogus. How about turning off INVARIANTS and WITNESS and seeing if it does better? Witness did become more expensive when I made it work for reader/writer locks on May 4 as it has to manage a list of lock instances instead of embedding the list inside the lock object itself. -- John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/ PGP Key: http://www.baldwin.cx/~john/pgpkey.asc "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ 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?XFMail.011016103432.jhb>