[coreboot-gerrit] Change in coreboot[master]: x86: Increase time out for parking APs to 250ms

Furquan Shaikh (Code Review) gerrit at coreboot.org
Thu Mar 29 09:18:54 CEST 2018


Furquan Shaikh has uploaded this change for review. ( https://review.coreboot.org/25422


Change subject: x86: Increase time out for parking APs to 250ms
......................................................................

x86: Increase time out for parking APs to 250ms

Change f43adf0 (intel/common/block/cpu: Change post_cpus_init after
BS_DEV RESOURCES) moved post_cpus_init to BS_OS_RESUME for S3
path. This results in BSP timing out waiting for APs to be
parked. This change increases the time out value for APs to be parked
to 250ms. This value was chosen after running suspend-resume stress
test and capturing the maximum time taken for APs to be parked for
100 iterations. Typical values observed were ~150ms. Maximum value
observed was 152ms.

BUG=b:76442753
TEST=Verified for 100 iterations that suspend-resume does not run into
any AP park time out.

Change-Id: Id3e59db4fe7a5a2fb60357b05565bba89be1e00e
Signed-off-by: Furquan Shaikh <furquan at google.com>
---
M src/arch/x86/cpu.c
M src/cpu/x86/mp_init.c
2 files changed, 19 insertions(+), 3 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/22/25422/1

diff --git a/src/arch/x86/cpu.c b/src/arch/x86/cpu.c
index cfcfdbd..142f2b1 100644
--- a/src/arch/x86/cpu.c
+++ b/src/arch/x86/cpu.c
@@ -309,6 +309,5 @@
 		return;
 
 	/* APs are waiting for work. Last thing to do is park them. */
-	if (mp_park_aps())
-		printk(BIOS_ERR, "Parking APs failed.\n");
+	mp_park_aps();
 }
diff --git a/src/cpu/x86/mp_init.c b/src/cpu/x86/mp_init.c
index 409caa5..f99abaf 100644
--- a/src/cpu/x86/mp_init.c
+++ b/src/cpu/x86/mp_init.c
@@ -962,7 +962,24 @@
 
 int mp_park_aps(void)
 {
-	return mp_run_on_aps(park_this_cpu, 10 * USECS_PER_MSEC);
+	struct stopwatch sw;
+	int ret;
+	long duration_msecs;
+
+	stopwatch_init(&sw);
+
+	ret = mp_run_on_aps(park_this_cpu, 250 * USECS_PER_MSEC);
+
+	duration_msecs = stopwatch_duration_msecs(&sw);
+
+	if (!ret)
+		printk(BIOS_DEBUG, "%s done after %ld msecs.\n", __func__,
+		       duration_msecs);
+	else
+		printk(BIOS_ERR, "%s failed after %ld msecs.\n", __func__,
+		       duration_msecs);
+
+	return ret;
 }
 
 static struct mp_flight_record mp_steps[] = {

-- 
To view, visit https://review.coreboot.org/25422
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Id3e59db4fe7a5a2fb60357b05565bba89be1e00e
Gerrit-Change-Number: 25422
Gerrit-PatchSet: 1
Gerrit-Owner: Furquan Shaikh <furquan at google.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180329/6c1a87ee/attachment.html>


More information about the coreboot-gerrit mailing list