Messages in this thread | | | Subject | Re: [PATCH 0/4] Was: deferring __fput() | From | Mimi Zohar <> | Date | Fri, 29 Jun 2012 01:30:38 -0400 |
| |
On Thu, 2012-06-28 at 05:38 +0100, Al Viro wrote: > On Wed, Jun 27, 2012 at 08:37:21PM +0200, Oleg Nesterov wrote: > > 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. > > Umm... FWIW, my variant circa yesterday is in vfs.git#untested; it seems to survive > on uml/amd64 at least. I'll look through your patches and see what can be nicked. > The list removal logics in mine looks really ugly ;-/
Still failing to boot. Fails to boot starting with commit "b24dfa6 switch fput to task_work_add".
Mimi
| |