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
>