Re: [PATCH 2/5] atomic: introduce atomic_inc_not_zero

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Roman Zippel wrote:
Hi,

On Thu, 15 Sep 2005, Nick Piggin wrote:


Also needs work on those same architectures. Other architectures
might want to look at providing a more optimal implementation.


IMO a rather pointless primitive, unless there is a cpu architecture which has a inc_not_zero instruction, otherwise it will always be the same as using cmpxchg.


It will always be *implemented* with cmpxchg you mean, which is a
bit different. But even then, no, you definitely don't need an
inc_not_zero instruction to make this primitive faster than the
cmpxchg version. Just look at all the !SMP architectures that just
turn off interrupts while doing the op. Look at the architectures
that use hashed spinlocks.

Or here is possible pseudo code for an architecture with ll/sc
instructions:

  do {
    tmp = load_locked(v);
    if (!tmp)
      break;
    tmp++;
  } while (!store_cond(v, tmp));

  return tmp;

As opposed to using the cmpxchg version, which would have more
loads and conditional branches, AFAIKS.

--
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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux