Messages in this thread | | | Subject | Re: [PATCH] sched/completion: completion_done() should serialize with complete() | From | Davidlohr Bueso <> | Date | Fri, 13 Feb 2015 14:02:52 -0800 |
| |
On Fri, 2015-02-13 at 13:56 -0800, Davidlohr Bueso wrote: > On Thu, 2015-02-12 at 20:59 +0100, Oleg Nesterov wrote: > > Commit de30ec47302c "Remove unnecessary ->wait.lock serialization when > > reading completion state" was not correct, without lock/unlock the code > > like stop_machine_from_inactive_cpu() > > > > while (!completion_done()) > > cpu_relax(); > > > > can return before complete() finishes its spin_unlock() which writes to > > this memory. And spin_unlock_wait(). > > How about reverting the patch altogether? > > This was never a problem nor have I ever seen a performance issues in > completions that would merit these lockless checks. The commit changelog > has *zero* information, so I don't know if this was ever a real issue. >
hmm I guess you're patch is more optimal tho, because we don't update the lock, less cacheline bouncing issues etc.
| |