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

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


The following commit(s) were added to refs/heads/master by this push:
     new c6957d6c6e8 [fix](cgroup) Fix cgroup compatibility with MacOS (#39398)
c6957d6c6e8 is described below

commit c6957d6c6e84ae47c3a40bbb71dc545df56521af
Author: Xinyi Zou <zouxiny...@gmail.com>
AuthorDate: Thu Aug 15 14:50:24 2024 +0800

    [fix](cgroup) Fix cgroup compatibility with MacOS (#39398)
    
    cgroupv2 is not visible to MacOS
---
 be/src/util/cgroup_util.cpp | 4 ++++
 be/src/util/cgroup_util.h   | 9 ++++++---
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/be/src/util/cgroup_util.cpp b/be/src/util/cgroup_util.cpp
index 8109e38559f..8f64fe699c6 100644
--- a/be/src/util/cgroup_util.cpp
+++ b/be/src/util/cgroup_util.cpp
@@ -193,6 +193,7 @@ std::string CGroupUtil::cgroupv2_of_process() {
 }
 
 std::optional<std::string> CGroupUtil::get_cgroupsv2_path(const std::string& 
subsystem) {
+#if defined(OS_LINUX)
     if (!CGroupUtil::cgroupsv2_enable()) {
         return {};
     }
@@ -209,6 +210,9 @@ std::optional<std::string> 
CGroupUtil::get_cgroupsv2_path(const std::string& sub
         current_cgroup = current_cgroup.parent_path();
     }
     return {};
+#else
+    return {};
+#endif
 }
 
 Status CGroupUtil::read_int_line_from_cgroup_file(const std::filesystem::path& 
file_path,
diff --git a/be/src/util/cgroup_util.h b/be/src/util/cgroup_util.h
index cf922ba5063..bc1417453f4 100644
--- a/be/src/util/cgroup_util.h
+++ b/be/src/util/cgroup_util.h
@@ -26,11 +26,9 @@
 #include "common/status.h"
 namespace doris {
 
-#if defined(OS_LINUX)
 // I think it is possible to mount the cgroups hierarchy somewhere else (e.g. 
when in containers).
 // /sys/fs/cgroup was still symlinked to the actual mount in the cases that I 
have seen.
 static inline const std::filesystem::path default_cgroups_mount = 
"/sys/fs/cgroup";
-#endif
 
 /* Cgroup debugging steps
  * CgroupV1:
@@ -52,7 +50,12 @@ class CGroupUtil {
 public:
     enum class CgroupsVersion : uint8_t { V1, V2 };
 
-    // detect if cgroup is enabled
+    // Detect if cgroup is enabled.
+    // If true, it only means that the OS allows the use of Cgroup v1 or v2,
+    // not that the current BE process is using Cgroup.
+    // To confirm whether the process is using Cgroup need to use 
`find_global_cgroupv1` or `cgroupv2_of_process`.
+    // To confirm whether the process is using a subsystem of Cgroup,
+    // need to use `find_abs_cgroupv1_path` or `get_cgroupsv2_path`.
     static bool cgroupsv1_enable();
     static bool cgroupsv2_enable();
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to