[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <2d0e5a19da57d8c22e81a958ae984884@kernel.crashing.org>
Date: Thu, 9 Aug 2007 21:19:20 +0200
From: Segher Boessenkool <segher@...nel.crashing.org>
To: Chris Snook <csnook@...hat.com>
Cc: wjiang@...ilience.com, schwidefsky@...ibm.com,
wensong@...ux-vs.org, heiko.carstens@...ibm.com,
linux-kernel@...r.kernel.org, ak@...e.de, cfriesen@...tel.com,
netdev@...r.kernel.org, paulmck@...ux.vnet.ibm.com,
horms@...ge.net.au, akpm@...ux-foundation.org,
linux-arch@...r.kernel.org, jesper.juhl@...il.com,
davem@...emloft.net, torvalds@...ux-foundation.org, zlynx@....org,
rpjday@...dspring.com
Subject: Re: [PATCH 1/24] make atomic_read() behave consistently on alpha
>>>> The only safe way to get atomic accesses is to write
>>>> assembler code. Are there any downsides to that? I don't
>>>> see any.
>>>
>>> The assumption that aligned word reads and writes are atomic, and
>>> that words are aligned unless explicitly packed otherwise, is
>>> endemic in the kernel. No sane compiler violates this assumption.
>>> It's true that we're not portable to insane compilers after this
>>> patch, but we never were in the first place.
>> You didn't answer my question: are there any downsides to using
>> explicit coded-in-assembler accesses for atomic accesses? You
>> can handwave all you want that it should "just work" with
>> volatile accesses, but volatility != atomicity, volatile in C
>> is really badly defined, GCC never officially gave stronger
>> guarantees, and we have a bugzilla full of PRs to show what a
>> minefield it is.
>> So, why not use the well-defined alternative?
>
> Because we don't need to,
You don't need to use volatile objects, or accesses through
valatile-cast pointers, either.
> and it hurts performance.
Please show how it does this -- one load is one load either way,
and one store is one store.
Segher
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists