From: Andi Kleen <ak@suse.de>
To: David Howells <dhowells@redhat.com>
Cc: torvalds@osdl.org, akpm@osdl.org, mingo@redhat.com,
linux-arch@vger.kernel.org, linuxppc64-dev@ozlabs.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Document Linux's memory barriers
Date: Tue, 7 Mar 2006 11:34:52 +0100 [thread overview]
Message-ID: <200603071134.52962.ak@suse.de> (raw)
In-Reply-To: <31492.1141753245@warthog.cambridge.redhat.com>
On Tuesday 07 March 2006 18:40, David Howells wrote:
> +Older and less complex CPUs will perform memory accesses in exactly the order
> +specified, so if one is given the following piece of code:
> +
> + a = *A;
> + *B = b;
> + c = *C;
> + d = *D;
> + *E = e;
> +
> +It can be guaranteed that it will complete the memory access for each
> +instruction before moving on to the next line, leading to a definite sequence
> +of operations on the bus:
Actually gcc is free to reorder it
(often it will not when it cannot prove that they don't alias, but sometimes
it can)
> +
> + Consider, for example, an ethernet chipset such as the AMD PCnet32. It
> + presents to the CPU an "address register" and a bunch of "data registers".
> + The way it's accessed is to write the index of the internal register you
> + want to access to the address register, and then read or write the
> + appropriate data register to access the chip's internal register:
> +
> + *ADR = ctl_reg_3;
> + reg = *DATA;
You're not supposed to do it this way anyways. The official way to access
MMIO space is using read/write[bwlq]
Haven't read all of it sorry, but thanks for the work of documenting
it.
-Andi
next prev parent reply other threads:[~2006-03-07 18:02 UTC|newest]
Thread overview: 107+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-07 17:40 [PATCH] Document Linux's memory barriers David Howells
2006-03-07 10:34 ` Andi Kleen [this message]
2006-03-07 18:30 ` David Howells
2006-03-07 11:13 ` Andi Kleen
2006-03-07 19:24 ` David Howells
2006-03-07 19:46 ` Stephen Hemminger
2006-03-07 18:46 ` Jesse Barnes
2006-03-07 19:23 ` Bryan O'Sullivan
2006-03-07 11:57 ` Andi Kleen
2006-03-07 20:01 ` Jesse Barnes
2006-03-07 21:14 ` Bryan O'Sullivan
2006-03-07 21:24 ` Andi Kleen
2006-03-08 0:36 ` Alan Cox
2006-03-08 0:35 ` Alan Cox
2006-03-07 17:47 ` Stephen Hemminger
2006-03-07 18:40 ` Alan Cox
2006-03-07 18:54 ` linux-os (Dick Johnson)
2006-03-07 18:54 ` linux-os (Dick Johnson)
2006-03-07 19:06 ` Matthew Wilcox
2006-03-07 19:15 ` linux-os (Dick Johnson)
2006-03-07 19:15 ` linux-os (Dick Johnson)
2006-03-09 11:26 ` Sergei Organov
2006-03-07 19:33 ` Alan Cox
2006-03-07 20:09 ` David Howells
2006-03-08 0:32 ` Alan Cox
2006-03-08 8:25 ` Duncan Sands
2006-03-08 22:06 ` Paul Mackerras
2006-03-08 22:24 ` David S. Miller
2006-03-08 22:31 ` Linus Torvalds
2006-03-08 22:42 ` Alan Cox
2006-03-08 2:07 ` Nick Piggin
2006-03-08 3:10 ` Paul Mackerras
2006-03-08 3:30 ` Linus Torvalds
2006-03-08 12:34 ` David Howells
2006-03-08 16:40 ` Bryan O'Sullivan
2006-03-08 7:41 ` Nick Piggin
2006-03-08 13:19 ` David Howells
2006-03-08 21:49 ` Paul Mackerras
2006-03-08 22:05 ` Alan Cox
2006-03-10 0:49 ` H. Peter Anvin
2006-03-08 14:37 ` [PATCH] Document Linux's memory barriers [try #2] David Howells
2006-03-08 14:55 ` Alan Cox
2006-03-08 15:41 ` Matthew Wilcox
2006-03-08 17:19 ` David Howells
2006-03-08 22:10 ` Paul Mackerras
2006-03-08 23:08 ` Ivan Kokshaysky
2006-03-09 1:01 ` Paul Mackerras
2006-03-09 16:02 ` Ivan Kokshaysky
2006-03-08 17:04 ` David Howells
2006-03-08 17:36 ` Alan Cox
2006-03-08 18:35 ` David Howells
2006-03-08 18:45 ` Alan Cox
2006-03-08 18:59 ` David Howells
2006-03-08 11:38 ` Andi Kleen
2006-03-08 19:08 ` David Howells
2006-03-08 19:26 ` Linus Torvalds
2006-03-08 19:31 ` David Howells
2006-03-09 0:35 ` Paul Mackerras
2006-03-09 0:54 ` Linus Torvalds
2006-03-09 1:08 ` Paul Mackerras
2006-03-09 1:27 ` Linus Torvalds
2006-03-09 2:38 ` Nick Piggin
2006-03-09 3:45 ` Paul Mackerras
2006-03-09 4:36 ` Jesse Barnes
2006-03-09 7:41 ` Paul Mackerras
2006-03-09 5:38 ` Linus Torvalds
2006-03-09 12:27 ` David Howells
2006-03-09 11:44 ` Michael Buesch
2006-03-09 4:34 ` Jesse Barnes
2006-03-09 4:43 ` Paul Mackerras
2006-03-09 10:05 ` Jes Sorensen
2006-03-09 0:55 ` Jesse Barnes
2006-03-09 1:57 ` Paul Mackerras
2006-03-09 4:26 ` Jesse Barnes
2006-03-08 19:40 ` Matthew Wilcox
2006-03-09 0:37 ` Paul Mackerras
2006-03-09 0:59 ` Jesse Barnes
2006-03-09 1:36 ` Paul Mackerras
2006-03-09 4:18 ` Jesse Barnes
2006-03-08 19:54 ` Jesse Barnes
2006-03-08 20:02 ` Alan Cox
2006-03-08 22:01 ` Paul Mackerras
2006-03-08 22:23 ` David S. Miller
2006-03-08 19:37 ` [PATCH] Document Linux's memory barriers [try #3] David Howells
2006-03-09 14:01 ` David Howells
2006-03-09 12:02 ` [PATCH] Document Linux's memory barriers [try #2] Sergei Organov
2006-03-08 16:18 ` [PATCH] Document Linux's memory barriers Pavel Machek
2006-03-08 20:16 ` David Howells
2006-03-08 22:01 ` Alan Cox
2006-03-09 11:41 ` David Howells
2006-03-09 12:28 ` Alan Cox
2006-03-09 13:02 ` David Howells
2006-03-09 16:32 ` Linus Torvalds
2006-03-09 17:39 ` David Howells
2006-03-09 17:54 ` Linus Torvalds
2006-03-09 17:56 ` Linus Torvalds
2006-03-08 16:26 ` Christoph Lameter
2006-03-08 17:35 ` David Howells
2006-03-08 17:46 ` Christoph Lameter
2006-03-08 17:59 ` Alan Cox
-- strict thread matches above, loose matches on Subject: below --
2006-03-07 23:17 Chuck Ebbert
2006-03-08 0:15 ` David S. Miller
2006-03-08 0:24 ` Roberto Nibali
[not found] <5NONi-2hp-3@gated-at.bofh.it>
[not found] ` <5NOtZ-1FO-27@gated-at.bofh.it>
[not found] ` <5NPgs-2Rw-37@gated-at.bofh.it>
[not found] ` <5NPq4-34a-23@gated-at.bofh.it>
2006-03-08 0:22 ` Robert Hancock
[not found] ` <5NQ2U-462-29@gated-at.bofh.it>
[not found] ` <5NRLg-6LJ-31@gated-at.bofh.it>
[not found] ` <5NRUR-6Yo-11@gated-at.bofh.it>
[not found] ` <5NUSF-30Z-5@gated-at.bofh.it>
2006-03-08 1:10 ` Robert Hancock
2006-03-08 11:35 ` Alan Cox
2006-03-08 14:55 ` Andi Kleen
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=200603071134.52962.ak@suse.de \
--to=ak@suse.de \
--cc=akpm@osdl.org \
--cc=dhowells@redhat.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc64-dev@ozlabs.org \
--cc=mingo@redhat.com \
--cc=torvalds@osdl.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.