This is an automated email from the ASF dual-hosted git repository.

bmahler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git


The following commit(s) were added to refs/heads/master by this push:
     new 4fc0d8900 [cgroups2] Adds cgroups2::controllers::enabled().
4fc0d8900 is described below

commit 4fc0d890041573f130315eef3ef48795eef7e5cb
Author: Devin Leamy <[email protected]>
AuthorDate: Wed Mar 13 14:19:25 2024 -0400

    [cgroups2] Adds cgroups2::controllers::enabled().
    
    This provides access to cgroup.subtree_control which indicates
    which controllers are enabled on the cgroup.
    
    This closes #510
---
 src/linux/cgroups2.cpp | 15 +++++++++++++++
 src/linux/cgroups2.hpp |  4 ++++
 2 files changed, 19 insertions(+)

diff --git a/src/linux/cgroups2.cpp b/src/linux/cgroups2.cpp
index f37a9ba81..c63ff5824 100644
--- a/src/linux/cgroups2.cpp
+++ b/src/linux/cgroups2.cpp
@@ -278,6 +278,21 @@ Try<Nothing> enable(const string& cgroup, const 
vector<string>& controllers)
       stringify(control));
 }
 
+
+Try<set<string>> enabled(const string& cgroup)
+{
+  Try<string> contents =
+    cgroups2::read(cgroup, cgroups2::control::SUBTREE_CONTROLLERS);
+  if (contents.isError()) {
+    return Error("Failed to read 'cgroup.subtree_control' in '" + cgroup + "'"
+                 ": " + contents.error());
+  }
+
+  using State = control::subtree_control::State;
+  State control = State::parse(*contents);
+  return control.enabled();
+}
+
 } // namespace controllers {
 
 } // namespace cgroups2 {
diff --git a/src/linux/cgroups2.hpp b/src/linux/cgroups2.hpp
index 91b605149..c55cd1e12 100644
--- a/src/linux/cgroups2.hpp
+++ b/src/linux/cgroups2.hpp
@@ -63,6 +63,10 @@ Try<Nothing> enable(
     const std::string& cgroup,
     const std::vector<std::string>& controllers);
 
+
+// Get all the controllers that are enabled for a cgroup.
+Try<std::set<std::string>> enabled(const std::string& cgroup);
+
 } // namespace controllers {
 
 } // namespace cgroups2 {

Reply via email to