Messages in this thread | | | Date | Wed, 9 Sep 2015 15:16:42 +0200 | From | Oleg Nesterov <> | Subject | Re: [PATCH 3/3] Revert "task_work: remove fifo ordering guarantee" |
| |
sorry for delay,
On 09/08, Linus Torvalds wrote: > > On Tue, Sep 8, 2015 at 10:14 AM, Oleg Nesterov <oleg@redhat.com> wrote: > > > > Now that fput() can't abuse ->task_works list, we can restore the FIFO > > ordering. Yes, currently there are no in-kernel users which need this, > > but I think task_work_add() will have more users and FIFO makes more > > sense if (unlike fput/mntput) the callbacks change the task's state. > > So quite frankly, regardless of the other patches, I'd almost rather > see the workqueue not being ordered. I don't think anybody pointed at > any code that could possibly care. And if nobody cares, why add the > code and the CPU cycles to do this?
Currently nobody cares, yes. IIRC, even the out-of-tree code I know about, although I didn't recheck.
Again, rightly or not I believe that FIFO makes task_work_add() more useful. Perhaps I am wrong, so far I can only provide the artificial examples...
To me this does not differ from, say, stop_one_cpu_nowait(). I would be surprised if it wasn't FIFO.
At least this should be cheap after 1/3. And in any case the time we spend in the "reverse" loop is nothing compared to the next one which actually runs the callbacks.
Thanks. Lets see what Al thinks...
Oleg.
| |