int devicesfd;
};
-static const char* pakfire_cgroup_name(struct pakfire_cgroup* cgroup) {
- if (!cgroup->parent)
- return "(root)";
-
- return cgroup->name;
-}
-
static const char* pakfire_cgroup_path(struct pakfire_cgroup* cgroup) {
if (!*cgroup->path)
return "(root)";
// Open the file
int fd = openat(cgroup->fd, path, O_CLOEXEC);
if (fd < 0) {
- DEBUG(cgroup->ctx, "Could not open %s/%s: %m\n",
- pakfire_cgroup_name(cgroup), path);
+ DEBUG(cgroup->ctx, "Could not open %s/%s: %m\n", pakfire_cgroup_path(cgroup), path);
goto ERROR;
}
// Read file content into buffer
bytes_read = read(fd, buffer, length);
if (bytes_read < 0) {
- DEBUG(cgroup->ctx, "Could not read from %s/%s: %m\n",
- pakfire_cgroup_name(cgroup), path);
+ DEBUG(cgroup->ctx, "Could not read from %s/%s: %m\n", pakfire_cgroup_path(cgroup), path);
goto ERROR;
}
Immediately kills all processes in this cgroup
*/
static int pakfire_cgroup_killall(struct pakfire_cgroup* cgroup) {
- DEBUG(cgroup->ctx, "%s: Killing all processes\n", pakfire_cgroup_name(cgroup));
+ DEBUG(cgroup->ctx, "Killing all processes in %s\n",
+ pakfire_cgroup_path(cgroup));
return pakfire_cgroup_write(cgroup, "cgroup.kill", "1");
}
if (!cgroup->parent)
return -EPERM;
- DEBUG(cgroup->ctx, "Destroying cgroup %s\n", pakfire_cgroup_name(cgroup));
+ DEBUG(cgroup->ctx, "Destroying cgroup %s\n", pakfire_cgroup_path(cgroup));
// Kill everything in this group
r = pakfire_cgroup_killall(cgroup);
return r;
DEBUG(cgroup->ctx, "%s: Setting guaranteed memory to %zu byte(s)\n",
- pakfire_cgroup_name(cgroup), mem);
+ pakfire_cgroup_path(cgroup), mem);
// Set value
r = pakfire_cgroup_write(cgroup, "memory.min", "%zu\n", mem);
if (r < 0)
ERROR(cgroup->ctx, "%s: Could not set guaranteed memory: %m\n",
- pakfire_cgroup_name(cgroup));
+ pakfire_cgroup_path(cgroup));
return r;
}
return r;
DEBUG(cgroup->ctx, "%s: Setting memory limit to %zu byte(s)\n",
- pakfire_cgroup_name(cgroup), mem);
+ pakfire_cgroup_path(cgroup), mem);
// Set value
r = pakfire_cgroup_write(cgroup, "memory.max", "%zu\n", mem);
if (r < 0)
ERROR(cgroup->ctx, "%s: Could not set memory limit: %m\n",
- pakfire_cgroup_name(cgroup));
+ pakfire_cgroup_path(cgroup));
return r;
}
return r;
DEBUG(cgroup->ctx, "%s: Setting PID limit to %zu\n",
- pakfire_cgroup_name(cgroup), limit);
+ pakfire_cgroup_path(cgroup), limit);
// Set value
r = pakfire_cgroup_write(cgroup, "pids.max", "%zu\n", limit);
if (r < 0)
ERROR(cgroup->ctx, "%s: Could not set PID limit: %m\n",
- pakfire_cgroup_name(cgroup));
+ pakfire_cgroup_path(cgroup));
return r;
}
// Ignore the rest
default:
DEBUG(cgroup->ctx, "%s: Unknown value in cgroup stats (%d): %s\n",
- pakfire_cgroup_name(cgroup), i, elem);
+ pakfire_cgroup_path(cgroup), i, elem);
break;
}
char* p = NULL;
int r;
- DEBUG(cgroup->ctx, "%s: Reading stats from %s\n", pakfire_cgroup_name(cgroup), path);
+ DEBUG(cgroup->ctx, "%s: Reading stats from %s\n", pakfire_cgroup_path(cgroup), path);
// Open the file
r = pakfire_cgroup_read(cgroup, path, buffer, sizeof(buffer));
ERROR:
if (r)
ERROR(cgroup->ctx, "%s: Could not read cgroup stats: %m\n",
- pakfire_cgroup_name(cgroup));
+ pakfire_cgroup_path(cgroup));
return r;
}
return -EINVAL;
DEBUG(cgroup->ctx, "%s: Total CPU time usage: %lu\n",
- pakfire_cgroup_name(cgroup), stats->cpu.usage_usec);
+ pakfire_cgroup_path(cgroup), stats->cpu.usage_usec);
return 0;
}