summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorThomas Hindoe Paaboel Andersen <phomes@gmail.com>2013-05-15 21:18:26 +0200
committerThomas Hindoe Paaboel Andersen <phomes@gmail.com>2013-06-02 22:26:13 +0200
commitd9acfb71dbfb6e916b9752593158698b8021b28c (patch)
tree82e27310f08524ef78caa2cf9bc714540324bc19 /src/core
parent518d10e98508ec8181e864924484a2ca994c5d43 (diff)
analyze: show unit file loading on plot
This will add another color to the legend called "Loading unit files" Like the generators it will mark a part of the systemd bar indicating the time spent while loading unit files.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/dbus-manager.c8
-rw-r--r--src/core/manager.c2
-rw-r--r--src/core/manager.h2
3 files changed, 12 insertions, 0 deletions
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index 988c06aa44..25d38cc491 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -286,6 +286,10 @@
" <property name=\"GeneratorsStartTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
" <property name=\"GeneratorsFinishTimestamp\" type=\"t\" access=\"read\"/>\n" \
" <property name=\"GeneratorsFinishTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
+ " <property name=\"UnitsLoadStartTimestamp\" type=\"t\" access=\"read\"/>\n" \
+ " <property name=\"UnitsLoadStartTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
+ " <property name=\"UnitsLoadFinishTimestamp\" type=\"t\" access=\"read\"/>\n" \
+ " <property name=\"UnitsLoadFinishTimestampMonotonic\" type=\"t\" access=\"read\"/>\n" \
" <property name=\"LogLevel\" type=\"s\" access=\"readwrite\"/>\n" \
" <property name=\"LogTarget\" type=\"s\" access=\"readwrite\"/>\n" \
" <property name=\"NNames\" type=\"u\" access=\"read\"/>\n" \
@@ -595,6 +599,10 @@ static const BusProperty bus_manager_properties[] = {
{ "GeneratorsStartTimestampMonotonic", bus_property_append_uint64, "t", offsetof(Manager, generators_start_timestamp.monotonic) },
{ "GeneratorsFinishTimestamp", bus_property_append_uint64, "t", offsetof(Manager, generators_finish_timestamp.realtime) },
{ "GeneratorsFinishTimestampMonotonic", bus_property_append_uint64, "t", offsetof(Manager, generators_finish_timestamp.monotonic) },
+ { "UnitsLoadStartTimestamp", bus_property_append_uint64, "t", offsetof(Manager, unitsload_start_timestamp.realtime) },
+ { "UnitsLoadStartTimestampMonotonic", bus_property_append_uint64, "t", offsetof(Manager, unitsload_start_timestamp.monotonic) },
+ { "UnitsLoadFinishTimestamp", bus_property_append_uint64, "t", offsetof(Manager, unitsload_finish_timestamp.realtime) },
+ { "UnitsLoadFinishTimestampMonotonic", bus_property_append_uint64, "t", offsetof(Manager, unitsload_finish_timestamp.monotonic) },
{ "LogLevel", bus_manager_append_log_level, "s", 0, false, bus_manager_set_log_level },
{ "LogTarget", bus_manager_append_log_target, "s", 0, false, bus_manager_set_log_target },
{ "NNames", bus_manager_append_n_names, "u", 0 },
diff --git a/src/core/manager.c b/src/core/manager.c
index 73f4c102e8..f16621ac2b 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -847,7 +847,9 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds) {
m->n_reloading ++;
/* First, enumerate what we can from all config files */
+ dual_timestamp_get(&m->unitsload_start_timestamp);
r = manager_enumerate(m);
+ dual_timestamp_get(&m->unitsload_finish_timestamp);
/* Second, deserialize if there is something to deserialize */
if (serialization) {
diff --git a/src/core/manager.h b/src/core/manager.h
index 5d777e6ed3..dcc4ebed92 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -152,6 +152,8 @@ struct Manager {
dual_timestamp finish_timestamp;
dual_timestamp generators_start_timestamp;
dual_timestamp generators_finish_timestamp;
+ dual_timestamp unitsload_start_timestamp;
+ dual_timestamp unitsload_finish_timestamp;
char *generator_unit_path;
char *generator_unit_path_early;