From 527ede0c638b47b62a87900438a8a09dea42889e Mon Sep 17 00:00:00 2001 From: Filipe Brandenburger Date: Wed, 23 Jan 2019 20:19:44 -0800 Subject: [PATCH] core: downgrade CPUQuotaPeriodSec= clamping logs to debug After the first warning log, further messages are downgraded to LOG_DEBUG. --- src/core/cgroup.c | 3 ++- src/core/dbus-cgroup.c | 2 ++ src/core/unit.h | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/core/cgroup.c b/src/core/cgroup.c index 9fe3ba99071..ccf06173db5 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -685,9 +685,10 @@ static usec_t cgroup_cpu_adjust_period_and_log(Unit *u, usec_t period, usec_t qu if (new_period != period) { char v[FORMAT_TIMESPAN_MAX]; - log_unit_full(u, LOG_WARNING, 0, + log_unit_full(u, u->warned_clamping_cpu_quota_period ? LOG_DEBUG : LOG_WARNING, 0, "Clamping CPU interval for cpu.max: period is now %s", format_timespan(v, sizeof(v), new_period, 1)); + u->warned_clamping_cpu_quota_period = true; } return new_period; diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c index d1c34fed1b7..7ab53a1c2a9 100644 --- a/src/core/dbus-cgroup.c +++ b/src/core/dbus-cgroup.c @@ -714,6 +714,7 @@ int bus_cgroup_set_property( if (!UNIT_WRITE_FLAGS_NOOP(flags)) { c->cpu_quota_per_sec_usec = u64; + u->warned_clamping_cpu_quota_period = false; unit_invalidate_cgroup(u, CGROUP_MASK_CPU); if (c->cpu_quota_per_sec_usec == USEC_INFINITY) @@ -737,6 +738,7 @@ int bus_cgroup_set_property( if (!UNIT_WRITE_FLAGS_NOOP(flags)) { c->cpu_quota_period_usec = u64; + u->warned_clamping_cpu_quota_period = false; unit_invalidate_cgroup(u, CGROUP_MASK_CPU); if (c->cpu_quota_period_usec == USEC_INFINITY) unit_write_setting(u, flags, "CPUQuotaPeriodSec", "CPUQuotaPeriodSec="); diff --git a/src/core/unit.h b/src/core/unit.h index 43cf15715a2..4d6e6cf4678 100644 --- a/src/core/unit.h +++ b/src/core/unit.h @@ -349,6 +349,9 @@ typedef struct Unit { bool exported_log_rate_limit_interval:1; bool exported_log_rate_limit_burst:1; + /* Whether we warned about clamping the CPU quota period */ + bool warned_clamping_cpu_quota_period:1; + /* When writing transient unit files, stores which section we stored last. If < 0, we didn't write any yet. If * == 0 we are in the [Unit] section, if > 0 we are in the unit type-specific section. */ signed int last_section_private:2; -- 2.39.2