core/cgroup: cache the last memory usage values before destroying cgroup

Currently, memory accounting values are only cached if it was queued
at least once before destroying cgroup. Let's always cache it like
what we already do for CPU usage.

Preparation for later changes.
This commit is contained in:
Mike Yuan
2023-12-09 20:42:48 +08:00
parent 7ba8260c46
commit ad009380e1
+5 -1
View File
@@ -3131,7 +3131,11 @@ void unit_prune_cgroup(Unit *u) {
if (!u->cgroup_path)
return;
(void) unit_get_cpu_usage(u, NULL); /* Cache the last CPU usage value before we destroy the cgroup */
/* Cache the last CPU and memory usage values before we destroy the cgroup */
(void) unit_get_cpu_usage(u, /* ret = */ NULL);
for (CGroupMemoryAccountingMetric metric = 0; metric <= _CGROUP_MEMORY_ACCOUNTING_METRIC_CACHED_LAST; metric++)
(void) unit_get_memory_accounting(u, metric, /* ret = */ NULL);
#if BPF_FRAMEWORK
(void) lsm_bpf_cleanup(u); /* Remove cgroup from the global LSM BPF map */