[RFC PATCH 0/3] Rework locking when rendering mountinfo cgroup paths

Michal Koutný posted 3 patches 2 years, 9 months ago
fs/namespace.c         |  5 +++-
include/linux/mount.h  |  4 +++
kernel/cgroup/cgroup.c | 58 ++++++++----------------------------------
3 files changed, 18 insertions(+), 49 deletions(-)
[RFC PATCH 0/3] Rework locking when rendering mountinfo cgroup paths
Posted by Michal Koutný 2 years, 9 months ago
Idea for these modification came up when css_set_lock seemed unneeded in
cgroup_show_path.
It's a delicate change, so the deciding factor was when cgroup_show_path popped
up also in some profiles of frequent mountinfo readers.
The idea is to trade the exclusive css_set_lock for the shared
namespace_sem when rendering cgroup paths. Details are described more in
individual commits.

Michal Koutný (3):
  cgroup: Drop unused function for cgroup_path
  cgroup: Rely on namespace_sem in current_cgns_cgroup_from_root
    explicitly
  cgroup: Do not take css_set_lock in cgroup_show_path

 fs/namespace.c         |  5 +++-
 include/linux/mount.h  |  4 +++
 kernel/cgroup/cgroup.c | 58 ++++++++----------------------------------
 3 files changed, 18 insertions(+), 49 deletions(-)

-- 
2.40.1

Re: [RFC PATCH 0/3] Rework locking when rendering mountinfo cgroup paths
Posted by Christian Brauner 2 years, 8 months ago
On Tue, May 02, 2023 at 03:38:44PM +0200, Michal Koutný wrote:
> Idea for these modification came up when css_set_lock seemed unneeded in
> cgroup_show_path.
> It's a delicate change, so the deciding factor was when cgroup_show_path popped
> up also in some profiles of frequent mountinfo readers.
> The idea is to trade the exclusive css_set_lock for the shared
> namespace_sem when rendering cgroup paths. Details are described more in

I have no issue with the cgroup specific part of relying on
namespace_sem but kernel/cgroup/ has no business of being aware of
namespace semaphore in any way. Leave a comment to clarify what you're
doing but we're not going to sprinkle namespace_sem references - even if
only for the sake of lockdep - into other subsystems.