diff mbox series

ipmi: Reduce ipmi_queue_msg_sync() polling loop time to 10ms

Message ID 20181119004442.1942-1-stewart@linux.ibm.com
State Accepted
Headers show
Series ipmi: Reduce ipmi_queue_msg_sync() polling loop time to 10ms | expand

Checks

Context Check Description
snowpatch_ozlabs/apply_patch success master/apply_patch Successfully applied
snowpatch_ozlabs/snowpatch_job_snowpatch-skiboot success Test snowpatch/job/snowpatch-skiboot on branch master

Commit Message

Stewart Smith Nov. 19, 2018, 12:44 a.m. UTC
On a plain boot, this reduces the time spent in OPAL by ~170ms on
p9dsu. This is due to hiomap (currently) using synchronous IPMI
messages.

It will also *significantly* reduce latency on runtime flash
operations, as we'll spend typically 10-20ms in OPAL rather than
100-200ms. It's not an ideal solution to that, but it's a quick
and obvious win for jitter.

Cc: stable
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
---
 core/ipmi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Stewart Smith Nov. 19, 2018, 5:59 a.m. UTC | #1
Stewart Smith <stewart@linux.ibm.com> writes:
> On a plain boot, this reduces the time spent in OPAL by ~170ms on
> p9dsu. This is due to hiomap (currently) using synchronous IPMI
> messages.
>
> It will also *significantly* reduce latency on runtime flash
> operations, as we'll spend typically 10-20ms in OPAL rather than
> 100-200ms. It's not an ideal solution to that, but it's a quick
> and obvious win for jitter.
>
> Cc: stable
> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>

Merged to master as of 28bf1faf44cd6bffcf3df0c00578b279f3faeab1

and should hit 6.0.x as of a41470c9492039947fb6e5ed898017f7deb7bece
assuming this in-progress test goes well
diff mbox series

Patch

diff --git a/core/ipmi.c b/core/ipmi.c
index 6fdb9a74b41b..44623a72dbb6 100644
--- a/core/ipmi.c
+++ b/core/ipmi.c
@@ -179,7 +179,7 @@  void ipmi_queue_msg_sync(struct ipmi_msg *msg)
 	unlock(&sync_lock);
 
 	while (sync_msg == msg)
-		time_wait_ms(100);
+		time_wait_ms(10);
 }
 
 static void ipmi_read_event_complete(struct ipmi_msg *msg)