Hi,
Recently the workqueue code has been changed introducing two new workqueue,
system_percpu_wq and system_dfl_wq, as a future replacement for system_wq and
system_unbound_wq respectively.
The change has been introduced by:
'commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")'
The old workqueue(s) will be removed in a next release cycle.
=== Introduced Changes by this series ===
1) [P 1] Add wrapper for the new system_dfl_wq
- This change introduce two new Rust functions in order to add a wrapper for
the new wq(s) defined in the C code.
2) [P 2] Add wrapper for system_percpu_wq and two new functions
- The new functions added are enqueue_cpu() and enqueue_delayed_cpu() and
are accepting a u32 parameter, the id of the CPU on which the work should
be scheduled on.
Thanks!
---
Changes in v5:
- system_dfl() renamed to system_default()
- Cover letter v4:
https://lore.kernel.org/all/20260203152818.317806-1-marco.crivellari@suse.com/
Changes in v4:
- two new function added in the Queue implementation:
* enqueue_cpu()
* enqueue_delayed_cpu()
These functions receive a u32 CPU id in order to schedule work on that CPU.
More info can be found in the v3 discussion:
https://lore.kernel.org/all/CAAofZF6jcCAdDjRp-7w7+_ZgOG4k3apxbSiKvGoUDVf5hw0GhA@mail.gmail.com/
Changes in v3:
- added a proper comment documenting the new added functions.
Changes in v2:
- added system_percpu() and system_dfl() in order to use the new
wq defined in the C code.
- fixed misleading paragraph in the commit log (no warnings are currently
present).
Marco Crivellari (2):
rust: add system_default() around the new system_dfl_wq
rust: add system_percpu() and per-cpu enqueue functions
rust/kernel/sync/completion.rs | 2 +-
rust/kernel/workqueue.rs | 110 +++++++++++++++++++++++++++++++--
2 files changed, 105 insertions(+), 7 deletions(-)
--
2.52.0