[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1282600885.22370.453.camel@pasglop>
Date: Tue, 24 Aug 2010 08:01:25 +1000
From: Benjamin Herrenschmidt <benh@...nel.crashing.org>
To: Arnd Bergmann <arnd@...db.de>
Cc: linuxppc-dev@...ts.ozlabs.org, David Miller <davem@...emloft.net>,
torvalds@...ux-foundation.org, paulus@...ibm.com,
linux-kernel@...r.kernel.org, sparclinux@...r.kernel.org,
akpm@...ux-foundation.org
Subject: Re: 64-bit ppc rwsem
On Mon, 2010-08-23 at 15:44 +0200, Arnd Bergmann wrote:
>
> * Alpha has an optimization for the uniprocessor case, where the atomic
> instructions get turned into nonatomic additions. The spinlock based
> version uses no locks on UP but disables interrupts for reasons I don't
> understand (nothing running at interrupt time should try to access an rwsem).
> Should the generic version do the same as Alpha?
I've seen drivers in the past do trylocks at interrupt time ... tho I
agree it sucks.
> * Is there any architecture that would still benefit from having a separate
> rwsem implementation? AFAICT all the remaining ones are just variations of
> the same concept of using cmpxchg (or xadd in case of x86), which is what
> atomics typically end up doing anyway.
It depends how sensitive rwsems are.
The "generic" variant based on atomic's and cmpxchg on powerpc is
sub-optimal in the sense that it has stronger memory barriers that would
be necessary (atomic_inc_return for example has both acquire and
release).
But that vs. one more pile of inline asm, we decided it wasn't hot
enough a spot for us to care back then.
Cheers,
Ben.
--
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