Re: [PATCH v4 0/7] rust: use Delta instead of raw jiffies for timeouts and delays
"Gary Guo" <[email protected]> Thu, 30 Jul 2026 14:09:59 +0100
| Newsgroups | org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Wed Jul 22, 2026 at 10:49 PM BST, FUJITA Tomonori wrote: > 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. There are more jiffy users being added so we should take this sooner than later: https://lore.kernel.org/rust-for-linux/[email protected]/#t Andreas, any plan on taking this via timekeeping-next? I suppose Boqun could also be taken via rust-sync tree if you give an ack? (This is obviously a new design so additional reviews are also welcome). Best, Gary > > --- > v4: > - 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 | 6 +- > rust/kernel/sync/condvar.rs | 29 ++++-- > rust/kernel/time.rs | 156 ++++++++++++++++++++++-------- > rust/kernel/workqueue.rs | 12 ++- > 4 files changed, 150 insertions(+), 53 deletions(-) > > > base-commit: 7059bdf4f04a3e14f4fafb3ac35fdca913e3e21a