Messages in this thread | | | Date | Wed, 27 Jun 2012 20:37:21 +0200 | From | Oleg Nesterov <> | Subject | [PATCH 0/4] Was: deferring __fput() |
| |
On 06/25, Oleg Nesterov wrote: > > And if it always takes ->pi_lock we do not need the new PF_ or something > else, exit_task_work() can set task->task_works = NO_MORE under ->pi_lock > (task_work_run() can check PF_EXITING), and task_work_add() ensures that > task_works != NO_MORE. > > What do you think?
It is not clear to me if you agree or not. So I am simply sending the patches I have.
Feel free to ignore or re-do.
Seriously, why should we add 2 pointers into task_struct? Sure, this is minor, but still... But perhaps task_work.c should not play tricks with the circular list, task_work_run() can reverse the list as you initially suggested.
Also, I am not sure about "define rcu_head callback_head", this series doesn't do this. But again, up to you.
Oleg.
| |