Re: [PATCH net-next v2 0/6] rust: Add IO polling

From: Boqun Feng
Date: Sat Oct 12 2024 - 11:29:35 EST


Hi Tomo,

On Sat, Oct 05, 2024 at 09:25:25PM +0900, FUJITA Tomonori wrote:
> Add Rust version of read_poll_timeout (include/linux/iopoll.h), which
> polls periodically until a condition is met or a timeout is reached.
> By using the function, the 6th patch fixes QT2025 PHY driver to sleep
> until the hardware becomes ready.
>
> As a result of the past discussion, this introduces a new type
> representing a span of time instead of using core::time::Duration or
> time::Ktime.
>

While, we are at it, I want to suggest that we also add
rust/kernel/time{.rs, /} into the "F:" entries of TIME subsystem like:

diff --git a/MAINTAINERS b/MAINTAINERS
index b77f4495dcf4..09e46a214333 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -23376,6 +23376,8 @@ F: kernel/time/timeconv.c
F: kernel/time/timecounter.c
F: kernel/time/timekeeping*
F: kernel/time/time_test.c
+F: rust/kernel/time.rs
+F: rust/kernel/time/
F: tools/testing/selftests/timers/

TIPC NETWORK LAYER

This will help future contributers copy the correct people while
submission. Could you maybe add a patch of this in your series if this
sounds reasonable to you? Thanks!

Regards,
Boqun

> 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.
>
> v2:
> - 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@xxxxxxxxx/
>
>
> FUJITA Tomonori (6):
> rust: time: Implement PartialEq and PartialOrd for Ktime
> rust: time: Introduce Delta type
> rust: time: Implement addition of Ktime and Delta
> rust: time: add wrapper for fsleep function
> rust: Add read_poll_timeout function
> net: phy: qt2025: wait until PHY becomes ready
>
> drivers/net/phy/qt2025.rs | 11 +++-
> rust/helpers/helpers.c | 2 +
> rust/helpers/kernel.c | 13 +++++
> rust/helpers/time.c | 19 +++++++
> rust/kernel/error.rs | 1 +
> rust/kernel/io.rs | 5 ++
> rust/kernel/io/poll.rs | 70 +++++++++++++++++++++++
> rust/kernel/lib.rs | 1 +
> rust/kernel/time.rs | 113 ++++++++++++++++++++++++++++++++++++++
> 9 files changed, 234 insertions(+), 1 deletion(-)
> 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
>
>
> base-commit: d521db38f339709ccd23c5deb7663904e626c3a6
> --
> 2.34.1
>
>