From: Jan Macku Date: Thu, 2 Sep 2021 14:37:13 +0000 (+0200) Subject: core: Add new DBUS properties UnitsReloadStartTimestamp and UnitsLoadTimestampMontonic X-Git-Tag: v250-rc1~32^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=49fbe940a429c3d8807bacdfce03af834275257c;p=thirdparty%2Fsystemd.git core: Add new DBUS properties UnitsReloadStartTimestamp and UnitsLoadTimestampMontonic --- diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml index c9f71a6dca8..c182d4137f1 100644 --- a/man/org.freedesktop.systemd1.xml +++ b/man/org.freedesktop.systemd1.xml @@ -330,6 +330,10 @@ node /org/freedesktop/systemd1 { @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly t UnitsLoadFinishTimestampMonotonic = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") + readonly t UnitsLoadTimestamp = ...; + @org.freedesktop.DBus.Property.EmitsChangedSignal("const") + readonly t UnitsLoadTimestampMonotonic = ...; + @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly t InitRDSecurityStartTimestamp = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly t InitRDSecurityStartTimestampMonotonic = ...; @@ -977,6 +981,10 @@ node /org/freedesktop/systemd1 { + + + + @@ -1492,6 +1500,11 @@ node /org/freedesktop/systemd1 { boot loader or initrd implementation. In these cases the respective pairs of timestamps are both 0, indicating that no data is available. + UnitsLoadTimestamp and UnitsLoadTimestampMonotonic encode + CLOCK_REALTIME and CLOCK_MONOTONIC microseconds timestamps + (as described above). The timestamps are taken every time when the manager starts loading unit files. + + Similarly, the SecurityStartTimestamp, GeneratorsStartTimestamp and LoadUnitTimestamp (as well as their monotonic and stop counterparts) expose performance data for uploading the security policies to the diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c index 5a294f07b30..4d6a69114bd 100644 --- a/src/core/dbus-manager.c +++ b/src/core/dbus-manager.c @@ -2673,6 +2673,7 @@ const sd_bus_vtable bus_manager_vtable[] = { BUS_PROPERTY_DUAL_TIMESTAMP("GeneratorsFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_GENERATORS_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST), BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadStartTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_UNITS_LOAD_START]), SD_BUS_VTABLE_PROPERTY_CONST), BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_UNITS_LOAD_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST), + BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_UNITS_LOAD]), SD_BUS_VTABLE_PROPERTY_CONST), BUS_PROPERTY_DUAL_TIMESTAMP("InitRDSecurityStartTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_INITRD_SECURITY_START]), SD_BUS_VTABLE_PROPERTY_CONST), BUS_PROPERTY_DUAL_TIMESTAMP("InitRDSecurityFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_INITRD_SECURITY_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST), BUS_PROPERTY_DUAL_TIMESTAMP("InitRDGeneratorsStartTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_INITRD_GENERATORS_START]), SD_BUS_VTABLE_PROPERTY_CONST), diff --git a/src/core/manager.c b/src/core/manager.c index 167fa1a34aa..2b2406b0185 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -1734,8 +1734,10 @@ static void manager_ready(Manager *m) { Manager* manager_reloading_start(Manager *m) { m->n_reloading++; + dual_timestamp_get(m->timestamps + MANAGER_TIMESTAMP_UNITS_LOAD); return m; } + void manager_reloading_stopp(Manager **m) { if (*m) { assert((*m)->n_reloading > 0); @@ -4436,6 +4438,7 @@ static const char *const manager_timestamp_table[_MANAGER_TIMESTAMP_MAX] = { [MANAGER_TIMESTAMP_GENERATORS_FINISH] = "generators-finish", [MANAGER_TIMESTAMP_UNITS_LOAD_START] = "units-load-start", [MANAGER_TIMESTAMP_UNITS_LOAD_FINISH] = "units-load-finish", + [MANAGER_TIMESTAMP_UNITS_LOAD] = "units-load", [MANAGER_TIMESTAMP_INITRD_SECURITY_START] = "initrd-security-start", [MANAGER_TIMESTAMP_INITRD_SECURITY_FINISH] = "initrd-security-finish", [MANAGER_TIMESTAMP_INITRD_GENERATORS_START] = "initrd-generators-start", diff --git a/src/core/manager.h b/src/core/manager.h index 29ce8121212..1e43706ec57 100644 --- a/src/core/manager.h +++ b/src/core/manager.h @@ -102,6 +102,7 @@ typedef enum ManagerTimestamp { MANAGER_TIMESTAMP_GENERATORS_FINISH, MANAGER_TIMESTAMP_UNITS_LOAD_START, MANAGER_TIMESTAMP_UNITS_LOAD_FINISH, + MANAGER_TIMESTAMP_UNITS_LOAD, MANAGER_TIMESTAMP_INITRD_SECURITY_START, MANAGER_TIMESTAMP_INITRD_SECURITY_FINISH,