Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Nov 2010 21:29:01 +0800
From:      David Xu <davidxu@freebsd.org>
To:        Jilles Tjoelker <jilles@stack.nl>
Cc:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   Re: svn commit: r215071 - in user/davidxu/libthr: include lib/libc lib/libc/gen lib/libc/stdio lib/libthr lib/libthr/thread
Message-ID:  <4CDD411D.4060304@freebsd.org>
In-Reply-To: <20101112131941.GA57806@stack.nl>
References:  <201011100127.oAA1Rmrh069656@svn.freebsd.org> <20101112131941.GA57806@stack.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
Jilles Tjoelker wrote:
> On Wed, Nov 10, 2010 at 01:27:48AM +0000, David Xu wrote:
>   
>> Author: davidxu
>> Date: Wed Nov 10 01:27:48 2010
>> New Revision: 215071
>> URL: http://svn.freebsd.org/changeset/base/215071
>>     
>
>   
>> Log:
>>   Convert pthread_mutex_t and pthread_cond_t to structure based instead of
>>   pointer type, this allows us to support process-shared.
>>     
>
> Very nice.
>
> Apart from supporting process-shared, this also helps avoid the "array
> of synchronization objects" anti-pattern (false sharing). It is not so
> bad for the old struct pthread_mutex which is 64 bytes on i386, but in
> other cases one cache line may contain parts of multiple unrelated
> synchronization objects.
>   
Don't know what did you mean, did you think that sizeof  struct 
pthread_mutex
smaller than a cache line is a bad thing ?

> In this regard, it would be better for stdio to allocate
>   struct { FILE file; pthread_mutex_t lock; }
> rather than separate FILEs and locks.
>   
This breaks ABI. :-)
> Like the sem_t change, this changes the ABI in a way symver can only
> partially deal with (think plugins with pthread_mutex_t in struct in
> public header file). However, I think the change should be made
> regardless.
>
>   
Yes, we found that some GNU libraries have to bump version.







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4CDD411D.4060304>