Was: deferring __fput()
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest4 patches 23 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/4 | task_work: use the single-linked list to shrink sizeof(task_work)include/ include/ include/ +2 more | +42 | 0 replies | |
| 2/4 | task_work: don't rely on PF_EXITINGinclude/ kernel/ | +10 | 0 replies | |
| 3/4 | task_work: deal with task_work callbacks adding more workkernel/ | +21 | 0 replies | |
| 4/4 | task_work: kill task_work->datainclude/ include/ kernel/ +2 more | +19 | 1 reply |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/4] Was: deferring __fput()
Quoted 7 lines · Oleg Nesterov
And if it always takes ->pi_lock we do not need the new
PF_or something else,exit_task_work()can settask->task_works=NO_MOREunder ->pi_lock (task_work_run()can checkPF_EXITING), andtask_work_add()ensures thattask_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.