Re: [PATCH 1/2] memcg: mm_update_next_owner: kill the "retry" logic
From: Michal Hocko
Date: Thu Jun 27 2024 - 03:56:58 EST
On Wed 26-06-24 17:29:24, Oleg Nesterov wrote:
> @@ -446,7 +463,6 @@ void mm_update_next_owner(struct mm_struct *mm)
> {
> struct task_struct *c, *g, *p = current;
>
> -retry:
> /*
> * If the exiting or execing task is not the owner, it's
> * someone else's problem.
> @@ -468,16 +484,16 @@ void mm_update_next_owner(struct mm_struct *mm)
> * Search in the children
> */
> list_for_each_entry(c, &p->children, sibling) {
> - if (c->mm == mm)
> - goto assign_new_owner;
> + if (c->mm == mm && try_to_set_owner(c, mm))
> + goto ret;
You need to unlock tasklist_lock, right? Same for other goto ret.
Other than that the cleanup makes sense and it makes the code much more
easier to follow. It should still die but it can do so in a better
shape.
--
Michal Hocko
SUSE Labs