[PATCH v2 0/2] x86/platform/amd: better handle scheduling delays in hsmp_send_message

Jake Hillion via B4 Relay posted 2 patches 6 months, 2 weeks ago
drivers/platform/x86/amd/hsmp/hsmp.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
[PATCH v2 0/2] x86/platform/amd: better handle scheduling delays in hsmp_send_message
Posted by Jake Hillion via B4 Relay 6 months, 2 weeks ago
hsmp_send_message currently relies in 2 places on the assumption that
usleep_range will complete in well under 100ms. This is not guaranteed,
and is prevalent when running sched_ext schedulers or possible under
other high load conditions.

These patches alter the behaviour in two ways:
1. Checks the result of `mbox_status` a final time if the sleep took us
   past the timeout. This gives a useful result under test when there
   are significant scheduling delays, rather than -ETIMEDOUT.
2. Removes the 100ms limit on awaiting the semaphore. This allows a
   second thread to compete even when the other suffers large scheduling
   delays.

Signed-off-by: Jake Hillion <jake@hillion.co.uk>
---
Changes in v2:
- Corrected -ETIMEDOUT to -ETIME in patch 2 as requested by reviewers.
- Link to v1: https://lore.kernel.org/r/20250530-amd-hsmp-v1-0-3222bffa4008@hillion.co.uk

---
Jake Hillion (2):
      x86/platform/amd: move final timeout check to after final sleep
      x86/platform/amd: replace down_timeout with down_interruptible

 drivers/platform/x86/amd/hsmp/hsmp.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)
---
base-commit: 44ed0f35df343d00b8d38006854f96e333104a66
change-id: 20250527-amd-hsmp-8c358985b4fb

Best regards,
-- 
Jake Hillion <jake@hillion.co.uk>
Re: [PATCH v2 0/2] x86/platform/amd: better handle scheduling delays in hsmp_send_message
Posted by Ilpo Järvinen 6 months, 1 week ago
On Thu, 05 Jun 2025 19:09:25 +0100, Jake Hillion wrote:

> hsmp_send_message currently relies in 2 places on the assumption that
> usleep_range will complete in well under 100ms. This is not guaranteed,
> and is prevalent when running sched_ext schedulers or possible under
> other high load conditions.
> 
> These patches alter the behaviour in two ways:
> 1. Checks the result of `mbox_status` a final time if the sleep took us
>    past the timeout. This gives a useful result under test when there
>    are significant scheduling delays, rather than -ETIMEDOUT.
> 2. Removes the 100ms limit on awaiting the semaphore. This allows a
>    second thread to compete even when the other suffers large scheduling
>    delays.
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/2] x86/platform/amd: move final timeout check to after final sleep
      commit: f8afb12a2d7503de6558c23cacd7acbf6e9fe678
[2/2] x86/platform/amd: replace down_timeout with down_interruptible
      commit: 784e48a82976ee0b645788750343cd1b28a372f3

--
 i.