diff options
Diffstat (limited to 'src/core/cgroup.c')
-rw-r--r-- | src/core/cgroup.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 441d1125d2..41eb755fa5 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -175,6 +175,9 @@ void cgroup_context_init(CGroupContext *c) { .moom_swap = MANAGED_OOM_AUTO, .moom_mem_pressure = MANAGED_OOM_AUTO, .moom_preference = MANAGED_OOM_PREFERENCE_NONE, + + .memory_pressure_watch = _CGROUP_PRESSURE_WATCH_INVALID, + .memory_pressure_threshold_usec = USEC_INFINITY, }; } @@ -517,7 +520,8 @@ void cgroup_context_dump(Unit *u, FILE* f, const char *prefix) { "%sManagedOOMSwap: %s\n" "%sManagedOOMMemoryPressure: %s\n" "%sManagedOOMMemoryPressureLimit: " PERMYRIAD_AS_PERCENT_FORMAT_STR "\n" - "%sManagedOOMPreference: %s\n", + "%sManagedOOMPreference: %s\n" + "%sMemoryPressureWatch: %s\n", prefix, yes_no(c->cpu_accounting), prefix, yes_no(c->io_accounting), prefix, yes_no(c->blockio_accounting), @@ -559,7 +563,12 @@ void cgroup_context_dump(Unit *u, FILE* f, const char *prefix) { prefix, managed_oom_mode_to_string(c->moom_swap), prefix, managed_oom_mode_to_string(c->moom_mem_pressure), prefix, PERMYRIAD_AS_PERCENT_FORMAT_VAL(UINT32_SCALE_TO_PERMYRIAD(c->moom_mem_pressure_limit)), - prefix, managed_oom_preference_to_string(c->moom_preference)); + prefix, managed_oom_preference_to_string(c->moom_preference), + prefix, cgroup_pressure_watch_to_string(c->memory_pressure_watch)); + + if (c->memory_pressure_threshold_usec != USEC_INFINITY) + fprintf(f, "%sMemoryPressureThresholdSec: %s\n", + prefix, FORMAT_TIMESPAN(c->memory_pressure_threshold_usec, 1)); if (c->delegate) { _cleanup_free_ char *t = NULL; @@ -4376,3 +4385,12 @@ static const char* const freezer_action_table[_FREEZER_ACTION_MAX] = { }; DEFINE_STRING_TABLE_LOOKUP(freezer_action, FreezerAction); + +static const char* const cgroup_pressure_watch_table[_CGROUP_PRESSURE_WATCH_MAX] = { + [CGROUP_PRESSURE_WATCH_OFF] = "off", + [CGROUP_PRESSURE_WATCH_AUTO] = "auto", + [CGROUP_PRESSURE_WATCH_ON] = "on", + [CGROUP_PRESSURE_WATCH_SKIP] = "skip", +}; + +DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(cgroup_pressure_watch, CGroupPressureWatch, CGROUP_PRESSURE_WATCH_ON); |