From owner-freebsd-hackers Fri Oct 3 02:41:37 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id CAA03756 for hackers-outgoing; Fri, 3 Oct 1997 02:41:37 -0700 (PDT) Received: from palrel3.hp.com (palrel3.hp.com [156.153.255.219]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id CAA03739 for ; Fri, 3 Oct 1997 02:41:34 -0700 (PDT) Received: from postbox.india.hp.com (postbox.india.hp.com [15.10.45.1]) by palrel3.hp.com (8.8.5/8.8.5tis) with ESMTP id CAA28596; Fri, 3 Oct 1997 02:40:56 -0700 (PDT) Message-Id: <199710030940.CAA28596@palrel3.hp.com> Received: from localhost by postbox.india.hp.com with ESMTP (1.39.111.2/16.2) id AA021391382; Fri, 3 Oct 1997 15:06:22 +0530 To: Simon Shapiro Cc: freebsd-hackers@freebsd.org, freebsd-dlm@primer.i-connect.net Subject: Re: Advice Seeked - Non-Invasive Metrics Techniques In-Reply-To: Your message of "Fri, 03 Oct 1997 00:00:22 MST." Date: Fri, 03 Oct 1997 15:06:22 +0530 From: A Joseph Koshy Sender: owner-freebsd-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >>>> "Simon Shapiro" writes > I need to carefully tune and analyze timing and perfromance statistics. > Mainly to identify why some rotines in the DLM take so much time. One suggestion would be to write `event logs' like this to a memory buffer with periodic flushing to disk file. A userland tool would later reconstruct the sequence of events that occurred in the kernel from the log. Such a tool could also bring out to light "interesting interactions". The process of writing an event log can be made reasonably cheap: writing out some 4 words of memory and a pointer increment. There would be some overhead from the periodic flushing of the log to permanent storage, but for large log size, this overhead could be amortized over many log entries. Take a look at: Sharon E. Perl and Richard L. Sites, "Studies of Windows NT Performance using Dynamic Execution Traces" ftp://ftp.digital.com/pub/DEC/SRC/research-reports/SRC-146.ps.gz for this approach taken to the extreme. Standard kernel profiling gives you statistical information on objects like functions (-p) or basic blocks (-a), but cannot capture timing and latency interactions. Event logs can capture timing/latency issues very well. Koshy