From owner-freebsd-threads@FreeBSD.ORG Sat May 20 01:36:05 2006 Return-Path: X-Original-To: freebsd-threads@freebsd.org Delivered-To: freebsd-threads@freebsd.org Received: from localhost.my.domain (localhost [127.0.0.1]) by hub.freebsd.org (Postfix) with ESMTP id B311016A425 for ; Sat, 20 May 2006 01:36:04 +0000 (UTC) (envelope-from davidxu@freebsd.org) From: David Xu To: freebsd-threads@freebsd.org Date: Sat, 20 May 2006 09:35:54 +0800 User-Agent: KMail/1.8.2 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200605200935.54828.davidxu@freebsd.org> Subject: optimize msleep with PCATCH flag X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 May 2006 01:36:05 -0000 Hi, Here is a patch to reduce overhead when PCATCH flag is set for msleep. http://people.freebsd.org/~davidxu/patch/PCATCH_optimize.patch I use SUN's mutex ping-pong program to test it, source code is here: http://people.freebsd.org/~davidxu/bench/pp.c I have tested it on a dual PIII machine, with command: ./pp -v -s system -n 4 Here is the result before and after the patch: x plain_PCATCH.txt + PCATCH_optimized.txt +--------------------------------------------------------------------------+ |+ + + x ++ +* xx x x * x| | |__________________A__|M___________M_|______________| | +--------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 8 35311 41714 37750.5 38101 1954.5673 + 8 32191 39802 36179 35670.125 2401.755 Difference at 95.0% confidence -2430.88 +/- 2348.35 -6.38008% +/- 6.1635% (Student's t, pooled s = 2189.61) David Xu