[PATCH v5 0/7] rust: use Delta instead of raw jiffies for timeouts and delays
FUJITA Tomonori <[email protected]> Thu, 6 Aug 2026 16:32:34 +0900
| Newsgroups | org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
From: FUJITA Tomonori <[email protected]> CondVar::wait_interruptible_timeout() and Queue::enqueue_delayed() use a raw jiffies count (a plain c_ulong alias with no type safety). Callers have to know on their own that the value meant jiffies and convert to/from it themselves, which is easy to get wrong (e.g. passing a millisecond value where a jiffies value is expected). Both APIs just take a span of time so, they can use the Delta type instead. This series makes Delta generic over its time unit with Nsec and Jiffy types, switches CondVar and Queue to use Delta instead of raw jiffies (updating binder's ioctl_freeze(), the only caller of wait_interruptible_timeout()), and then removes the now-unused Jiffies and Msecs type aliases. --- v5: - Fix as_millis_ceil() rounding near i64::MAX - Import Delta instead of using kernel::time::Delta twice v4: https://lore.kernel.org/rust-for-linux/[email protected]/ - Make Delta generic over its time unit with Nsec and Jiffy types v3: https://lore.kernel.org/rust-for-linux/[email protected]/ - Add new Jiffies type and convert the APIs to take impl Into<Jiffies> v2: https://lore.kernel.org/rust-for-linux/[email protected]/ - Fix potential overflow in from_jiffies() - Fix inflating bug in as_jiffies_ceil() - Add a patch to convert enqueue_delayed() - Add a patch to remove Jiffies/Msecs aliases v1: https://lore.kernel.org/rust-for-linux/[email protected]/ --- FUJITA Tomonori (7): rust: time: make Delta generic over its time unit rust: time: add jiffies time unit for Delta rust: time: add Delta::as_millis_ceil() rust: time: add Delta::to_jiffies() for timeout conversion rust: workqueue: take a Delta<Jiffy> for the enqueue delay rust: sync: condvar: use Delta<Jiffy> for timeout and result rust: time: remove unused Jiffies/Msecs helpers drivers/android/binder/process.rs | 7 +- rust/kernel/sync/condvar.rs | 29 ++++-- rust/kernel/time.rs | 159 +++++++++++++++++++++++------- rust/kernel/workqueue.rs | 12 ++- 4 files changed, 154 insertions(+), 53 deletions(-) base-commit: dc01dfb37b34beeefcfe1c3055364d41a4070c7e -- 2.43.0