Re: [PATCH net-next v5 3/6] net: ti: icssg-prueth: Move long delayed work on system_dfl_long_wq
From: Simon Horman
Date: Thu Nov 05 2026 - 15:37:53 EST
On Mon, Nov 02, 2026 at 11:56:53AM +0100, Marco Crivellari wrote:
> Currently emac_ndo_open() starts the stats work for the first time with
> queue_work(), using system_long_wq. This workqueue should be used when
> long works are expected and it is a per-cpu workqueue.
>
> queue_work() on a per-cpu workqueue enqueues the work on the local CPU,
> so the first execution of the work is bound to the CPU that opened the
> interface.
>
> Unbound works could benefit from scheduler task placement, to optimize
> performance and power consumption. Long work shouldn't stick to a single
> CPU.
>
> Recently, a new unbound workqueue specific for long running work has
> been added:
>
> c116737e972e ("workqueue: Add system_dfl_long_wq for long unbound works")
>
> The stats work handler, icssg_stats_work_handler(), already re-queues
> itself on system_dfl_long_wq. Since the work doesn't rely on per-cpu
> variables, there is no obvious reason that justify the use of a per-cpu
> workqueue for the initial queueing either. So change system_long_wq with
> system_dfl_long_wq in emac_ndo_open(), in both icssg_prueth.c and
> icssg_prueth_sr1.c, so that the work may benefit from scheduler task
> placement.
>
> Cc: MD Danish Anwar <danishanwar@xxxxxx>
> Cc: Roger Quadros <rogerq@xxxxxxxxxx>
> Signed-off-by: Marco Crivellari <marco.crivellari@xxxxxxxx>
Reviewed-by: Simon Horman <horms@xxxxxxxxxx>