1
0
mirror of https://github.com/systemd/systemd.git synced 2025-02-28 05:57:33 +03:00

core: add unit_reset_{memory,io}_accounting_last

This commit is contained in:
Mike Yuan 2023-11-13 21:27:29 +08:00
parent 9824ab1f00
commit d4bdc202c3
No known key found for this signature in database
GPG Key ID: 417471C0A40F58B3
3 changed files with 21 additions and 7 deletions

View File

@ -4373,6 +4373,13 @@ int unit_reset_cpu_accounting(Unit *u) {
return 0;
}
void unit_reset_memory_accounting_last(Unit *u) {
assert(u);
FOREACH_ARRAY(i, u->memory_accounting_last, ELEMENTSOF(u->memory_accounting_last))
*i = UINT64_MAX;
}
int unit_reset_ip_accounting(Unit *u) {
int r = 0;
@ -4389,13 +4396,19 @@ int unit_reset_ip_accounting(Unit *u) {
return r;
}
void unit_reset_io_accounting_last(Unit *u) {
assert(u);
FOREACH_ARRAY(i, u->io_accounting_last, _CGROUP_IO_ACCOUNTING_METRIC_MAX)
*i = UINT64_MAX;
}
int unit_reset_io_accounting(Unit *u) {
int r;
assert(u);
FOREACH_ARRAY(i, u->io_accounting_last, _CGROUP_IO_ACCOUNTING_METRIC_MAX)
*i = UINT64_MAX;
unit_reset_io_accounting_last(u);
r = unit_get_io_accounting_raw(u, u->io_accounting_base);
if (r < 0) {
@ -4414,6 +4427,7 @@ int unit_reset_accounting(Unit *u) {
RET_GATHER(r, unit_reset_cpu_accounting(u));
RET_GATHER(r, unit_reset_io_accounting(u));
RET_GATHER(r, unit_reset_ip_accounting(u));
unit_reset_memory_accounting_last(u);
return r;
}

View File

@ -376,7 +376,9 @@ int unit_get_io_accounting(Unit *u, CGroupIOAccountingMetric metric, bool allow_
int unit_get_ip_accounting(Unit *u, CGroupIPAccountingMetric metric, uint64_t *ret);
int unit_reset_cpu_accounting(Unit *u);
void unit_reset_memory_accounting_last(Unit *u);
int unit_reset_ip_accounting(Unit *u);
void unit_reset_io_accounting_last(Unit *u);
int unit_reset_io_accounting(Unit *u);
int unit_reset_accounting(Unit *u);

View File

@ -115,8 +115,9 @@ Unit* unit_new(Manager *m, size_t size) {
u->ref_gid = GID_INVALID;
u->cpu_usage_last = NSEC_INFINITY;
FOREACH_ARRAY(i, u->memory_accounting_last, ELEMENTSOF(u->memory_accounting_last))
*i = UINT64_MAX;
unit_reset_memory_accounting_last(u);
unit_reset_io_accounting_last(u);
u->cgroup_invalidated_mask |= CGROUP_MASK_BPF_FIREWALL;
u->failure_action_exit_status = u->success_action_exit_status = -1;
@ -124,9 +125,6 @@ Unit* unit_new(Manager *m, size_t size) {
u->ip_accounting_ingress_map_fd = -EBADF;
u->ip_accounting_egress_map_fd = -EBADF;
FOREACH_ARRAY(i, u->io_accounting_last, _CGROUP_IO_ACCOUNTING_METRIC_MAX)
*i = UINT64_MAX;
u->ipv4_allow_map_fd = -EBADF;
u->ipv6_allow_map_fd = -EBADF;
u->ipv4_deny_map_fd = -EBADF;