From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Christoph Lameter <clameter@sgi.com>
Cc: Zoltan Menyhart <Zoltan.Menyhart@bull.net>,
"Boehm, Hans" <hans.boehm@hp.com>,
"Grundler, Grant G" <grant.grundler@hp.com>,
"Chen, Kenneth W" <kenneth.w.chen@intel.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 14:12:01 +1000 [thread overview]
Message-ID: <442CAC11.4070803@yahoo.com.au> (raw)
In-Reply-To: <Pine.LNX.4.64.0603301921550.3145@schroedinger.engr.sgi.com>
Christoph Lameter wrote:
> On Fri, 31 Mar 2006, Nick Piggin wrote:
>
>
>>This has acquire and release, instead of the generic kernel
>>memory barriers rmb and wmb. As such, I don't think it would
>>get merged.
>
>
> Right. From the earlier conversation I had the impression that this is
> what you wanted.
>
Perhaps it is the best way to go, but you need to fix ia64's
current problems first. Again -- you don't plan to audit and
convert _all_ current users in one go do you?
>
>>>Note that the current semantics for bitops IA64 are broken. Both
>>>smp_mb__after/before_clear_bit are now set to full memory barriers
>>>to compensate which may affect performance.
>>
>>I think you should fight the fights you can win and get a 90%
>>solution ;) at any rate you do need to fix the existing routines
>>unless you plan to audit all callers...
>>
>>First, fix up ia64 in 2.6-head, this means fixing test_and_set_bit
>>and friends, smp_mb__*_clear_bit, and all the atomic operations that
>>both modify and return a value.
>>
>>Then add test_and_set_bit_lock / clear_bit_unlock, and apply them
>>to a couple of critical places like page lock and buffer lock.
>>
>>Is this being planned?
>
>
> That sounds like a long and tedious route to draw out the pain for a
> couple of years and add loads of additional macro definitions all over the
> header files. I'd really like a solution that allows a gradual
> simplification of the macros and that has clear semantics.
>
Why? Yours is the long drawn out plan.
You acknowledge that you have to fix ia64 to match current semantics
first, right?
Now people seem to be worried about the performance impact that will
have, so I simply suggest that adding two or three new macros for the
important cases to give you a 90% solution.
You would then be free to discuss and design a 95% solution ;)
> So far it seems that I have not even been able to find the definitions for
> the proper behavior of memory barriers.
I think Documentation/atomic_ops.txt isn't bad. smp_mb__* really
is a smp_mb, which can be optimised sometimes.
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
next prev parent reply other threads:[~2006-03-31 7:54 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:53 ` Chen, Kenneth W
2006-03-31 0:55 ` Christoph Lameter
2006-03-31 1:04 ` Chen, Kenneth W
2006-03-31 1:13 ` Christoph Lameter
2006-03-31 1:29 ` Chen, Kenneth W
2006-03-31 1:37 ` 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 6:15 ` Chen, Kenneth W
2006-03-31 7:34 ` Nick Piggin
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
2006-03-31 3:01 ` Christoph Lameter
2006-03-31 3:10 ` Chen, Kenneth W
2006-03-31 3:12 ` Christoph Lameter
2006-03-31 3:14 ` Chen, Kenneth W
2006-03-31 3:20 ` Christoph Lameter
2006-03-31 3:37 ` Chen, Kenneth W
2006-03-31 3:17 ` Chen, Kenneth W
2006-03-31 3:23 ` Chen, Kenneth W
2006-03-31 0:45 ` Christoph Lameter
2006-03-31 0:50 ` Chen, Kenneth W
2006-03-31 0:51 ` Christoph Lameter
2006-03-31 0:59 ` Chen, Kenneth W
2006-03-31 1:09 ` Christoph Lameter
2006-03-31 1:13 ` Chen, Kenneth W
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 [this message]
2006-03-31 17:43 ` Christoph Lameter
2006-04-01 2:56 ` 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
-- strict thread matches above, loose matches on Subject: below --
2006-03-31 0:56 Luck, Tony
2006-03-31 0:58 ` Christoph Lameter
2006-04-02 7:59 ` Russell King
2006-03-31 1:33 linux
2006-03-31 1:40 ` Christoph Lameter
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:11 ` Chen, Kenneth W
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=442CAC11.4070803@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=Zoltan.Menyhart@bull.net \
--cc=akpm@osdl.org \
--cc=clameter@sgi.com \
--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 \
/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