[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241017-hrtimer-v3-v6-12-rc2-v3-0-59a75cbb44da@kernel.org>
Date: Thu, 17 Oct 2024 15:04:27 +0200
From: Andreas Hindborg <a.hindborg@...nel.org>
To: Miguel Ojeda <ojeda@...nel.org>,
Anna-Maria Behnsen <anna-maria@...utronix.de>,
Frederic Weisbecker <frederic@...nel.org>,
Thomas Gleixner <tglx@...utronix.de>
Cc: Alex Gaynor <alex.gaynor@...il.com>, Boqun Feng <boqun.feng@...il.com>,
Gary Guo <gary@...yguo.net>,
Björn Roy Baron <bjorn3_gh@...tonmail.com>,
Benno Lossin <benno.lossin@...ton.me>, Alice Ryhl <aliceryhl@...gle.com>,
Trevor Gross <tmgross@...ch.edu>, Lyude Paul <lyude@...hat.com>,
rust-for-linux@...r.kernel.org, linux-kernel@...r.kernel.org,
Andreas Hindborg <a.hindborg@...nel.org>
Subject: [PATCH v3 00/13] hrtimer Rust API
This series adds support for using the `hrtimer` subsystem from Rust code.
This version adds support for timer mode and clock source configuration during
timer initialization. Examples and functionality to execute closures at timer
expiration has been removed, as these depend on either atomics [3] or
`SpinLockIrq` [4], which are still being worked on.
This series is a dependency for unmerged features of the Rust null block driver
[1], and for rkvms [2].
Link: https://git.kernel.org/pub/scm/linux/kernel/git/a.hindborg/linux.git/log/?h=rnull-v6.11-rc2 [1]
Link: https://gitlab.freedesktop.org/lyudess/linux/-/tree/rvkms-wip [2]
Link: https://lore.kernel.org/rust-for-linux/20240612223025.1158537-1-boqun.feng@gmail.com/ [3]
Link: https://lore.kernel.org/rust-for-linux/20240916213025.477225-1-lyude@redhat.com/ [4]
Signed-off-by: Andreas Hindborg <a.hindborg@...nel.org>
---
Changes in v3:
- support timer mode selection
- support clock source selection
- eliminate `Arc::clone_from_raw` in favor of using `ArcBorrow`
- make `Arc::as_ptr` an associated method
- update safety requirement for `ArcBorrow::from_raw`
- remove examples (pending `SpinLockIrq` and `CondVar` patches)
- remove `start_function` (v2 `schedule_function`, pending `SpinLockIrq` and `CondVar` patches)
- change function naming from schedule/armed to start/running
- add vocabulary to documentation
- update safety comment in `Arc::as_ptr`
- Link to v2: https://lore.kernel.org/r/20240917222739.1298275-1-a.hindborg@kernel.org
Changes in v2:
- use a handle to own the timer callback target
- add ability to for callback to reschedule timer
- improve `impl_has_timer` to allow generics
- add support for stack allocated timers
- add support for scheduling closures
- use `Ktime` for setting expiration
- use `CondVar` instead of `AtomicBool` in examples
- rebase on 6.11
- improve documentation
- Link to v1: https://lore.kernel.org/r/20240425094634.262674-1-nmi@metaspace.dk
---
Andreas Hindborg (12):
rust: hrtimer: introduce hrtimer support
rust: sync: add `Arc::as_ptr`
rust: hrtimer: implement `TimerPointer` for `Arc`
rust: hrtimer: allow timer restart from timer handler
rust: hrtimer: add `UnsafeTimerPointer`
rust: hrtimer: implement `UnsafeTimerPointer` for `Pin<&T>`
rust: hrtimer: implement `UnsafeTimerPointer` for `Pin<&mut T>`
rust: hrtimer: add `hrtimer::ScopedTimerPointer`
rust: hrtimer: implement `TimerPointer` for `Pin<Box<T>>`
rust: hrtimer: add `TimerMode`
rust: hrtimer: add clocksource selection through `ClockSource`
rust: hrtimer: add maintainer entry
Lyude Paul (1):
rust: time: Add Ktime::from_ns()
MAINTAINERS | 10 +
rust/kernel/hrtimer.rs | 530 +++++++++++++++++++++++++++++++++++++++++
rust/kernel/hrtimer/arc.rs | 87 +++++++
rust/kernel/hrtimer/pin.rs | 97 ++++++++
rust/kernel/hrtimer/pin_mut.rs | 99 ++++++++
rust/kernel/hrtimer/tbox.rs | 95 ++++++++
rust/kernel/lib.rs | 1 +
rust/kernel/sync/arc.rs | 13 +-
rust/kernel/time.rs | 8 +
9 files changed, 938 insertions(+), 2 deletions(-)
---
base-commit: 8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b
change-id: 20241017-hrtimer-v3-v6-12-rc2-215dc6b169bf
Best regards,
--
Andreas Hindborg <a.hindborg@...nel.org>
Powered by blists - more mailing lists