All of lore.kernel.org
 help / color / mirror / Atom feed
* [GIT PULL] Rust `hrtimer` support for v6.15
@ 2025-03-13 13:09 Andreas Hindborg
  2025-03-21 12:10 ` Andreas Hindborg
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Hindborg @ 2025-03-13 13:09 UTC (permalink / raw)
  To: Miguel Ojeda
  Cc: Anna-Maria Behnsen, Frederic Weisbecker, Thomas Gleixner,
	linux-kernel, rust-for-linux@vger.kernel.org,
	linux-kernel@vger.kernel.org

Hi Miguel,

Please pull the Rust support for hrtimer for v6.15.

This initial support allows for intrusive use of timers without
allocating when starting a timer. We support `Pin<Box<T>>`, `Arc<T>`,
`Pin<&T>` and `Pin<&mut T>` pointer types for working with these
intrusive timers. We support at most one `HrTimer` field in a struct for
use with this API.

For now, the primary users will be the Rust null block driver, `rnull`,
and the Rust kernel mode setting driver `rkvms`. I expect us to add more
features to the API as the demands from users grow.

The PR also includes two changes for the core rust and rust/alloc
subsytems that are dependencies of the hrtimer Rust API: `Arc::as_ptr`
and `Box::into_pin`. The alloc change was Ack'd by Danilo.

The commits were in linux-next since next-20250313.

The following changes since commit a64dcfb451e254085a7daee5fe51bf22959d52d3:

  Linux 6.14-rc2 (2025-02-09 12:45:03 -0800)

are available in the Git repository at:

  https://github.com/rust-for-linux/linux.git tags/rust-hrtimer-for-v6.15

for you to fetch changes up to 15a3c03ca02b6caec995de178904ab8c637d584c:

  rust: hrtimer: add maintainer entry (2025-03-11 21:00:43 +0100)


Best regards,
Andreas Hindborg

----------------------------------------------------------------
Rust hrtimer API for v6.15

Introduce Rust support for the `hrtimer` subsystem:

 - Add a way to use the `hrtimer` subsystem from Rust. Rust code can now set up
   intrusive timers without allocating when starting the timer.

 - Add support for `Pin<Box<_>>`, `Arc<_>`, `Pin<&_>` and `Pin<&mut _>` as
   pointer types for use with timer callbacks.

 - Add support for setting clock source and timer mode.

`kernel` crate:

 - Add `Arc::as_ptr` for converting an `Arc` to a raw pointer. This is a
   dependency for the `hrtimer` API.

 - Add `Box::into_pin` for converting a `Box<_>` into a `Pin<Box<_>>` to align
   with Rust `alloc`. This is a dependency for the `hrtimer` API.

----------------------------------------------------------------
Andreas Hindborg (13):
      rust: hrtimer: introduce hrtimer support
      rust: sync: add `Arc::as_ptr`
      rust: hrtimer: implement `HrTimerPointer` for `Arc`
      rust: hrtimer: allow timer restart from timer handler
      rust: hrtimer: add `UnsafeHrTimerPointer`
      rust: hrtimer: add `hrtimer::ScopedHrTimerPointer`
      rust: hrtimer: implement `UnsafeHrTimerPointer` for `Pin<&T>`
      rust: hrtimer: implement `UnsafeHrTimerPointer` for `Pin<&mut T>`
      rust: alloc: add `Box::into_pin`
      rust: hrtimer: implement `HrTimerPointer` for `Pin<Box<T>>`
      rust: hrtimer: add `HrTimerMode`
      rust: hrtimer: add clocksource selection through `ClockId`
      rust: hrtimer: add maintainer entry

 MAINTAINERS                         |  15 ++
 rust/kernel/alloc/kbox.rs           |   6 +
 rust/kernel/sync/arc.rs             |  13 +-
 rust/kernel/time.rs                 |  68 +++++
 rust/kernel/time/hrtimer.rs         | 517 ++++++++++++++++++++++++++++++++++++
 rust/kernel/time/hrtimer/arc.rs     | 100 +++++++
 rust/kernel/time/hrtimer/pin.rs     | 104 ++++++++
 rust/kernel/time/hrtimer/pin_mut.rs | 108 ++++++++
 rust/kernel/time/hrtimer/tbox.rs    | 120 +++++++++
 9 files changed, 1049 insertions(+), 2 deletions(-)
 create mode 100644 rust/kernel/time/hrtimer.rs
 create mode 100644 rust/kernel/time/hrtimer/arc.rs
 create mode 100644 rust/kernel/time/hrtimer/pin.rs
 create mode 100644 rust/kernel/time/hrtimer/pin_mut.rs
 create mode 100644 rust/kernel/time/hrtimer/tbox.rs


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

end of thread, other threads:[~2025-03-25 23:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-13 13:09 [GIT PULL] Rust `hrtimer` support for v6.15 Andreas Hindborg
2025-03-21 12:10 ` Andreas Hindborg
2025-03-22 11:15   ` Andreas Hindborg
2025-03-25 23:22     ` Miguel Ojeda
2025-03-25 23:24     ` Miguel Ojeda
2025-03-25 20:03   ` Miguel Ojeda

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.