public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] Add read_poll_timeout_atomic support
@ 2025-11-03 11:29 FUJITA Tomonori
  2025-11-03 11:29 ` [PATCH v4 1/2] rust: add udelay() function FUJITA Tomonori
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: FUJITA Tomonori @ 2025-11-03 11:29 UTC (permalink / raw)
  To: a.hindborg, alex.gaynor, aliceryhl, dakr, daniel.almeida, ojeda
  Cc: anna-maria, bjorn3_gh, boqun.feng, frederic, gary, jstultz,
	linux-kernel, lossin, lyude, rust-for-linux, sboyd, tglx, tmgross

Add read_poll_timeout_atomic function which polls periodically until a
condition is met, an error occurs, or the attempt limit is reached.

This helper is used to wait for a condition in atomic context,
mirroring the C's read_poll_timeout_atomic().

In atomic context, the timekeeping infrastructure is unavailable, so
reliable time-based timeouts cannot be implemented. So instead, the
helper accepts a maximum number of attempts and busy-waits (udelay +
cpu_relax) between tries.

v4:
- update the comment on udelay
- add Alice and Andreas' Reviewed-by
v3: https://lore.kernel.org/lkml/20251026125458.2772103-1-fujita.tomonori@gmail.com/
- revert the function name
- simplify the example code
- add debug_assert to check the range for udelay
v2: https://lore.kernel.org/lkml/20251021071146.2357069-1-fujita.tomonori@gmail.com/
- use the attempt limit instead of timeout
- rename the function to read_poll_count_atomic
- add the comment about C's udelay behavior.
v1: https://lore.kernel.org/lkml/20250821035710.3692455-1-fujita.tomonori@gmail.com/

FUJITA Tomonori (2):
  rust: add udelay() function
  rust: Add read_poll_timeout_atomic function

 rust/helpers/time.c       |  5 +++
 rust/kernel/io/poll.rs    | 72 ++++++++++++++++++++++++++++++++++++++-
 rust/kernel/time/delay.rs | 37 ++++++++++++++++++++
 3 files changed, 113 insertions(+), 1 deletion(-)


base-commit: b0b7301b004301afe920b3d08caa6171dd3f4011
-- 
2.43.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2025-11-04 13:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-03 11:29 [PATCH v4 0/2] Add read_poll_timeout_atomic support FUJITA Tomonori
2025-11-03 11:29 ` [PATCH v4 1/2] rust: add udelay() function FUJITA Tomonori
2025-11-03 11:29 ` [PATCH v4 2/2] rust: Add read_poll_timeout_atomic function FUJITA Tomonori
2025-11-03 11:34 ` [PATCH v4 0/2] Add read_poll_timeout_atomic support Danilo Krummrich
2025-11-04 11:26   ` Andreas Hindborg
2025-11-04 13:09 ` Danilo Krummrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox