Skip to content

Commit

Permalink
cgroup: set the memory limit on the system scope
Browse files Browse the repository at this point in the history
when updating the memory limit, we now set it also on the systemd
scope.

Signed-off-by: Giuseppe Scrivano <[email protected]>
  • Loading branch information
giuseppe committed May 19, 2023
1 parent ab4b251 commit 4a24b6a
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion src/libcrun/cgroup-systemd.c
Original file line number Diff line number Diff line change
Expand Up @@ -606,6 +606,33 @@ open_sd_bus_connection (sd_bus **bus, libcrun_error_t *err)
return 0;
}

static inline int
get_memory_limit (runtime_spec_schema_config_linux_resources *resources, uint64_t *limit, libcrun_error_t *err)
{
if (resources->memory && resources->memory->limit_present)
{
*limit = resources->memory->limit;
return 1;
}

if (resources->unified)
{
size_t i;

for (i = 0; i < resources->unified->len; i++)
if (strcmp (resources->unified->keys[i], "memory.max") == 0)
{
errno = 0;
*limit = (uint64_t) strtoll (resources->unified->values[i], NULL, 10);
if (UNLIKELY (errno))
return crun_make_error (err, errno, "invalid value for `memory.max`: %s",
resources->unified->values[i]);
return 1;
}
}
return 0;
}

static inline int
get_weight (runtime_spec_schema_config_linux_resources *resources, uint64_t *weight, libcrun_error_t *err)
{
Expand Down Expand Up @@ -642,17 +669,28 @@ append_resources (sd_bus_message *m,
int cgroup_mode,
libcrun_error_t *err)
{
uint64_t memory_limit;
int sd_err;
int ret;

if (resources == NULL)
return 0;

ret = get_memory_limit (resources, &memory_limit, err);
if (UNLIKELY (ret < 0))
return ret;
if (ret)
{
sd_err = sd_bus_message_append (m, "(sv)", "MemoryLimit", "t", memory_limit);
if (UNLIKELY (sd_err < 0))
return crun_make_error (err, -sd_err, "sd-bus message append MemoryLimit");
}

switch (cgroup_mode)
{
case CGROUP_MODE_UNIFIED:
{
uint64_t weight;
int ret;

ret = get_weight (resources, &weight, err);
if (UNLIKELY (ret < 0))
Expand Down

0 comments on commit 4a24b6a

Please sign in to comment.