From owner-cvs-src@FreeBSD.ORG Wed Mar 19 07:22:08 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 560121065676; Wed, 19 Mar 2008 07:22:08 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 35BE68FC12; Wed, 19 Mar 2008 07:22:08 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2J7M8MO089190; Wed, 19 Mar 2008 07:22:08 GMT (envelope-from jeff@repoman.freebsd.org) Received: (from jeff@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2J7M8nQ089189; Wed, 19 Mar 2008 07:22:08 GMT (envelope-from jeff) Message-Id: <200803190722.m2J7M8nQ089189@repoman.freebsd.org> From: Jeff Roberson Date: Wed, 19 Mar 2008 07:22:07 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/kern subr_sleepqueue.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Mar 2008 07:22:08 -0000 jeff 2008-03-19 07:22:07 UTC FreeBSD src repository Modified files: sys/kern subr_sleepqueue.c Log: - Add a facility similar to LOCK_PROFILING under SLEEPQUEUE_PROFILING. Keep a simple (wmesg, count) tuple in a hash to keep track of how many times we sleep at each wait message. We hash on message and not channel. No line number information is given as typically wait messages are not used in more than one place. Identical strings defined at different addresses will show up with seperate counters. - Use debug.sleepq.enable to enable, .reset to reset, and .stats dumps stats. - Do an unsynchronized check in sleepq_switch() prior to switching before calling sleepq_profile() which uses a global lock to synchronize the hash. Only sleeps which actually cause a context switch are counted. Revision Changes Path 1.49 +159 -1 src/sys/kern/subr_sleepqueue.c