All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] cgroup_subsys_state lifecycle fixups
@ 2022-05-25 15:15 ` Michal Koutný
  0 siblings, 0 replies; 40+ messages in thread
From: Michal Koutný @ 2022-05-25 15:15 UTC (permalink / raw)
  To: cgroups, linux-kernel
  Cc: Tejun Heo, Zefan Li, Johannes Weiner, Bui Quang Minh, Tadeusz Struk

Two corner cases were hanging around [2][3] related to css lifecycles,
since they're loosely related I'm sending them together.

The 2nd patch fixes problems encountered in syzbot tests only.
Alternative solutions could be:
- daisy-chain css_release_work_fn from the offending css_killed_work_fn call,
- rework kill_css() not to rely on multi-stage css_killed_work_fn() [1].

The simplest approach was chosen.

The other existing users of percpu_ref_kill_and_confirm are not affected by
similar issues.

[1] Rough idea is to only synchronize via a completion like e.g.
nvmet_sq_destroy() does and move most of css_killed_work_fn() at the end of
kill_css(). kill_css() is only used in process context when de-configuring
controllers or rmdiring a cgroup.

[2] https://lore.kernel.org/lkml/20220404142535.145975-1-minhquangbui99@gmail.com/
[3] https://lore.kernel.org/lkml/20220412192459.227740-1-tadeusz.struk@linaro.org/

Michal Koutný (2):
  cgroup: Wait for cgroup_subsys_state offlining on unmount
  cgroup: Use separate work structs on css release path

 include/linux/cgroup-defs.h |  5 +++--
 kernel/cgroup/cgroup.c      | 19 +++++++++++--------
 2 files changed, 14 insertions(+), 10 deletions(-)

-- 
2.35.3


^ permalink raw reply	[flat|nested] 40+ messages in thread

end of thread, other threads:[~2022-06-02 14:28 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-25 15:15 [PATCH 0/2] cgroup_subsys_state lifecycle fixups Michal Koutný
2022-05-25 15:15 ` Michal Koutný
2022-05-25 15:15 ` [PATCH 1/2] cgroup: Wait for cgroup_subsys_state offlining on unmount Michal Koutný
2022-05-25 15:15   ` Michal Koutný
2022-05-25 15:15 ` [PATCH 2/2] cgroup: Use separate work structs on css release path Michal Koutný
2022-05-25 15:15   ` Michal Koutný
2022-05-25 16:14   ` Michal Koutný
2022-05-25 16:14     ` Michal Koutný
2022-05-26  9:56     ` Michal Koutný
2022-05-26  9:56       ` Michal Koutný
2022-05-26 18:15       ` Tejun Heo
2022-05-26 18:15         ` Tejun Heo
2022-05-27 16:39         ` Tadeusz Struk
2022-05-27 16:39           ` Tadeusz Struk
2022-05-27 16:54           ` Michal Koutný
2022-05-27 16:54             ` Michal Koutný
2022-05-27 17:23             ` Tejun Heo
2022-05-27 17:23               ` Tejun Heo
2022-06-01 23:13         ` Tadeusz Struk
2022-06-01 23:13           ` Tadeusz Struk
2022-06-01 23:20           ` Tejun Heo
2022-06-01 23:20             ` Tejun Heo
2022-06-01 23:37             ` Tadeusz Struk
2022-06-01 23:37               ` Tadeusz Struk
2022-06-01 23:43               ` Tejun Heo
2022-06-01 23:43                 ` Tejun Heo
2022-06-02  0:00                 ` Tadeusz Struk
2022-06-02  0:00                   ` Tadeusz Struk
2022-06-02  0:07                   ` Tejun Heo
2022-06-02  0:07                     ` Tejun Heo
2022-06-02  0:26                     ` Tadeusz Struk
2022-06-02  0:26                       ` Tadeusz Struk
2022-06-02  0:29                       ` Tejun Heo
2022-06-02  0:29                         ` Tejun Heo
2022-06-02  0:40                         ` Tadeusz Struk
2022-06-02  0:40                           ` Tadeusz Struk
2022-06-02 11:47                           ` Michal Koutný
2022-06-02 11:47                             ` Michal Koutný
2022-06-02 14:28                             ` Tadeusz Struk
2022-06-02 14:28                               ` Tadeusz Struk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.