From xen-ia64-devel-bounces@lists.xensource.com Fri Nov 25 01:53:18 2011
Return-path: <xen-ia64-devel-bounces@lists.xensource.com>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Nov 2011 01:53:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-ia64-devel-bounces@lists.xensource.com>)
	id 1RTkyX-0005pB-84; Fri, 25 Nov 2011 01:53:13 +0000
Received: from mail174.messagelabs.com ([85.158.138.51])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <kuwa@jp.fujitsu.com>)
	id 1RTkyV-0005ow-6D; Fri, 25 Nov 2011 01:53:11 +0000
X-Env-Sender: kuwa@jp.fujitsu.com
X-Msg-Ref: server-10.tower-174.messagelabs.com!1322185956!2941608!1
X-Originating-IP: [192.51.44.36]
X-StarScan-Version: 6.4.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29250 invoked from network); 25 Nov 2011 01:52:38 -0000
Received: from fgwmail6.fujitsu.co.jp (HELO fgwmail6.fujitsu.co.jp)
	(192.51.44.36)
	by server-10.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 25 Nov 2011 01:52:38 -0000
Received: from m3.gw.fujitsu.co.jp (unknown [10.0.50.73])
	by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id CCD8F3EE0AE;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from smail (m3 [127.0.0.1])
	by outgoing.m3.gw.fujitsu.co.jp (Postfix) with ESMTP id B5A2D45DEEB;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from s3.gw.fujitsu.co.jp (s3.gw.fujitsu.co.jp [10.0.50.93])
	by m3.gw.fujitsu.co.jp (Postfix) with ESMTP id A06F545DED9;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from s3.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1])
	by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 93ED41DB8038;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from flabmail.flab.fujitsu.co.jp (flabmail.flab.fujitsu.co.jp
	[10.25.192.37])
	by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 62B4C1DB803C;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from vskawa.flab.fujitsu.co.jp (vskawa.flab.fujitsu.co.jp
	[10.25.192.39])
	by flabmail.flab.fujitsu.co.jp (8.14.4/8.14.4/110310-Fujitsu Labs.
	Domain Mail Master) with ESMTP id pAP1pkAR023210; 
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
X-AuditID: 0a19c027-b7ca5ae000001565-39-4ecef4e20854
Received: from dm.kawasaki.flab.fujitsu.co.jp (dm.kawasaki.flab.fujitsu.co.jp
	[10.25.192.105])
	by vskawa.flab.fujitsu.co.jp (Symantec Brightmail Gateway) with SMTP id
	F9.39.05477.2E4FECE4; Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from eve.cad.flab.fujitsu.co.jp (eve.cad.flab.fujitsu.co.jp
	[10.25.228.68])
	by dm.kawasaki.flab.fujitsu.co.jp (8.14.4/8.14.4/110311-Fujitsu Labs.
	Kawasaki Domain Mail Master) with ESMTP id pAP1qYQQ024714; 
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from localhost (localhost [127.0.0.1])
	by eve.cad.flab.fujitsu.co.jp (8.14.4/8.14.4) with ESMTP id
	pAP1qX6F013664; Fri, 25 Nov 2011 10:52:33 +0900 (JST)
	(envelope-from kuwa@jp.fujitsu.com)
Date: Fri, 25 Nov 2011 10:52:13 +0900 (JST)
Message-Id: <20111125.105213.310075014.kuwa@jp.fujitsu.com>
To: JBeulich@suse.com
From: "KUWAMURA Shin'ya" <kuwa@jp.fujitsu.com>
In-Reply-To: <4EBD56C50200007800060781@nat28.tlf.novell.com>
References: <4EBD56C50200007800060781@nat28.tlf.novell.com>
X-Mailer: Mew version 6.4 on Emacs 23.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
X-Brightmail-Tracker: AAAAAQAAAZE=
Cc: xen-devel@lists.xensource.com, xen-ia64-devel@lists.xensource.com
Subject: Re: [Xen-ia64-devel] [Xen-devel] [PATCH] ia64: introduce
	atomic_{read, write}NN()
X-BeenThere: xen-ia64-devel@lists.xensource.com
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Discussion of the ia64 port of Xen
	<xen-ia64-devel.lists.xensource.com>
List-Unsubscribe: <http://lists.xensource.com/mailman/options/xen-ia64-devel>, 
	<mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
List-Post: <mailto:xen-ia64-devel@lists.xensource.com>
List-Help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-Subscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, 
	<mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-ia64-devel-bounces@lists.xensource.com
Errors-To: xen-ia64-devel-bounces@lists.xensource.com

Hi Jan,

Excuse me for too late response. Thank you for your work.
But I have a question.

>>>>> On Fri, 11 Nov 2011 16:09:25 +0000
>>>>> JBeulich@suse.com("Jan Beulich")  said:
> 
> +#define build_atomic_read(tag, type) \
> +static inline type atomic_read##tag(const volatile type *addr) \
> +{ \
> +	type ret; \
> +	asm volatile("ld%2.acq %0 = %1" \
> +		     : "=r" (ret) \
> +		     : "m" (*addr), "i" (sizeof(type))); \
> +	return ret; \
> +}
> +
> +#define build_atomic_write(tag, type) \
> +static inline void atomic_write##tag(volatile type *addr, type val) \
> +{ \
> +	asm volatile("st%2.rel %0 = %1" \
> +		     : "=m" (*addr) \
> +		     : "r" (val), "i" (sizeof(type))); \
> +}

Why do you use explicitly ld.acq and st.rel?
I think that volatile variables are always accessed using ld.acq and
st.rel and they are not required.
For example, The implementation of Linux is as follows:

#define atomic_read(v)		(*(volatile int *)&(v)->counter)
#define atomic64_read(v)	(*(volatile long *)&(v)->counter)

Best regards,
-- 
  KUWAMURA Shin'ya

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

From xen-ia64-devel-bounces@lists.xensource.com Fri Nov 25 01:53:18 2011
Return-path: <xen-ia64-devel-bounces@lists.xensource.com>
Envelope-to: archives@lists.xen.org
Delivery-date: Fri, 25 Nov 2011 01:53:18 +0000
Received: from localhost ([127.0.0.1] helo=lists.xen.org)
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <xen-ia64-devel-bounces@lists.xensource.com>)
	id 1RTkyX-0005pB-84; Fri, 25 Nov 2011 01:53:13 +0000
Received: from mail174.messagelabs.com ([85.158.138.51])
	by lists.xen.org with esmtp (Exim 4.72)
	(envelope-from <kuwa@jp.fujitsu.com>)
	id 1RTkyV-0005ow-6D; Fri, 25 Nov 2011 01:53:11 +0000
X-Env-Sender: kuwa@jp.fujitsu.com
X-Msg-Ref: server-10.tower-174.messagelabs.com!1322185956!2941608!1
X-Originating-IP: [192.51.44.36]
X-StarScan-Version: 6.4.1; banners=-,-,-
X-VirusChecked: Checked
Received: (qmail 29250 invoked from network); 25 Nov 2011 01:52:38 -0000
Received: from fgwmail6.fujitsu.co.jp (HELO fgwmail6.fujitsu.co.jp)
	(192.51.44.36)
	by server-10.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
	encrypted SMTP; 25 Nov 2011 01:52:38 -0000
Received: from m3.gw.fujitsu.co.jp (unknown [10.0.50.73])
	by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id CCD8F3EE0AE;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from smail (m3 [127.0.0.1])
	by outgoing.m3.gw.fujitsu.co.jp (Postfix) with ESMTP id B5A2D45DEEB;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from s3.gw.fujitsu.co.jp (s3.gw.fujitsu.co.jp [10.0.50.93])
	by m3.gw.fujitsu.co.jp (Postfix) with ESMTP id A06F545DED9;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from s3.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1])
	by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 93ED41DB8038;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from flabmail.flab.fujitsu.co.jp (flabmail.flab.fujitsu.co.jp
	[10.25.192.37])
	by s3.gw.fujitsu.co.jp (Postfix) with ESMTP id 62B4C1DB803C;
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from vskawa.flab.fujitsu.co.jp (vskawa.flab.fujitsu.co.jp
	[10.25.192.39])
	by flabmail.flab.fujitsu.co.jp (8.14.4/8.14.4/110310-Fujitsu Labs.
	Domain Mail Master) with ESMTP id pAP1pkAR023210; 
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
X-AuditID: 0a19c027-b7ca5ae000001565-39-4ecef4e20854
Received: from dm.kawasaki.flab.fujitsu.co.jp (dm.kawasaki.flab.fujitsu.co.jp
	[10.25.192.105])
	by vskawa.flab.fujitsu.co.jp (Symantec Brightmail Gateway) with SMTP id
	F9.39.05477.2E4FECE4; Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from eve.cad.flab.fujitsu.co.jp (eve.cad.flab.fujitsu.co.jp
	[10.25.228.68])
	by dm.kawasaki.flab.fujitsu.co.jp (8.14.4/8.14.4/110311-Fujitsu Labs.
	Kawasaki Domain Mail Master) with ESMTP id pAP1qYQQ024714; 
	Fri, 25 Nov 2011 10:52:34 +0900 (JST)
Received: from localhost (localhost [127.0.0.1])
	by eve.cad.flab.fujitsu.co.jp (8.14.4/8.14.4) with ESMTP id
	pAP1qX6F013664; Fri, 25 Nov 2011 10:52:33 +0900 (JST)
	(envelope-from kuwa@jp.fujitsu.com)
Date: Fri, 25 Nov 2011 10:52:13 +0900 (JST)
Message-Id: <20111125.105213.310075014.kuwa@jp.fujitsu.com>
To: JBeulich@suse.com
From: "KUWAMURA Shin'ya" <kuwa@jp.fujitsu.com>
In-Reply-To: <4EBD56C50200007800060781@nat28.tlf.novell.com>
References: <4EBD56C50200007800060781@nat28.tlf.novell.com>
X-Mailer: Mew version 6.4 on Emacs 23.3 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
X-Brightmail-Tracker: AAAAAQAAAZE=
Cc: xen-devel@lists.xensource.com, xen-ia64-devel@lists.xensource.com
Subject: Re: [Xen-ia64-devel] [Xen-devel] [PATCH] ia64: introduce
	atomic_{read, write}NN()
X-BeenThere: xen-ia64-devel@lists.xensource.com
X-Mailman-Version: 2.1.13
Precedence: list
List-Id: Discussion of the ia64 port of Xen
	<xen-ia64-devel.lists.xensource.com>
List-Unsubscribe: <http://lists.xensource.com/mailman/options/xen-ia64-devel>, 
	<mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
List-Post: <mailto:xen-ia64-devel@lists.xensource.com>
List-Help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-Subscribe: <http://lists.xensource.com/mailman/listinfo/xen-ia64-devel>, 
	<mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: xen-ia64-devel-bounces@lists.xensource.com
Errors-To: xen-ia64-devel-bounces@lists.xensource.com

Hi Jan,

Excuse me for too late response. Thank you for your work.
But I have a question.

>>>>> On Fri, 11 Nov 2011 16:09:25 +0000
>>>>> JBeulich@suse.com("Jan Beulich")  said:
> 
> +#define build_atomic_read(tag, type) \
> +static inline type atomic_read##tag(const volatile type *addr) \
> +{ \
> +	type ret; \
> +	asm volatile("ld%2.acq %0 = %1" \
> +		     : "=r" (ret) \
> +		     : "m" (*addr), "i" (sizeof(type))); \
> +	return ret; \
> +}
> +
> +#define build_atomic_write(tag, type) \
> +static inline void atomic_write##tag(volatile type *addr, type val) \
> +{ \
> +	asm volatile("st%2.rel %0 = %1" \
> +		     : "=m" (*addr) \
> +		     : "r" (val), "i" (sizeof(type))); \
> +}

Why do you use explicitly ld.acq and st.rel?
I think that volatile variables are always accessed using ld.acq and
st.rel and they are not required.
For example, The implementation of Linux is as follows:

#define atomic_read(v)		(*(volatile int *)&(v)->counter)
#define atomic64_read(v)	(*(volatile long *)&(v)->counter)

Best regards,
-- 
  KUWAMURA Shin'ya

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

