lkml.org 
[lkml]   [2005]   [Sep]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/5] atomic: introduce atomic_inc_not_zero
Hi,

On Fri, 16 Sep 2005, Andrew Morton wrote:

> Nope. On uniprocessor systems, atomic_foo() doesn't actually do the
> buslocked atomic thing.
>
> #ifdef CONFIG_SMP
> #define LOCK "lock ; "
> #else
> #define LOCK ""
> #endif
>
> On x86, at least. Other architectures can do the same thing if they have
> an atomic-wrt-IRQs add and sub.

That's true on x86, but if these functions have to be emulated using
spinlocks, they always have to disable interrupts, whether the caller
needs it or not. Also x86 has the lock attribute, which helps a lot, but
on other archs a cmpxchg instruction can be quite expensive, so it could
be cheaper by just using {disable,enable}_preempt.

bye, Roman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-09-17 12:08    [W:0.062 / U:1.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site