Re: [PATCH v3] workqueue: rust: add delayed work items

From: Miguel Ojeda
Date: Wed Jul 16 2025 - 18:50:15 EST


On Fri, Jul 11, 2025 at 9:59 AM Alice Ryhl <aliceryhl@xxxxxxxxxx> wrote:
>
> This patch is being sent for use in the various Rust GPU drivers that
> are under development. It provides the additional feature of work items
> that are executed after a delay.
>
> The design of the existing workqueue is rather extensible, as most of
> the logic is reused for delayed work items even though a different work
> item type is required. The new logic consists of:
>
> * A new DelayedWork struct that wraps struct delayed_work.
> * A new impl_has_delayed_work! macro that provides adjusted versions of
> the container_of logic, that is suitable with delayed work items.
> * A `enqueue_delayed` method that can enqueue a delayed work item.
>
> This patch does *not* rely on the fact that `struct delayed_work`
> contains `struct work_struct` at offset zero. It will continue to work
> even if the layout is changed to hold the `work` field at a different
> offset.
>
> Please see the example introduced at the top of the file for example
> usage of delayed work items.
>
> Acked-by: Tejun Heo <tj@xxxxxxxxxx>
> Reviewed-by: Boqun Feng <boqun.feng@xxxxxxxxx>
> Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx>

Applied (yesterday) to `rust-next` -- thanks everyone!

[ Replaced `as _` with `as ffi::c_int` to clean warning. - Miguel ]

Cheers,
Miguel