Messages in this thread | | | Date | Thu, 21 Mar 2013 19:30:21 +0100 | From | Oleg Nesterov <> | Subject | Re: + atomic-improve-atomic_inc_unless_negative-atomic_dec_unless_positive .patch added to -mm tree |
| |
On 03/21, Eric Dumazet wrote: > > On Thu, 2013-03-21 at 18:08 +0100, Oleg Nesterov wrote: > > > OK... since nobody volunteered to make a patch, what do you think about > > the change below? > > > > It should "fix" atomic_add_unless() (only on x86) and optimize > > atomic_inc/dec_unless. > > > > With this change atomic_*_unless() can do the unnecessary mb() after > > cmpxchg() fails, but I think this case is very unlikely. > > > > And, in the likely case atomic_inc/dec_unless avoids the 1st cmpxchg() > > which in most cases just reads the memory for the next cmpxchg(). > > > > Oleg. > > Hmm, cmpxchg() has different effect on MESI transaction, than a plain > read.
But this doesn't matter?
We will do cmpxchg() anyway. Unless we can see that it will fail.
Or could you explain what I missed?
> maybe the 'hint' idea used in atomic_inc_not_zero_hint() could be used.
To me, it would be better to kill atomic_inc_not_zero_hint() or unify unify it with atomic_inc_not_zero(). But this is another story.
Oleg.
| |