summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2019-12-01 08:38:11 +0200
committerPatrick Georgi <pgeorgi@google.com>2019-12-06 15:11:02 +0000
commit05fe16c4f344d3fe23725d35104d38dab590a746 (patch)
tree41c87eb9d0006bd7e36c84f22ca4232cbb6081e6
parent934ae21b52492c9c730dc5accd2900b32c5c1492 (diff)
downloadcoreboot-05fe16c4f344d3fe23725d35104d38dab590a746.tar.xz
console,monotonic_timer: Avoid calls from APs
The code in cpu/x86/lapic/apic_timer.c for timer_monotonic_get() is not SMP safe as LAPIC timers do not run as synchronised as TSCs. The times reported for console for boot_states does not accumulate from APs now. Also remove console time tracking from ENV_SMM. Change-Id: I1ea2c1e7172f8ab3692b42dee3f669c5942d864a Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/37398 Reviewed-by: Arthur Heymans <arthur@aheymans.xyz> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r--src/console/printk.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/console/printk.c b/src/console/printk.c
index a08dd2f80f..b32fadb8b1 100644
--- a/src/console/printk.c
+++ b/src/console/printk.c
@@ -25,20 +25,20 @@
DECLARE_SPIN_LOCK(console_lock)
-#define TRACK_CONSOLE_TIME (CONFIG(HAVE_MONOTONIC_TIMER))
+#define TRACK_CONSOLE_TIME (!ENV_SMM && CONFIG(HAVE_MONOTONIC_TIMER))
static struct mono_time mt_start, mt_stop;
static long console_usecs;
static void console_time_run(void)
{
- if (TRACK_CONSOLE_TIME)
+ if (TRACK_CONSOLE_TIME && boot_cpu())
timer_monotonic_get(&mt_start);
}
static void console_time_stop(void)
{
- if (TRACK_CONSOLE_TIME) {
+ if (TRACK_CONSOLE_TIME && boot_cpu()) {
timer_monotonic_get(&mt_stop);
console_usecs += mono_time_diff_microseconds(&mt_start, &mt_stop);
}