rust/kernel/workqueue.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
Provide safe getters to the system bh work queues. They will be used
to reimplement the Hyper-V VMBus in rust.
Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com>
---
v2: make the commit message suck less.
---
rust/kernel/workqueue.rs | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/rust/kernel/workqueue.rs b/rust/kernel/workqueue.rs
index 0cd100d2aefb..68ce70d94f2d 100644
--- a/rust/kernel/workqueue.rs
+++ b/rust/kernel/workqueue.rs
@@ -703,3 +703,21 @@ pub fn system_freezable_power_efficient() -> &'static Queue {
// SAFETY: `system_freezable_power_efficient_wq` is a C global, always available.
unsafe { Queue::from_raw(bindings::system_freezable_power_efficient_wq) }
}
+
+/// Returns the system bottom halves work queue (`system_bh_wq`).
+///
+/// It is similar to the one returned by [`system`] but for work items which
+/// need to run from a softirq context.
+pub fn system_bh() -> &'static Queue {
+ // SAFETY: `system_bh_wq` is a C global, always available.
+ unsafe { Queue::from_raw(bindings::system_bh_wq) }
+}
+
+/// Returns the system bottom halves high-priority work queue (`system_bh_highpri_wq`).
+///
+/// It is similar to the one returned by [`system_bh`] but for work items which
+/// require higher scheduling priority.
+pub fn system_bh_highpri() -> &'static Queue {
+ // SAFETY: `system_bh_highpri_wq` is a C global, always available.
+ unsafe { Queue::from_raw(bindings::system_bh_highpri_wq) }
+}
--
2.47.1
On Mon, Feb 24, 2025 at 09:23:23AM -0500, Hamza Mahfooz wrote: > Provide safe getters to the system bh work queues. They will be used > to reimplement the Hyper-V VMBus in rust. > > Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> Applied to wq/for-6.15. Thanks. -- tejun
On Mon, Feb 24, 2025 at 3:23 PM Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> wrote: > > Provide safe getters to the system bh work queues. They will be used > to reimplement the Hyper-V VMBus in rust. > > Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Hi Hamza,
On Mon, Feb 24, 2025 at 09:23:23AM -0500, Hamza Mahfooz wrote:
> Provide safe getters to the system bh work queues. They will be used
> to reimplement the Hyper-V VMBus in rust.
>
> Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com>
> ---
> v2: make the commit message suck less.
> ---
> rust/kernel/workqueue.rs | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
while you're at it, could you also add some usage of system_bh() in the
example at around line 77 in workqueue.rs? It could demonstrate the
usage and generate unit tests. Thanks!
Regards,
Boqun
> diff --git a/rust/kernel/workqueue.rs b/rust/kernel/workqueue.rs
> index 0cd100d2aefb..68ce70d94f2d 100644
> --- a/rust/kernel/workqueue.rs
> +++ b/rust/kernel/workqueue.rs
> @@ -703,3 +703,21 @@ pub fn system_freezable_power_efficient() -> &'static Queue {
> // SAFETY: `system_freezable_power_efficient_wq` is a C global, always available.
> unsafe { Queue::from_raw(bindings::system_freezable_power_efficient_wq) }
> }
> +
> +/// Returns the system bottom halves work queue (`system_bh_wq`).
> +///
> +/// It is similar to the one returned by [`system`] but for work items which
> +/// need to run from a softirq context.
> +pub fn system_bh() -> &'static Queue {
> + // SAFETY: `system_bh_wq` is a C global, always available.
> + unsafe { Queue::from_raw(bindings::system_bh_wq) }
> +}
> +
> +/// Returns the system bottom halves high-priority work queue (`system_bh_highpri_wq`).
> +///
> +/// It is similar to the one returned by [`system_bh`] but for work items which
> +/// require higher scheduling priority.
> +pub fn system_bh_highpri() -> &'static Queue {
> + // SAFETY: `system_bh_highpri_wq` is a C global, always available.
> + unsafe { Queue::from_raw(bindings::system_bh_highpri_wq) }
> +}
> --
> 2.47.1
>
On Mon, Feb 24, 2025 at 09:23:23AM -0500, Hamza Mahfooz wrote: > Provide safe getters to the system bh work queues. They will be used > to reimplement the Hyper-V VMBus in rust. > > Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> Ah, you already sent v2. Acked-by: Tejun Heo <tj@kernel.org> Again, let me know how you want route it. Thanks. -- tejun
On Mon, Feb 24, 2025 at 07:31:49AM -1000, Tejun Heo wrote: > On Mon, Feb 24, 2025 at 09:23:23AM -0500, Hamza Mahfooz wrote: > > Provide safe getters to the system bh work queues. They will be used > > to reimplement the Hyper-V VMBus in rust. > > > > Signed-off-by: Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> > > Ah, you already sent v2. > > Acked-by: Tejun Heo <tj@kernel.org> > > Again, let me know how you want route it. I would prefer it it went through the workqueue tree, thanks! > > Thanks. > > -- > tejun
© 2016 - 2025 Red Hat, Inc.