From: Linus Torvalds <torvalds@linux-foundation.org>
To: Nick Piggin <npiggin@suse.de>
Cc: Hugh Dickins <hugh@veritas.com>,
linux-arch@vger.kernel.org,
Linux Memory Management List <linux-mm@kvack.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [rfc] data race in page table setup/walking?
Date: Wed, 30 Apr 2008 08:53:44 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.10.0804300848390.2997@woody.linux-foundation.org> (raw)
In-Reply-To: <20080430060340.GE27652@wotan.suse.de>
On Wed, 30 Apr 2008, Nick Piggin wrote:
>
> Actually, aside, all those smp_wmb() things in pgtable-3level.h can
> probably go away if we cared: because we could be sneaky and leverage
> the assumption that top and bottom will always be in the same cacheline
> and thus should be shielded from memory consistency problems :)
Umm.
Why would we care, since smp_wmb() is a no-op? (Yea, it's a compiler
barrier, big deal, it's not going to cost us anything).
Also, write barriers are not about cacheline access order, they tend to be
more about the write *buffer*, ie before the write even hits the cache
line. And a write coudl easily pass another write in the write buffer if
there is (for example) a dependency on the address.
So even if they are in the same cacheline, if the first write needs an
offset addition, and the second one does not, it could easily be that the
second one hits the write buffer first (together with some alias
detection that re-does the things if they alias).
Of course, on x86, the write ordering is strictly defined, and even if the
CPU reorders writes they are guaranteed to never show up re-ordered, so
this is not an issue. But I wanted to point out that memory ordering is
*not* just about cachelines, and being in the same cacheline is no
guarantee of anything, even if it can have *some* effects.
Linus
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-04-30 15:53 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-04-29 5:00 Nick Piggin
2008-04-29 5:08 ` Benjamin Herrenschmidt
2008-04-29 5:41 ` Nick Piggin
2008-04-29 10:56 ` David Miller, Nick Piggin
2008-04-29 12:36 ` Hugh Dickins
2008-04-29 21:37 ` Benjamin Herrenschmidt
2008-04-29 22:47 ` Hugh Dickins
2008-04-30 0:09 ` Benjamin Herrenschmidt
2008-04-30 6:03 ` Nick Piggin
2008-04-30 6:05 ` David Miller, Nick Piggin
2008-04-30 6:17 ` Nick Piggin
2008-04-30 11:14 ` Hugh Dickins
2008-05-01 0:35 ` Nick Piggin
2008-05-01 12:45 ` Hugh Dickins
2008-04-30 15:53 ` Linus Torvalds [this message]
2008-05-01 0:29 ` Nick Piggin
2008-05-01 3:24 ` Linus Torvalds
2008-05-02 1:20 ` Nick Piggin
2008-05-02 1:33 ` Linus Torvalds
2008-05-02 1:43 ` 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=alpine.LFD.1.10.0804300848390.2997@woody.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=hugh@veritas.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
/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