From: Marco Crivellari <marco.crivellari@suse.com>
To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Cc: Tejun Heo <tj@kernel.org>, Lai Jiangshan <jiangshanlai@gmail.com>,
Frederic Weisbecker <frederic@kernel.org>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Marco Crivellari <marco.crivellari@suse.com>,
Michal Hocko <mhocko@suse.com>,
Andrew Lunn <andrew+netdev@lunn.ch>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
MD Danish Anwar <danishanwar@ti.com>,
Roger Quadros <rogerq@kernel.org>
Subject: [PATCH net-next v5 3/6] net: ti: icssg-prueth: Move long delayed work on system_dfl_long_wq
Date: Mon, 2 Nov 2026 11:56:53 +0100 [thread overview]
Message-ID: <20261102105703.111844-4-marco.crivellari@suse.com> (raw)
In-Reply-To: <20261102105703.111844-1-marco.crivellari@suse.com>
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@ti.com>
Cc: Roger Quadros <rogerq@kernel.org>
Signed-off-by: Marco Crivellari <marco.crivellari@suse.com>
---
drivers/net/ethernet/ti/icssg/icssg_prueth.c | 2 +-
drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth.c b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
index 591be5c8056b..0fba22c1046e 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_prueth.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_prueth.c
@@ -1100,7 +1100,7 @@ static int emac_ndo_open(struct net_device *ndev)
prueth->emacs_initialized++;
- queue_work(system_long_wq, &emac->stats_work.work);
+ queue_work(system_dfl_long_wq, &emac->stats_work.work);
return 0;
diff --git a/drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c b/drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
index b8115ca47082..fb7140330671 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_prueth_sr1.c
@@ -602,7 +602,7 @@ static int emac_ndo_open(struct net_device *ndev)
prueth->emacs_initialized++;
- queue_work(system_long_wq, &emac->stats_work.work);
+ queue_work(system_dfl_long_wq, &emac->stats_work.work);
return 0;
--
2.56.0
next prev parent reply other threads:[~2026-11-02 10:57 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-02 10:56 [PATCH net-next v5 0/6] net: Move system_long_wq to system_dfl_long_wq Marco Crivellari
2026-11-02 10:56 ` [PATCH net-next v5 1/6] ibmvnic: Change system_long_wq with system_dfl_long_wq Marco Crivellari
2026-11-02 10:56 ` [PATCH net-next v5 2/6] net: ti: icssg-stats: Move long delayed work on system_dfl_long_wq Marco Crivellari
2026-11-02 10:56 ` Marco Crivellari [this message]
2026-11-02 10:56 ` [PATCH net-next v5 4/6] net: thunderbolt: " Marco Crivellari
2026-11-02 10:56 ` [PATCH net-next v5 5/6] net: usb: pegasus: " Marco Crivellari
2026-11-02 10:56 ` [PATCH net-next v5 6/6] net: usb: r8152: " Marco Crivellari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261102105703.111844-4-marco.crivellari@suse.com \
--to=marco.crivellari@suse.com \
--cc=andrew+netdev@lunn.ch \
--cc=bigeasy@linutronix.de \
--cc=danishanwar@ti.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=frederic@kernel.org \
--cc=jiangshanlai@gmail.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhocko@suse.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rogerq@kernel.org \
--cc=tj@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®