From owner-freebsd-threads@FreeBSD.ORG  Mon Apr 23 11:26:55 2012
Return-Path: <owner-freebsd-threads@FreeBSD.ORG>
Delivered-To: freebsd-threads@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 8D439106566C
	for <freebsd-threads@freebsd.org>; Mon, 23 Apr 2012 11:26:55 +0000 (UTC)
	(envelope-from yfw.bsd@gmail.com)
Received: from mail-ob0-f182.google.com (mail-ob0-f182.google.com
	[209.85.214.182])
	by mx1.freebsd.org (Postfix) with ESMTP id 4F2D58FC08
	for <freebsd-threads@freebsd.org>; Mon, 23 Apr 2012 11:26:55 +0000 (UTC)
Received: by obqv19 with SMTP id v19so17853572obq.13
	for <freebsd-threads@freebsd.org>; Mon, 23 Apr 2012 04:26:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
	h=mime-version:in-reply-to:references:date:message-id:subject:from:to
	:cc:content-type:content-transfer-encoding;
	bh=qihIEsDuVpWLiT/2hXUQEVWVvK6/OsbnX1xkWo913Kk=;
	b=B2fRAxF34iooiH2iAXbvrpKPlfgUtUeBopv7ycclEKKX/TJV7+jk1pCVG4GpVJu5qz
	soAliX0q75JD+7RrhOiHCu53cw4OgHmL94AvYKyyWc7K+g+YLlq3U7XX/H6tYP6ZVdWT
	1TbMF/QcFyOmyqvohL2RM93HAKgMIQqVYuVAAASC3mdIyMxKPn5+6Jk5gZ5MjmC5VSYN
	V5KuFfOnIjtvbBb/9aSydzyf4G/x1yq47n3rTw4oJ9VfLnIFGM+pLKIM/1fAEjqYwSTY
	how18xJLf9ud8meBLz0iD/GIhJulijNHuvYz6mTA2G/C/nY05nxPpnoUUsBdTRcygPdW
	d3MQ==
MIME-Version: 1.0
Received: by 10.60.29.39 with SMTP id g7mr2929689oeh.6.1335180415000; Mon, 23
	Apr 2012 04:26:55 -0700 (PDT)
Received: by 10.60.125.135 with HTTP; Mon, 23 Apr 2012 04:26:54 -0700 (PDT)
In-Reply-To: <20120423094043.GS32749@zxy.spb.ru>
References: <CAPHpMu=DOGQ=TuFeYH7bH8hVwteT4Q3k67-mvoOFob6P3Y506w@mail.gmail.com>
	<20120423084120.GD76983@zxy.spb.ru>
	<CAPHpMu=kCwhf1RV_sYBDWDPL8368YTMLXge4L_g_F4AkTX1H5g@mail.gmail.com>
	<20120423094043.GS32749@zxy.spb.ru>
Date: Mon, 23 Apr 2012 19:26:54 +0800
Message-ID: <CAPHpMukLUeetSKpH2oiKJQ3ML_PFHEi6a0hK3_Ery=LX1YEd3g@mail.gmail.com>
From: Fengwei yin <yfw.bsd@gmail.com>
To: Slawa Olhovchenkov <slw@zxy.spb.ru>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Cc: jack.ren@intel.com, freebsd-threads@freebsd.org
Subject: Re: About the memory barrier in BSD libc
X-BeenThere: freebsd-threads@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: Threading on FreeBSD <freebsd-threads.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-threads>, 
	<mailto:freebsd-threads-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-threads>
List-Post: <mailto:freebsd-threads@freebsd.org>
List-Help: <mailto:freebsd-threads-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/freebsd-threads>,
	<mailto:freebsd-threads-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Apr 2012 11:26:55 -0000

On Mon, Apr 23, 2012 at 5:40 PM, Slawa Olhovchenkov <slw@zxy.spb.ru> wrote:
> On Mon, Apr 23, 2012 at 05:32:24PM +0800, Fengwei yin wrote:
>
>> On Mon, Apr 23, 2012 at 4:41 PM, Slawa Olhovchenkov <slw@zxy.spb.ru> wro=
te:
>> > On Mon, Apr 23, 2012 at 02:56:03PM +0800, Fengwei yin wrote:
>> >
>> >> Hi list,
>> >> If this is not correct question on the list, please let me know and
>> >> sorry for noise.
>> >>
>> >> I have a question regarding the BSD libc for SMP arch. I didn't see
>> >> memory barrier used in libc.
>> >> How can we make sure it's safe on SMP arch?
>> >
>> > /usr/include/machine/atomic.h:
>> >
>> > #define mb() =A0 =A0__asm __volatile("lock; addl $0,(%%esp)" : : : "me=
mory")
>> > #define wmb() =A0 __asm __volatile("lock; addl $0,(%%esp)" : : : "memo=
ry")
>> > #define rmb() =A0 __asm __volatile("lock; addl $0,(%%esp)" : : : "memo=
ry")
>> >
>>
>> Thanks for the information. But it looks no body use it in libc.
>
> I think no body in libc need memory barrier: libc don't work with
> peripheral, for atomic opertions used different macros.

If we check the usage of __sinit(), it is a typical singleton pattern which
needs memory barrier to make sure no potential SMP issue.

Or did I miss something here?

Regards
Yin, Fengwei