mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
Merge pull request #7738 from yuwata/fix-7721
core: manager logs firmware and loader time when startup finished
This commit is contained in:
commit
4c6ceea773
@ -83,6 +83,7 @@
|
||||
#include "string-table.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "strxcpyx.h"
|
||||
#include "terminal-util.h"
|
||||
#include "time-util.h"
|
||||
#include "transaction.h"
|
||||
@ -3207,6 +3208,11 @@ static void manager_notify_finished(Manager *m) {
|
||||
return;
|
||||
|
||||
if (MANAGER_IS_SYSTEM(m) && detect_container() <= 0) {
|
||||
char ts[FORMAT_TIMESPAN_MAX];
|
||||
char buf[FORMAT_TIMESPAN_MAX + STRLEN(" (firmware) + ") + FORMAT_TIMESPAN_MAX + STRLEN(" (loader) + ")]
|
||||
= {};
|
||||
char *p = buf;
|
||||
size_t size = sizeof buf;
|
||||
|
||||
/* Note that MANAGER_TIMESTAMP_KERNEL's monotonic value is always at 0, and
|
||||
* MANAGER_TIMESTAMP_FIRMWARE's and MANAGER_TIMESTAMP_LOADER's monotonic value should be considered
|
||||
@ -3217,6 +3223,11 @@ static void manager_notify_finished(Manager *m) {
|
||||
userspace_usec = m->timestamps[MANAGER_TIMESTAMP_FINISH].monotonic - m->timestamps[MANAGER_TIMESTAMP_USERSPACE].monotonic;
|
||||
total_usec = m->timestamps[MANAGER_TIMESTAMP_FIRMWARE].monotonic + m->timestamps[MANAGER_TIMESTAMP_FINISH].monotonic;
|
||||
|
||||
if (firmware_usec > 0)
|
||||
size = strpcpyf(&p, size, "%s (firmware) + ", format_timespan(ts, sizeof(ts), firmware_usec, USEC_PER_MSEC));
|
||||
if (loader_usec > 0)
|
||||
size = strpcpyf(&p, size, "%s (loader) + ", format_timespan(ts, sizeof(ts), loader_usec, USEC_PER_MSEC));
|
||||
|
||||
if (dual_timestamp_is_set(&m->timestamps[MANAGER_TIMESTAMP_INITRD])) {
|
||||
|
||||
/* The initrd case on bare-metal*/
|
||||
@ -3228,7 +3239,8 @@ static void manager_notify_finished(Manager *m) {
|
||||
"KERNEL_USEC="USEC_FMT, kernel_usec,
|
||||
"INITRD_USEC="USEC_FMT, initrd_usec,
|
||||
"USERSPACE_USEC="USEC_FMT, userspace_usec,
|
||||
LOG_MESSAGE("Startup finished in %s (kernel) + %s (initrd) + %s (userspace) = %s.",
|
||||
LOG_MESSAGE("Startup finished in %s%s (kernel) + %s (initrd) + %s (userspace) = %s.",
|
||||
buf,
|
||||
format_timespan(kernel, sizeof(kernel), kernel_usec, USEC_PER_MSEC),
|
||||
format_timespan(initrd, sizeof(initrd), initrd_usec, USEC_PER_MSEC),
|
||||
format_timespan(userspace, sizeof(userspace), userspace_usec, USEC_PER_MSEC),
|
||||
@ -3244,7 +3256,8 @@ static void manager_notify_finished(Manager *m) {
|
||||
"MESSAGE_ID=" SD_MESSAGE_STARTUP_FINISHED_STR,
|
||||
"KERNEL_USEC="USEC_FMT, kernel_usec,
|
||||
"USERSPACE_USEC="USEC_FMT, userspace_usec,
|
||||
LOG_MESSAGE("Startup finished in %s (kernel) + %s (userspace) = %s.",
|
||||
LOG_MESSAGE("Startup finished in %s%s (kernel) + %s (userspace) = %s.",
|
||||
buf,
|
||||
format_timespan(kernel, sizeof(kernel), kernel_usec, USEC_PER_MSEC),
|
||||
format_timespan(userspace, sizeof(userspace), userspace_usec, USEC_PER_MSEC),
|
||||
format_timespan(sum, sizeof(sum), total_usec, USEC_PER_MSEC)),
|
||||
|
Loading…
Reference in New Issue
Block a user