Skip to content

Commit bfbcf21

Browse files
authored
Merge pull request systemd#7406 from poettering/timestamp-rework
timestamping rework
2 parents d6df583 + 213242a commit bfbcf21

File tree

6 files changed

+175
-123
lines changed

6 files changed

+175
-123
lines changed

man/systemd.special.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1072,7 +1072,7 @@ PartOf=graphical-session.target
10721072
<citerefentry><refentrytitle>systemd.socket</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
10731073
<citerefentry><refentrytitle>systemd.target</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
10741074
<citerefentry><refentrytitle>systemd.slice</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
1075-
<citerefentry project='man-pages'><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
1075+
<citerefentry><refentrytitle>bootup</refentrytitle><manvolnum>7</manvolnum></citerefentry>,
10761076
<citerefentry><refentrytitle>systemd-fstab-generator</refentrytitle><manvolnum>8</manvolnum></citerefentry>
10771077
</para>
10781078
</refsect1>

src/core/dbus-manager.c

+14-23
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,7 @@ static int property_get_progress(
323323
assert(reply);
324324
assert(m);
325325

326-
if (dual_timestamp_is_set(&m->finish_timestamp))
326+
if (MANAGER_IS_FINISHED(m))
327327
d = 1.0;
328328
else
329329
d = 1.0 - ((double) hashmap_size(m->jobs) / (double) m->n_installed_jobs);
@@ -1289,9 +1289,7 @@ static int method_unsubscribe(sd_bus_message *message, void *userdata, sd_bus_er
12891289

12901290
static int method_dump(sd_bus_message *message, void *userdata, sd_bus_error *error) {
12911291
_cleanup_free_ char *dump = NULL;
1292-
_cleanup_fclose_ FILE *f = NULL;
12931292
Manager *m = userdata;
1294-
size_t size;
12951293
int r;
12961294

12971295
assert(message);
@@ -1303,14 +1301,7 @@ static int method_dump(sd_bus_message *message, void *userdata, sd_bus_error *er
13031301
if (r < 0)
13041302
return r;
13051303

1306-
f = open_memstream(&dump, &size);
1307-
if (!f)
1308-
return -ENOMEM;
1309-
1310-
manager_dump_units(m, f, NULL);
1311-
manager_dump_jobs(m, f, NULL);
1312-
1313-
r = fflush_and_check(f);
1304+
r = manager_get_dump_string(m, &dump);
13141305
if (r < 0)
13151306
return r;
13161307

@@ -2413,18 +2404,18 @@ const sd_bus_vtable bus_manager_vtable[] = {
24132404
SD_BUS_PROPERTY("Virtualization", "s", property_get_virtualization, 0, SD_BUS_VTABLE_PROPERTY_CONST),
24142405
SD_BUS_PROPERTY("Architecture", "s", property_get_architecture, 0, SD_BUS_VTABLE_PROPERTY_CONST),
24152406
SD_BUS_PROPERTY("Tainted", "s", property_get_tainted, 0, SD_BUS_VTABLE_PROPERTY_CONST),
2416-
BUS_PROPERTY_DUAL_TIMESTAMP("FirmwareTimestamp", offsetof(Manager, firmware_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2417-
BUS_PROPERTY_DUAL_TIMESTAMP("LoaderTimestamp", offsetof(Manager, loader_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2418-
BUS_PROPERTY_DUAL_TIMESTAMP("KernelTimestamp", offsetof(Manager, kernel_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2419-
BUS_PROPERTY_DUAL_TIMESTAMP("InitRDTimestamp", offsetof(Manager, initrd_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2420-
BUS_PROPERTY_DUAL_TIMESTAMP("UserspaceTimestamp", offsetof(Manager, userspace_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2421-
BUS_PROPERTY_DUAL_TIMESTAMP("FinishTimestamp", offsetof(Manager, finish_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2422-
BUS_PROPERTY_DUAL_TIMESTAMP("SecurityStartTimestamp", offsetof(Manager, security_start_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2423-
BUS_PROPERTY_DUAL_TIMESTAMP("SecurityFinishTimestamp", offsetof(Manager, security_finish_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2424-
BUS_PROPERTY_DUAL_TIMESTAMP("GeneratorsStartTimestamp", offsetof(Manager, generators_start_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2425-
BUS_PROPERTY_DUAL_TIMESTAMP("GeneratorsFinishTimestamp", offsetof(Manager, generators_finish_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2426-
BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadStartTimestamp", offsetof(Manager, units_load_start_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2427-
BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadFinishTimestamp", offsetof(Manager, units_load_finish_timestamp), SD_BUS_VTABLE_PROPERTY_CONST),
2407+
BUS_PROPERTY_DUAL_TIMESTAMP("FirmwareTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_FIRMWARE]), SD_BUS_VTABLE_PROPERTY_CONST),
2408+
BUS_PROPERTY_DUAL_TIMESTAMP("LoaderTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_LOADER]), SD_BUS_VTABLE_PROPERTY_CONST),
2409+
BUS_PROPERTY_DUAL_TIMESTAMP("KernelTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_KERNEL]), SD_BUS_VTABLE_PROPERTY_CONST),
2410+
BUS_PROPERTY_DUAL_TIMESTAMP("InitRDTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_INITRD]), SD_BUS_VTABLE_PROPERTY_CONST),
2411+
BUS_PROPERTY_DUAL_TIMESTAMP("UserspaceTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_USERSPACE]), SD_BUS_VTABLE_PROPERTY_CONST),
2412+
BUS_PROPERTY_DUAL_TIMESTAMP("FinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST),
2413+
BUS_PROPERTY_DUAL_TIMESTAMP("SecurityStartTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_SECURITY_START]), SD_BUS_VTABLE_PROPERTY_CONST),
2414+
BUS_PROPERTY_DUAL_TIMESTAMP("SecurityFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_SECURITY_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST),
2415+
BUS_PROPERTY_DUAL_TIMESTAMP("GeneratorsStartTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_GENERATORS_START]), SD_BUS_VTABLE_PROPERTY_CONST),
2416+
BUS_PROPERTY_DUAL_TIMESTAMP("GeneratorsFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_GENERATORS_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST),
2417+
BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadStartTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_UNITS_LOAD_START]), SD_BUS_VTABLE_PROPERTY_CONST),
2418+
BUS_PROPERTY_DUAL_TIMESTAMP("UnitsLoadFinishTimestamp", offsetof(Manager, timestamps[MANAGER_TIMESTAMP_UNITS_LOAD_FINISH]), SD_BUS_VTABLE_PROPERTY_CONST),
24282419
SD_BUS_WRITABLE_PROPERTY("LogLevel", "s", property_get_log_level, property_set_log_level, 0, 0),
24292420
SD_BUS_WRITABLE_PROPERTY("LogTarget", "s", property_get_log_target, property_set_log_target, 0, 0),
24302421
SD_BUS_PROPERTY("NNames", "u", property_get_n_names, 0, 0),

src/core/main.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -1995,11 +1995,11 @@ int main(int argc, char *argv[]) {
19951995
goto finish;
19961996
}
19971997

1998-
m->userspace_timestamp = userspace_timestamp;
1999-
m->kernel_timestamp = kernel_timestamp;
2000-
m->initrd_timestamp = initrd_timestamp;
2001-
m->security_start_timestamp = security_start_timestamp;
2002-
m->security_finish_timestamp = security_finish_timestamp;
1998+
m->timestamps[MANAGER_TIMESTAMP_KERNEL] = kernel_timestamp;
1999+
m->timestamps[MANAGER_TIMESTAMP_INITRD] = initrd_timestamp;
2000+
m->timestamps[MANAGER_TIMESTAMP_USERSPACE] = userspace_timestamp;
2001+
m->timestamps[MANAGER_TIMESTAMP_SECURITY_START] = security_start_timestamp;
2002+
m->timestamps[MANAGER_TIMESTAMP_SECURITY_FINISH] = security_finish_timestamp;
20032003

20042004
set_manager_defaults(m);
20052005
set_manager_settings(m);

0 commit comments

Comments
 (0)