From dc45951e88d4833241f475ad85663a077906ef00 Mon Sep 17 00:00:00 2001 From: Raul E Rangel Date: Wed, 3 Nov 2021 16:53:40 -0600 Subject: [PATCH] drivers/elog/elog: Add timestamps to elog_init elog init requires doing a lot of SPI transactions. This change makes it clear how long we spend initializing elog. BUG=b:179699789 TEST=Boot guybrush and see elog init timestamps 114:started elog init 3,029,116 (88) 115:finished elog init 3,071,281 (42,165) Signed-off-by: Raul E Rangel Change-Id: Ia92372dd76535e06eb3b8a08b53e80ddb38b7a8f Reviewed-on: https://review.coreboot.org/c/coreboot/+/58957 Reviewed-by: Tim Wawrzynczak Tested-by: build bot (Jenkins) --- src/commonlib/include/commonlib/timestamp_serialized.h | 4 ++++ src/drivers/elog/elog.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/src/commonlib/include/commonlib/timestamp_serialized.h b/src/commonlib/include/commonlib/timestamp_serialized.h index 98fe552b47..de3e1bb624 100644 --- a/src/commonlib/include/commonlib/timestamp_serialized.h +++ b/src/commonlib/include/commonlib/timestamp_serialized.h @@ -56,6 +56,8 @@ enum timestamp_id { TS_DELAY_END = 111, TS_READ_UCODE_START = 112, TS_READ_UCODE_END = 113, + TS_ELOG_INIT_START = 114, + TS_ELOG_INIT_END = 115, /* 500+ reserved for vendorcode extensions (500-600: google/chromeos) */ TS_START_COPYVER = 501, @@ -200,6 +202,8 @@ static const struct timestamp_id_to_name { { TS_DELAY_END, "Forced delay end" }, { TS_READ_UCODE_START, "started reading uCode" }, { TS_READ_UCODE_END, "finished reading uCode" }, + { TS_ELOG_INIT_START, "started elog init" }, + { TS_ELOG_INIT_END, "finished elog init" }, { TS_START_COPYVER, "starting to load verstage" }, { TS_END_COPYVER, "finished loading verstage" }, diff --git a/src/drivers/elog/elog.c b/src/drivers/elog/elog.c index ca2ec6ecd6..37df182a8d 100644 --- a/src/drivers/elog/elog.c +++ b/src/drivers/elog/elog.c @@ -16,6 +16,7 @@ #include #include #include +#include #define ELOG_MIN_AVAILABLE_ENTRIES 2 /* Shrink when this many can't fit */ #define ELOG_SHRINK_PERCENTAGE 25 /* Percent of total area to remove */ @@ -749,6 +750,9 @@ int elog_init(void) } elog_state.elog_initialized = ELOG_BROKEN; + if (!ENV_SMM) + timestamp_add_now(TS_ELOG_INIT_START); + elog_debug("%s()\n", __func__); /* Set up the backing store */ @@ -781,6 +785,10 @@ int elog_init(void) if (ENV_PAYLOAD_LOADER) elog_add_boot_count(); + + if (!ENV_SMM) + timestamp_add_now(TS_ELOG_INIT_END); + return 0; }