Open yipengyin opened 7 months ago
I found no device subsystem in cgroup v2. How to limit devices in cgroup v2. Thank you!
impl Hierarchy for V2 { fn v2(&self) -> bool { true } fn subsystems(&self) -> Vec<Subsystem> { let p = format!("{}/{}", UNIFIED_MOUNTPOINT, "cgroup.controllers"); let ret = fs::read_to_string(p.as_str()); if ret.is_err() { return vec![]; } let mut subs = vec![]; let controllers = ret.unwrap().trim().to_string(); let mut controller_list: Vec<&str> = controllers.split(' ').collect(); // The freezer functionality is present in V2, but not as a controller, // but apparently as a core functionality. FreezerController supports // that, but we must explicitly fake the controller here. controller_list.push("freezer"); for s in controller_list { match s { "cpu" => { subs.push(Subsystem::Cpu(CpuController::new(self.root(), true))); } "io" => { subs.push(Subsystem::BlkIo(BlkIoController::new(self.root(), true))); } "cpuset" => { subs.push(Subsystem::CpuSet(CpuSetController::new(self.root(), true))); } "memory" => { subs.push(Subsystem::Mem(MemController::new(self.root(), true))); } "pids" => { subs.push(Subsystem::Pid(PidController::new(self.root(), true))); } "freezer" => { subs.push(Subsystem::Freezer(FreezerController::new( self.root(), true, ))); } "hugetlb" => { subs.push(Subsystem::HugeTlb(HugeTlbController::new( self.root(), true, ))); } _ => {} } } subs } }
I found no device subsystem in cgroup v2. How to limit devices in cgroup v2. Thank you!