Messages in this thread | | | Date | Tue, 23 Mar 2010 08:33:59 -0700 | From | "Paul E. McKenney" <> | Subject | Re: [PATCH] smp_call_function_many SMP race |
| |
On Tue, Mar 23, 2010 at 01:26:43PM +0100, Peter Zijlstra wrote: > On Tue, 2010-03-23 at 22:15 +1100, Anton Blanchard wrote: > > > > It turns out commit c0f68c2fab4898bcc4671a8fb941f428856b4ad5 (generic-ipi: > > cleanup for generic_smp_call_function_interrupt()) is at fault. It removes > > locking from smp_call_function_many and in doing so creates a rather > > complicated race. > > A rather simple question since my brain isn't quite ready processing the > content here.. > > Isn't reverting that one patch a simpler solution than adding all that > extra logic? If not, then the above statement seems false and we had a > bug even with that preempt_enable/disable() pair. > > Just wondering.. :-)
If I understand correctly, if you want to fix it by reverting patches, you have to revert back to simple locking (up to and including 54fdade1c3332391948ec43530c02c4794a38172). And I believe that the poor performance of simple locking was whole reason for the series of patches.
Thanx, Paul
| |