All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/7] rust: Add IO polling
@ 2024-11-01  1:01 FUJITA Tomonori
  2024-11-01  1:01 ` [PATCH v5 1/7] rust: time: Add PartialEq/Eq/PartialOrd/Ord trait to Ktime FUJITA Tomonori
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: FUJITA Tomonori @ 2024-11-01  1:01 UTC (permalink / raw)
  To: anna-maria, frederic, tglx, jstultz, sboyd, linux-kernel
  Cc: netdev, rust-for-linux, andrew, hkallweit1, tmgross, ojeda,
	alex.gaynor, gary, bjorn3_gh, benno.lossin, a.hindborg, aliceryhl,
	arnd

polls periodically until a condition is met or a timeout is reached.
By using the function, the 7th patch fixes QT2025 PHY driver to sleep
until the hardware becomes ready.

As a result of the past discussion, this introduces two new types,
Instant and Delta, which represent a specific point in time and a span
of time, respectively.

Unlike the old rust branch, This adds a wrapper for fsleep() instead
of msleep(). fsleep() automatically chooses the best sleep method
based on a duration.

v5:
- set the range of Delta for fsleep function
- update comments
v4: https://lore.kernel.org/lkml/20241025033118.44452-1-fujita.tomonori@gmail.com/
- rebase on the tip tree's timers/core
- add Instant instead of using Ktime
- remove unused basic methods
- add Delta as_micros_ceil method
- use const fn for Delta from_* methods
- add more comments based on the feedback
- add a safe wrapper for cpu_relax()
- add __might_sleep() macro
v3: https://lore.kernel.org/lkml/20241016035214.2229-1-fujita.tomonori@gmail.com/
- Update time::Delta methods (use i64 for everything)
- Fix read_poll_timeout to show the proper debug info (file and line)
- Move fsleep to rust/kernel/time/delay.rs
- Round up delta for fsleep
- Access directly ktime_t instead of using ktime APIs
- Add Eq and Ord with PartialEq and PartialOrd
v2: https://lore.kernel.org/lkml/20241005122531.20298-1-fujita.tomonori@gmail.com/
- Introduce time::Delta instead of core::time::Duration
- Add some trait to Ktime for calculating timeout
- Use read_poll_timeout in QT2025 driver instead of using fsleep directly
v1: https://lore.kernel.org/netdev/20241001112512.4861-1-fujita.tomonori@gmail.com/


FUJITA Tomonori (7):
  rust: time: Add PartialEq/Eq/PartialOrd/Ord trait to Ktime
  rust: time: Introduce Delta type
  rust: time: Introduce Instant type
  rust: time: Add wrapper for fsleep function
  MAINTAINERS: rust: Add TIMEKEEPING and TIMER abstractions
  rust: Add read_poll_timeout functions
  net: phy: qt2025: Wait until PHY becomes ready

 MAINTAINERS               |  2 +
 drivers/net/phy/qt2025.rs | 10 +++-
 rust/helpers/helpers.c    |  2 +
 rust/helpers/kernel.c     | 13 ++++++
 rust/helpers/time.c       |  8 ++++
 rust/kernel/error.rs      |  1 +
 rust/kernel/io.rs         |  5 ++
 rust/kernel/io/poll.rs    | 95 ++++++++++++++++++++++++++++++++++++++
 rust/kernel/lib.rs        |  2 +
 rust/kernel/processor.rs  | 13 ++++++
 rust/kernel/time.rs       | 97 ++++++++++++++++++++++++++++-----------
 rust/kernel/time/delay.rs | 43 +++++++++++++++++
 12 files changed, 263 insertions(+), 28 deletions(-)
 create mode 100644 rust/helpers/kernel.c
 create mode 100644 rust/helpers/time.c
 create mode 100644 rust/kernel/io.rs
 create mode 100644 rust/kernel/io/poll.rs
 create mode 100644 rust/kernel/processor.rs
 create mode 100644 rust/kernel/time/delay.rs


base-commit: 1d4199cbbe95efaba51304cfd844bd0ccd224e61
-- 
2.43.0


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

end of thread, other threads:[~2024-11-09  9:38 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-01  1:01 [PATCH v5 0/7] rust: Add IO polling FUJITA Tomonori
2024-11-01  1:01 ` [PATCH v5 1/7] rust: time: Add PartialEq/Eq/PartialOrd/Ord trait to Ktime FUJITA Tomonori
2024-11-01  1:01 ` [PATCH v5 2/7] rust: time: Introduce Delta type FUJITA Tomonori
2024-11-01  1:01 ` [PATCH v5 3/7] rust: time: Introduce Instant type FUJITA Tomonori
2024-11-01  1:01 ` [PATCH v5 4/7] rust: time: Add wrapper for fsleep function FUJITA Tomonori
2024-11-06 18:13   ` Boqun Feng
2024-11-09  4:38     ` FUJITA Tomonori
2024-11-01  1:01 ` [PATCH v5 5/7] MAINTAINERS: rust: Add TIMEKEEPING and TIMER abstractions FUJITA Tomonori
2024-11-01  1:01 ` [PATCH v5 6/7] rust: Add read_poll_timeout functions FUJITA Tomonori
2024-11-06 18:18   ` Boqun Feng
2024-11-09  5:15     ` FUJITA Tomonori
2024-11-06 21:35   ` Boqun Feng
2024-11-07  8:56     ` Petr Mladek
2024-11-09  9:38     ` FUJITA Tomonori
2024-11-07 12:50   ` Rasmus Villemoes
2024-11-07 12:59     ` Alice Ryhl
2024-11-07 12:59     ` Miguel Ojeda
2024-11-01  1:01 ` [PATCH v5 7/7] net: phy: qt2025: Wait until PHY becomes ready FUJITA Tomonori

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.