Raul Rangel has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/58957 )
Change subject: drivers/elog/elog: Add timestamps to elog_init ......................................................................
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:<unknown> 3,029,116 (88) 115:<unknown> 3,071,281 (42,165)
Signed-off-by: Raul E Rangel rrangel@chromium.org Change-Id: Ia92372dd76535e06eb3b8a08b53e80ddb38b7a8f --- M src/commonlib/include/commonlib/timestamp_serialized.h M src/drivers/elog/elog.c 2 files changed, 12 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/57/58957/1
diff --git a/src/commonlib/include/commonlib/timestamp_serialized.h b/src/commonlib/include/commonlib/timestamp_serialized.h index 98fe552..de3e1bb 100644 --- a/src/commonlib/include/commonlib/timestamp_serialized.h +++ b/src/commonlib/include/commonlib/timestamp_serialized.h @@ -56,6 +56,8 @@ 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 @@ { 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 ca2ec6e..37df182 100644 --- a/src/drivers/elog/elog.c +++ b/src/drivers/elog/elog.c @@ -16,6 +16,7 @@ #include <smbios.h> #include <stdint.h> #include <string.h> +#include <timestamp.h>
#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 @@ } 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 @@
if (ENV_PAYLOAD_LOADER) elog_add_boot_count(); + + if (!ENV_SMM) + timestamp_add_now(TS_ELOG_INIT_END); + return 0; }