All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC RESEND v10 00/14] Refcounted interrupts, SpinLockIrq for rust
@ 2025-05-27 22:21 Lyude Paul
  2025-05-27 22:21 ` [RFC RESEND v10 01/14] preempt: Introduce HARDIRQ_DISABLE_BITS Lyude Paul
                   ` (14 more replies)
  0 siblings, 15 replies; 35+ messages in thread
From: Lyude Paul @ 2025-05-27 22:21 UTC (permalink / raw)
  To: rust-for-linux, Thomas Gleixner, Boqun Feng, linux-kernel,
	Daniel Almeida
  Cc: Miguel Ojeda, Alex Gaynor, Gary Guo, Björn Roy Baron,
	Benno Lossin, Andreas Hindborg, Alice Ryhl, Trevor Gross,
	Danilo Krummrich

Hi! While this patch series still needs some changes on the C side, I
wanted to update things and send out the latest version of it that's
been sitting on my machine for a while now. This adds back the
mistakenly missing commit messages along with a number of other changes
that were requested.

Please keep in mind, there are still some issues with this patch series
that I do need help with solving before it can move forward:

* https://lore.kernel.org/rust-for-linux/ZxrCrlg1XvaTtJ1I@boqun-archlinux/
* Concerns around double checking the HARDIRQ bits against all
  architectures that have interrupt priority support. I know what IPL is
  but I really don't have a clear understanding of how this actually
  fits together in the kernel's codebase or even how to find the
  documentation for many of the architectures involved here.

  Please help :C! If you want these rust bindings, figuring out these
  two issues will let this patch seires move forward.

The previous version of this patch series can be found here:

https://lore.kernel.org/rust-for-linux/20250227221924.265259-4-lyude@redhat.com/T/

Boqun Feng (6):
  preempt: Introduce HARDIRQ_DISABLE_BITS
  preempt: Introduce __preempt_count_{sub, add}_return()
  irq & spin_lock: Add counted interrupt disabling/enabling
  rust: helper: Add spin_{un,}lock_irq_{enable,disable}() helpers
  rust: sync: lock: Add `Backend::BackendInContext`
  locking: Switch to _irq_{disable,enable}() variants in cleanup guards

Lyude Paul (8):
  rust: Introduce interrupt module
  rust: sync: Add SpinLockIrq
  rust: sync: Introduce lock::Backend::Context
  rust: sync: Add a lifetime parameter to lock::global::GlobalGuard
  rust: sync: lock/global: Rename B to G in trait bounds
  rust: sync: Expose lock::Backend
  rust: sync: lock/global: Add Backend parameter to GlobalGuard
  rust: sync: lock/global: Add BackendInContext support to GlobalLock

 arch/arm64/include/asm/preempt.h  |  18 +++
 arch/s390/include/asm/preempt.h   |  19 +++
 arch/x86/include/asm/preempt.h    |  10 ++
 include/asm-generic/preempt.h     |  14 +++
 include/linux/irqflags.h          |   1 -
 include/linux/irqflags_types.h    |   6 +
 include/linux/preempt.h           |  20 +++-
 include/linux/spinlock.h          |  88 +++++++++++---
 include/linux/spinlock_api_smp.h  |  27 +++++
 include/linux/spinlock_api_up.h   |   8 ++
 include/linux/spinlock_rt.h       |  16 +++
 kernel/locking/spinlock.c         |  31 +++++
 kernel/softirq.c                  |   3 +
 rust/helpers/helpers.c            |   1 +
 rust/helpers/interrupt.c          |  18 +++
 rust/helpers/spinlock.c           |  15 +++
 rust/kernel/interrupt.rs          |  83 +++++++++++++
 rust/kernel/lib.rs                |   1 +
 rust/kernel/sync.rs               |   5 +-
 rust/kernel/sync/lock.rs          |  69 ++++++++++-
 rust/kernel/sync/lock/global.rs   |  91 ++++++++++-----
 rust/kernel/sync/lock/mutex.rs    |   2 +
 rust/kernel/sync/lock/spinlock.rs | 186 ++++++++++++++++++++++++++++++
 23 files changed, 680 insertions(+), 52 deletions(-)
 create mode 100644 rust/helpers/interrupt.c
 create mode 100644 rust/kernel/interrupt.rs


base-commit: a3b2347343e077e81d3c169f32c9b2cb1364f4cc
-- 
2.49.0


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

end of thread, other threads:[~2025-07-16 20:29 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 22:21 [RFC RESEND v10 00/14] Refcounted interrupts, SpinLockIrq for rust Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 01/14] preempt: Introduce HARDIRQ_DISABLE_BITS Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 02/14] preempt: Introduce __preempt_count_{sub, add}_return() Lyude Paul
2025-05-28  6:37   ` Heiko Carstens
2025-05-27 22:21 ` [RFC RESEND v10 03/14] irq & spin_lock: Add counted interrupt disabling/enabling Lyude Paul
2025-05-28  9:10   ` Peter Zijlstra
2025-05-28 14:03     ` Steven Rostedt
2025-05-28 14:47     ` Boqun Feng
2025-06-16 17:54       ` Joel Fernandes
2025-06-16 18:02         ` Boqun Feng
2025-06-16 18:37           ` Joel Fernandes
2025-06-17 14:14             ` Steven Rostedt
2025-05-28 18:47     ` Lyude Paul
2025-06-16 18:10   ` Joel Fernandes
2025-06-16 18:16     ` Boqun Feng
2025-06-17 14:11   ` Steven Rostedt
2025-06-17 14:34     ` Boqun Feng
2025-06-17 15:11       ` Steven Rostedt
2025-06-17 14:25   ` Boqun Feng
2025-05-27 22:21 ` [RFC RESEND v10 04/14] rust: Introduce interrupt module Lyude Paul
2025-05-29  9:21   ` Benno Lossin
2025-05-27 22:21 ` [RFC RESEND v10 05/14] rust: helper: Add spin_{un,}lock_irq_{enable,disable}() helpers Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 06/14] rust: sync: Add SpinLockIrq Lyude Paul
2025-06-16 19:51   ` Joel Fernandes
2025-07-16 20:29     ` Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 07/14] rust: sync: Introduce lock::Backend::Context Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 08/14] rust: sync: lock: Add `Backend::BackendInContext` Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 09/14] rust: sync: Add a lifetime parameter to lock::global::GlobalGuard Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 10/14] rust: sync: lock/global: Rename B to G in trait bounds Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 11/14] rust: sync: Expose lock::Backend Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 12/14] rust: sync: lock/global: Add Backend parameter to GlobalGuard Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 13/14] rust: sync: lock/global: Add BackendInContext support to GlobalLock Lyude Paul
2025-05-27 22:21 ` [RFC RESEND v10 14/14] locking: Switch to _irq_{disable,enable}() variants in cleanup guards Lyude Paul
2025-05-28  6:11   ` Sebastian Andrzej Siewior
2025-07-02 10:16 ` [RFC RESEND v10 00/14] Refcounted interrupts, SpinLockIrq for rust Benno Lossin

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.