return 0;
}
-/*
- Enables all controllers that we need.
-*/
-static int pakfire_cgroup_enable_controllers(struct pakfire_cgroup* cgroup) {
- static const int controllers[] = {
- PAKFIRE_CGROUP_CONTROLLER_CPU,
- PAKFIRE_CGROUP_CONTROLLER_MEMORY,
- PAKFIRE_CGROUP_CONTROLLER_PIDS,
- PAKFIRE_CGROUP_CONTROLLER_IO,
- 0,
- };
- int r;
-
- // Enable all controllers
- for (int* controller = controllers; *controller; controller++) {
- r = pakfire_cgroup_enable_controller(cgroup, *controller);
- if (r < 0)
- return r;
- }
-
- return 0;
-}
-
/*
Entry function to open a new cgroup.
if (r < 0)
goto ERROR;
- // Enable all controllers
- r = pakfire_cgroup_enable_controllers(c);
- if (r < 0)
- goto ERROR;
-
#if 0
// Setup the devices filter
r = pakfire_cgroup_setup_devices(c);
return cgroup->fd;
}
+// Accounting
+
+int pakfire_cgroup_enable_accounting(struct pakfire_cgroup* cgroup) {
+ int r;
+
+ // CPU
+ r = pakfire_cgroup_enable_controller(cgroup, PAKFIRE_CGROUP_CONTROLLER_CPU);
+ if (r < 0)
+ return r;
+
+ // Memory
+ r = pakfire_cgroup_enable_controller(cgroup, PAKFIRE_CGROUP_CONTROLLER_MEMORY);
+ if (r < 0)
+ return r;
+
+ // IO
+ r = pakfire_cgroup_enable_controller(cgroup, PAKFIRE_CGROUP_CONTROLLER_IO);
+ if (r < 0)
+ return r;
+
+ return 0;
+}
+
// Memory
int pakfire_cgroup_set_guaranteed_memory(struct pakfire_cgroup* cgroup, size_t mem) {
int pakfire_cgroup_fd(struct pakfire_cgroup* cgroup);
+// Accounting
+int pakfire_cgroup_enable_accounting(struct pakfire_cgroup* cgroup);
+
// Memory
int pakfire_cgroup_set_guaranteed_memory(struct pakfire_cgroup* cgroup, size_t mem);
int pakfire_cgroup_set_memory_limit(struct pakfire_cgroup* cgroup, size_t mem);