linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Chris Snook <csnook@redhat.com>
Cc: David Howells <dhowells@redhat.com>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	torvalds@linux-foundation.org, netdev@vger.kernel.org,
	akpm@linux-foundation.org, ak@suse.de, heiko.carstens@de.ibm.com,
	davem@davemloft.net, schwidefsky@de.ibm.com,
	wensong@linux-vs.org, horms@verge.net.au, wjiang@resilience.com,
	cfriesen@nortel.com, zlynx@acm.org, rpjday@mindspring.com,
	jesper.juhl@gmail.com
Subject: Re: [PATCH 6/24] make atomic_read() behave consistently on frv
Date: Tue, 14 Aug 2007 15:42:53 +1000	[thread overview]
Message-ID: <46C140DD.3060509@yahoo.com.au> (raw)
In-Reply-To: <46BFFDBD.6080804@redhat.com>

Chris Snook wrote:
> David Howells wrote:
> 
>> Chris Snook <csnook@redhat.com> wrote:
>>
>>> cpu_relax() contains a barrier, so it should do the right thing.  For 
>>> non-smp
>>> architectures, I'm concerned about interacting with interrupt 
>>> handlers.  Some
>>> drivers do use atomic_* operations.
>>
>>
>> I'm not sure that actually answers my question.  Why not smp_rmb()?
>>
>> David
> 
> 
> I would assume because we want to waste time efficiently even on non-smp 
> architectures, rather than frying the CPU or draining the battery.  
> Certain looping execution patterns can cause the CPU to operate above 
> thermal design power.  I have fans on my workstation that only ever come 
> on when running LINPACK, and that's generally memory bandwidth-bound.  
> Just imagine what happens when you're executing the same few 
> non-serializing instructions in a tight loop without ever stalling on 
> memory fetches, or being scheduled out.
> 
> If there's another reason, I'd like to hear it too, because I'm just 
> guessing here.

Well if there is only one memory location involved, then smp_rmb() isn't
going to really do anything anyway, so it would be incorrect to use it.

Consider that smp_rmb basically will do anything from flushing the
pipeline to invalidating loads speculatively executed out of order. AFAIK
it will not control the visibility of stores coming from other CPUs (that
is up to the cache coherency).

-- 
SUSE Labs, Novell Inc.

  reply	other threads:[~2007-08-14  5:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-09 13:41 [PATCH 6/24] make atomic_read() behave consistently on frv Chris Snook
2007-08-09 16:54 ` Chris Snook
2007-08-10  9:23 ` David Howells
2007-08-10 19:54   ` Chris Snook
2007-08-11  0:54     ` Herbert Xu
2007-08-11  4:29       ` Paul E. McKenney
2007-08-13  5:15         ` Herbert Xu
2007-08-13  6:03           ` Paul E. McKenney
2007-08-14  5:34             ` Nick Piggin
2007-08-14  7:26               ` Herbert Xu
2007-08-14 17:01               ` Paul E. McKenney
2007-08-14 22:01                 ` Arnd Bergmann
2007-08-14 22:43                   ` Paul E. McKenney
2007-08-15 13:29                     ` Arnd Bergmann
2007-08-15 15:06                       ` Michael Buesch
2007-08-15 13:30                 ` Nick Piggin
2007-08-15 20:15                   ` Paul E. McKenney
2007-08-16  1:09                     ` Nick Piggin
2007-08-16  2:27                       ` Paul E. McKenney
2007-08-11  8:47   ` David Howells
2007-08-13  6:44     ` Chris Snook
2007-08-14  5:42       ` Nick Piggin [this message]
2007-08-15 18:51         ` Segher Boessenkool
2007-08-15 19:18           ` Paul E. McKenney
2007-08-15 19:46             ` Segher Boessenkool
2007-08-15 19:59               ` Paul E. McKenney
2007-08-15 20:13                 ` Segher Boessenkool
2007-08-15 20:38                   ` Paul E. McKenney
2007-08-15 21:15                     ` Segher Boessenkool
2007-08-16  1:20                       ` 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=46C140DD.3060509@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=cfriesen@nortel.com \
    --cc=csnook@redhat.com \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=horms@verge.net.au \
    --cc=jesper.juhl@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=rpjday@mindspring.com \
    --cc=schwidefsky@de.ibm.com \
    --cc=torvalds@linux-foundation.org \
    --cc=wensong@linux-vs.org \
    --cc=wjiang@resilience.com \
    --cc=zlynx@acm.org \
    /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;
as well as URLs for NNTP newsgroup(s).