util/cbmem: Keep original Total Time calculation when no negative timestamps

"Total time" calculation changed after CL 59555 to include
"1st timestamp" value in the calculation. This patch restores original
Total Time calculation where "1st timetamp" is subtracted from
"jumping to kernel". If pre CPU reset timestamps are added (negative
timestamps), "Total time" calculation still includes the pre-reset time
as expected.

1) Before https://review.coreboot.org/c/coreboot/+/59555:
   0:1st timestamp                                     225,897
1101:jumping to kernel                                 1,238,218 (16,316)

Total Time: 1,012,281

2) After https://review.coreboot.org/c/coreboot/+/59555:
   0:1st timestamp                                     225,897
1101:jumping to kernel                                 1,238,218 (16,316)

Total Time: 1,238,178

3) After this patch:
   0:1st timestamp                                     225,897 (0)
1101:jumping to kernel                                 1,238,218 (16,316)

Total Time: 1,012,281

BUG=none
TEST=Boot to OS, check cbmem -t on Redrix board

Signed-off-by: Bora Guvendik <bora.guvendik@intel.com>
Change-Id: I0442f796b03731df3b869aea32d40ed94cabdce0
Reviewed-on: https://review.coreboot.org/c/coreboot/+/61839
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
This commit is contained in:
Bora Guvendik 2022-02-10 20:13:50 -08:00 committed by Julius Werner
parent fc45b1b90b
commit c79da5f211
1 changed files with 5 additions and 2 deletions

View File

@ -642,9 +642,12 @@ static void dump_timestamps(int mach_readable)
* If there are negative timestamp entries, rebase all of the * If there are negative timestamp entries, rebase all of the
* timestamps to the lowest one in the list. * timestamps to the lowest one in the list.
*/ */
if (sorted_tst_p->entries[0].entry_stamp < 0) if (sorted_tst_p->entries[0].entry_stamp < 0) {
sorted_tst_p->base_time = -sorted_tst_p->entries[0].entry_stamp; sorted_tst_p->base_time = -sorted_tst_p->entries[0].entry_stamp;
prev_stamp = 0; prev_stamp = 0;
} else {
prev_stamp = tst_p->base_time;
}
total_time = 0; total_time = 0;
for (uint32_t i = 0; i < sorted_tst_p->num_entries; i++) { for (uint32_t i = 0; i < sorted_tst_p->num_entries; i++) {