From owner-cvs-src@FreeBSD.ORG Tue Apr 1 11:38:52 2008 Return-Path: <owner-cvs-src@FreeBSD.ORG> 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 75C7E106566C; Tue, 1 Apr 2008 11:38:52 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from webaccess-cl.virtdom.com (webaccess-cl.virtdom.com [216.240.101.25]) by mx1.freebsd.org (Postfix) with ESMTP id 3C2528FC2D; Tue, 1 Apr 2008 11:38:52 +0000 (UTC) (envelope-from jroberson@chesapeake.net) Received: from [10.0.1.200] (cpe-24-94-72-120.hawaii.res.rr.com [24.94.72.120]) (authenticated bits=0) by webaccess-cl.virtdom.com (8.13.6/8.13.6) with ESMTP id m31BcjFE027267; Tue, 1 Apr 2008 07:38:46 -0400 (EDT) (envelope-from jroberson@chesapeake.net) Date: Tue, 1 Apr 2008 01:39:55 -1000 (HST) From: Jeff Roberson <jroberson@chesapeake.net> X-X-Sender: jroberson@desktop To: David Xu <davidxu@FreeBSD.org> In-Reply-To: <47F19B89.20601@freebsd.org> Message-ID: <20080401013919.M72156@desktop> References: <200803310255.m2V2toJl053104@repoman.freebsd.org> <20080331150346.R72156@desktop> <47F19B89.20601@freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/lib/libthr/thread thr_cond.c thr_private.h thr_rwlock.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree <cvs-src.freebsd.org> List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-src>, <mailto:cvs-src-request@freebsd.org?subject=unsubscribe> List-Archive: <http://lists.freebsd.org/pipermail/cvs-src> List-Post: <mailto:cvs-src@freebsd.org> List-Help: <mailto:cvs-src-request@freebsd.org?subject=help> List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/cvs-src>, <mailto:cvs-src-request@freebsd.org?subject=subscribe> X-List-Received-Date: Tue, 01 Apr 2008 11:38:52 -0000 On Tue, 1 Apr 2008, David Xu wrote: > Jeff Roberson wrote: >> On Mon, 31 Mar 2008, David Xu wrote: >> >>> davidxu 2008-03-31 02:55:50 UTC >>> >>> FreeBSD src repository >>> >>> Modified files: >>> lib/libthr/thread thr_cond.c thr_private.h thr_rwlock.c >>> Log: >>> Rewrite rwlock to user atomic operations to change rwlock state, this >>> eliminates internal mutex lock contention when most rwlock operations >>> are read. >>> >>> Orignal patch provided by: jeff >> >> Thanks David! >> >> Do you still plan to do kernel side support so we can totally eliminate the >> pthread mutex and condvars from rwlock? I have evidence that this would >> produce further improvements. >> >> Jeff > > I have pure kernel version working, sometimes locking kernel sleep > chain is more expensive than a pure userland mutex locking, since > kernel sleep chain lock is global. I am hestiate adding more code > to kernel since I have tested mysql super-smack and sysbench > read-only and seen no visible performance differences. > all patches are here: > > http://people.freebsd.org/~davidxu/patch/libthr_umtx_rwlock.diff > http://people.freebsd.org/~davidxu/patch/umtx_rwlock.diff > > Te main bottleneck is in mysql itself, there are lots of lock > contention, the following is a list of the main contention points when > testing super-smack read benchmark. > > http://people.freebsd.org/~davidxu/mysql/mysql_lock.txt > > I don't think it scales beyond 4 cores ( I have tested it on a 4-core > machine). On linux it scales to 8 cores. On FreeBSD CVS is limited by poor locking in the buffer cache. I have a local hack so I can test changes to this. I will try my hack with your umtx changes and get back to you. Thanks, Jeff > > Regards, > David Xu >