Raul Rangel has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/56050 )
Change subject: lib/hardwaremain: Call poll_futures ......................................................................
lib/hardwaremain: Call poll_futures
This CL makes the ramstage state machine poll the futures after each callback and during stage transitions. This will keep the futures progressing throughout the boot process. This is a no-op for platforms that don't set FUTURES_EXECUTOR.
BUG=b:177909625 TEST=Boot guybrush and see payload read/decompress drop by 23 ms.
Signed-off-by: Raul E Rangel rrangel@chromium.org Change-Id: I15e17ecb1094a4bfb7bf5cabe8c847b9e697ebf2 --- M src/lib/hardwaremain.c 1 file changed, 7 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/50/56050/1
diff --git a/src/lib/hardwaremain.c b/src/lib/hardwaremain.c index 1bda525..b68951b 100644 --- a/src/lib/hardwaremain.c +++ b/src/lib/hardwaremain.c @@ -12,6 +12,7 @@ #include <bootstate.h> #include <console/console.h> #include <console/post_codes.h> +#include <commonlib/bsd/future.h> #include <commonlib/helpers.h> #include <cbmem.h> #include <version.h> @@ -289,6 +290,8 @@ mono_time_diff_microseconds(&mt_start, &mt_stop) / USECS_PER_MSEC); } + + poll_futures(); continue; }
@@ -334,6 +337,7 @@
bs_run_timers(0);
+ poll_futures(); bs_sample_time(state);
bs_call_callbacks(state, current_phase.seq); @@ -342,6 +346,7 @@ * block on the correct phase. */ current_phase.seq = BS_ON_EXIT;
+ poll_futures(); bs_sample_time(state);
post_code(state->post_code); @@ -352,6 +357,7 @@ printk(BIOS_DEBUG, "BS: Exiting %s state.\n", state->name);
+ poll_futures(); bs_sample_time(state);
bs_call_callbacks(state, current_phase.seq); @@ -364,6 +370,7 @@ current_phase.state_id = next_id; current_phase.seq = BS_ON_ENTRY;
+ poll_futures(); bs_sample_time(state);
state->complete = 1;