c5f8a179a2
The watchdog ping is performed for every iteration of manager event loop. This results in a lot of ioctls on watchdog device driver especially during boot or if services are aggressively using sd_notify. Depending on the watchdog device driver this may have performance impact on embedded systems. The patch skips sending the watchdog to device driver if the ping is requested before half of the watchdog timeout.
18 lines
384 B
C
18 lines
384 B
C
/* SPDX-License-Identifier: LGPL-2.1+ */
|
|
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "time-util.h"
|
|
#include "util.h"
|
|
|
|
int watchdog_set_device(char *path);
|
|
int watchdog_set_timeout(usec_t *usec);
|
|
int watchdog_ping(void);
|
|
void watchdog_close(bool disarm);
|
|
usec_t watchdog_runtime_wait(void);
|
|
|
|
static inline void watchdog_free_device(void) {
|
|
(void) watchdog_set_device(NULL);
|
|
}
|