Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 Oct 2001 16:55:31 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Dag-Erling Smorgrav <des@ofug.org>
Cc:        John Baldwin <jhb@FreeBSD.org>, <cvs-all@FreeBSD.org>, <cvs-committers@FreeBSD.org>, Matthew Dillon <dillon@apollo.backplane.com>
Subject:   Re: cvs commit: src/sys/vm vnode_pager.c
Message-ID:  <20011017164428.R15050-100000@delplex.bde.org>
In-Reply-To: <xzpzo6rxyb7.fsf@flood.ping.uio.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On 16 Oct 2001, Dag-Erling Smorgrav wrote:

> May 4 is about a month and a half before I started seeing these
> problems, and the profiling data show that witness code and assertions
> account for less than 4% of CPU time.  Here are some of the pertinent
> excerpts from the call graph:
> ...
> Out of 32.31 seconds spent in _mtx_unlock_spin_flags() and its
> descendents, only about 0.25 seconds were spent in witness and
> assertion code.

This is quite likely to be just an artifact of the mtx interfaces
keeping interrupts disabled for too long.  _mtx_unlock_spin_flags()
tends to get charged with an interrupt tick more than most places
when it enables interrupts.

You should use high-resolution profiling like I hinted.  I wouldn't
trust any of the times shown by low resolution profiling without running
the profile for about 1000 times as long as a high resolution profile,
but not so long that any single counter overflows (counters overflow
after a whole 65536 ticks), and not if there is significant interrupt
activity or interrupt masking (mutex locking apparently does enough
interrupt masking to often corrupt the counts, at least if INVARIANTS
and WITNESS are enabled).  Only the call graph and call counts can
be trusted.

Bruce


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?20011017164428.R15050-100000>