Linux IA64 platform development
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: "Chen, Kenneth W" <kenneth.w.chen@intel.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
	Zoltan Menyhart <Zoltan.Menyhart@bull.net>,
	"Boehm, Hans" <hans.boehm@hp.com>,
	"Grundler, Grant G" <grant.grundler@hp.com>,
	akpm@osdl.org, linux-kernel@vger.kernel.org,
	linux-ia64@vger.kernel.org
Subject: RE: Synchronizing Bit operations V2
Date: Fri, 31 Mar 2006 03:01:58 +0000	[thread overview]
Message-ID: <Pine.LNX.4.64.0603301855500.3045@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <200603310244.k2V2iQg28203@unix-os.sc.intel.com>

On Thu, 30 Mar 2006, Chen, Kenneth W wrote:

> Christoph Lameter wrote on Thursday, March 30, 2006 6:38 PM
> > > > Neither one is correct because there will always be one combination of 
> > > > clear_bit with these macros that does not generate the required memory 
> > > > barrier.
> > > 
> > > Can you give an example?  Which combination?
> > 
> > For Option(1)
> > 
> > smp_mb__before_clear_bit()
> > clear_bit(...)(
> 
> Sorry, you totally lost me.  It could me I'm extremely slow today.  For
> option (1), on ia64, clear_bit has release semantic already.  The comb
> of __before_clear_bit + clear_bit provides the required ordering.  Did
> I miss something?  By the way, we are talking about detail implementation
> on one specific architecture.  Not some generic concept that clear_bit
> has no ordering stuff in there.

We are talking about IA64 and IA64 only generates an single instruction 
with either release or acquire semantics for the case in which either 
smb_mb__before/after_clear_bit does nothing.

Neither acquire nor release is a memory barrier on IA64.

The combination of both does the equivalent but then we do not have both 
acquire and release if either smb_mb__before/after_clear bit does 
nothing.

For clear_bit you have both uses in the kernel

smb_mb_before_clear_bit()
clear_bit()

and

clear_bit()
smb_mb_after_clear_bit()


clear_bit() in itself does not have barrier semantics on IA64. Therefore 
smb_mb_after and before must both provide a memory barrier.



  parent reply	other threads:[~2006-03-31  3:01 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-30 21:02 Bit operations with the ability to specify a synchronization mode Christoph Lameter
2006-03-31  0:18 ` Synchronizing Bit operations V2 Christoph Lameter
2006-03-31  0:39   ` Chen, Kenneth W
2006-03-31  0:42     ` Christoph Lameter
2006-03-31  0:45     ` Christoph Lameter
2006-03-31  0:42   ` David Mosberger-Tang
2006-03-31  0:49     ` Christoph Lameter
2006-03-31  6:10     ` Chris Wright
2006-03-31  0:44   ` Nick Piggin
2006-03-31  3:28     ` Christoph Lameter
2006-03-31  4:12       ` Nick Piggin
2006-03-31 17:43         ` Christoph Lameter
2006-04-01  2:56           ` Nick Piggin
2006-03-31  0:50   ` Chen, Kenneth W
2006-03-31  0:51     ` Christoph Lameter
2006-03-31  0:53   ` Chen, Kenneth W
2006-03-31  0:55     ` Christoph Lameter
2006-03-31  0:56   ` Luck, Tony
2006-03-31  0:58     ` Christoph Lameter
2006-04-02  7:59       ` Russell King
2006-03-31  0:59   ` Chen, Kenneth W
2006-03-31  1:09     ` Christoph Lameter
2006-03-31  1:04   ` Chen, Kenneth W
2006-03-31  1:13     ` Christoph Lameter
2006-03-31  1:13   ` Chen, Kenneth W
2006-03-31  1:29   ` Chen, Kenneth W
2006-03-31  1:37     ` Christoph Lameter
2006-03-31  1:33   ` linux
2006-03-31  1:40     ` Christoph Lameter
2006-03-31  2:35   ` Chen, Kenneth W
2006-03-31  2:37     ` Christoph Lameter
2006-03-31  2:45   ` Chen, Kenneth W
2006-03-31  2:53     ` Nick Piggin
2006-03-31  3:01     ` Christoph Lameter [this message]
2006-03-31  2:51   ` Chen, Kenneth W
2006-03-31  2:55     ` Christoph Lameter
2006-03-31  3:02   ` Chen, Kenneth W
2006-03-31  3:08     ` Christoph Lameter
2006-03-31  3:10   ` Chen, Kenneth W
2006-03-31  3:12     ` Christoph Lameter
2006-03-31  3:11   ` Chen, Kenneth W
2006-03-31  3:14   ` Chen, Kenneth W
2006-03-31  3:20     ` Christoph Lameter
2006-03-31  3:17   ` Chen, Kenneth W
2006-03-31  3:23   ` Chen, Kenneth W
2006-03-31  3:37   ` Chen, Kenneth W
2006-03-31  6:15   ` Chen, Kenneth W
2006-03-31  7:34     ` Nick Piggin
2006-03-31 13:28   ` Andi Kleen
2006-03-31 16:22     ` Hans Boehm
2006-03-31 16:37       ` Andi Kleen
2006-03-31 17:46         ` Christoph Lameter
2006-03-31 17:45     ` Christoph Lameter
2006-03-31 17:48       ` Andi Kleen
2006-03-31 17:56         ` Christoph Lameter
2006-04-02  7:54           ` Russell King
2006-03-31 18:57   ` Chen, Kenneth W
2006-03-31 19:41   ` Chen, Kenneth W
2006-03-31 21:15     ` Christoph Lameter
2006-03-31 21:24   ` Chen, Kenneth W
2006-03-31 21:28     ` Christoph Lameter
2006-04-01  2:16       ` Nick Piggin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.0603301855500.3045@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=Zoltan.Menyhart@bull.net \
    --cc=akpm@osdl.org \
    --cc=grant.grundler@hp.com \
    --cc=hans.boehm@hp.com \
    --cc=kenneth.w.chen@intel.com \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox