Re: [patch 04/15] Generic Mutex Subsystem, add-atomic-call-func-x86_64.patch

From: Nick Piggin
Date: Tue Dec 20 2005 - 10:05:06 EST


Nicolas Pitre wrote:
On Wed, 21 Dec 2005, Nick Piggin wrote:


Nicolas Pitre wrote:

On Tue, 20 Dec 2005, Nick Piggin wrote:

Considering that on UP, the arm should not need to disable interrupts
for this function (or has someone refuted Linus?), how about:


Kernel preemption.


preempt_disable() ?


Sure, and we're now more costly than the current implementation with irq disabling.


Why? It is just a plain increment of a location that will almost certainly
be in cache. I can't see how it would be more than half the cost of the
irq implementation (based on looking at your measurements). How do you
figure?

Also, preempt_disable is a very frequent operation on preempt kernels so
if you have CONFIG_PREEMPT then you don't care about preempt_disable in
down() (and if you do then you are calling down too often).

If we go with simple mutexes that's because there is a gain, even a huge one on ARM, especially for the fast uncontended case. If you guys insist on making things so generic and rigid then there is no gain anymore worth the bother.


I guess there is no bother for you, but maintaining code for 1 generic
platform versus two dozen architectures is a huge win for many.

--
SUSE Labs, Novell Inc.

Send instant messages to your online friends http://au.messenger.yahoo.com -
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/